From 5ca95e278540b59a7b36bf9388aec04477551c79 Mon Sep 17 00:00:00 2001 From: LIlGG <1103069291@qq.com> Date: Fri, 8 Dec 2023 15:53:29 +0800 Subject: [PATCH] =?UTF-8?q?pref:=20=E7=A4=BE=E4=BA=A4=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=AE=9A=E4=B9=89=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dist/assets/APlayer.min-1b5a4167.js | 154 + .../dist/assets/APlayer.min-4c1eacf9.js | 1164 - templates/assets/dist/assets/Axis-1d2b148d.js | 18583 ------ templates/assets/dist/assets/Axis-b5ea7d9c.js | 16 + .../dist/assets/_commonjsHelpers-042e6b4d.js | 1 + .../dist/assets/_commonjsHelpers-7a7fcd32.js | 38 - .../assets/dist/assets/browser-21db0a97.js | 8 + .../assets/dist/assets/browser-e6953f98.js | 2055 - .../assets/dist/assets/charts-2dcd04c5.js | 1 + .../assets/dist/assets/charts-9b126745.js | 17306 ------ .../assets/dist/assets/clipboard-8ef9d310.js | 6 + .../assets/dist/assets/clipboard-cc6c5a9e.js | 677 - .../assets/dist/assets/components-184f0ea1.js | 14542 ----- .../assets/dist/assets/components-cce90504.js | 22 + templates/assets/dist/assets/core-3d16742f.js | 1 + templates/assets/dist/assets/core-55e46693.js | 230 - .../dist/assets/createSeriesData-47a0bdc8.js | 398 - .../dist/assets/createSeriesData-4848ff50.js | 1 + ...customGraphicKeyframeAnimation-15977b4b.js | 3 + ...customGraphicKeyframeAnimation-e508d217.js | 8346 --- templates/assets/dist/assets/en-60b41890.js | 189 - templates/assets/dist/assets/en-d12c2ca6.js | 1 + .../assets/dist/assets/graphic-083f2b2f.js | 21 + .../assets/dist/assets/graphic-c958e8df.js | 8881 --- .../assets/dist/assets/index-51a9a0b2.js | 691 - .../assets/dist/assets/index-599c05fe.js | 50193 ---------------- .../assets/dist/assets/index-5fe31283.js | 1 + .../assets/dist/assets/index-9d2db266.js | 16761 ------ .../assets/dist/assets/index-bd7fc044.js | 5 + .../assets/dist/assets/index-c0aec26a.js | 9 + .../assets/dist/assets/index.esm-ab99b29d.js | 3187 - .../assets/dist/assets/index.esm-e5442572.js | 6 + .../assets/dist/assets/isotope-1c156680.js | 2170 - .../assets/dist/assets/isotope-c78448f5.js | 27 + templates/assets/dist/assets/ja-28a98039.js | 179 - templates/assets/dist/assets/ja-3c0ce0b5.js | 1 + .../assets/dist/assets/nprogress-2b5a08a9.js | 2 + .../assets/dist/assets/nprogress-92617843.js | 302 - .../assets/dist/assets/renderers-937e32c4.js | 2302 - .../assets/dist/assets/renderers-d9915dda.js | 3 + .../assets/dist/assets/video.es-7835fb1f.js | 45844 -------------- .../assets/dist/assets/video.es-db0fa9e7.js | 64 + templates/assets/dist/assets/zh-1614e2f8.js | 1 + templates/assets/dist/assets/zh-98259877.js | 179 - templates/assets/dist/css/APlayer.min.min.css | 3 +- templates/assets/dist/css/fancybox.min.css | 2 +- .../css/font-awesome-animation.min.min.css | 2 +- .../dist/css/highlight-AndroidStudio.min.css | 55 +- .../assets/dist/css/highlight-Dark.min.css | 55 +- .../assets/dist/css/highlight-Docco.min.css | 87 +- .../assets/dist/css/highlight-Dracula.min.css | 57 +- .../assets/dist/css/highlight-Far.min.css | 61 +- .../assets/dist/css/highlight-Github.min.css | 94 +- .../dist/css/highlight-Tomorrow Night.min.css | 58 +- templates/assets/dist/css/main.min.css | 6351 +- .../dist/libs/highlightjs-line-numbers.min.js | 251 +- templates/assets/dist/libs/lazysizes.min.js | 606 +- templates/assets/dist/libs/pjax.min.js | 1028 +- templates/assets/dist/main.min.js | 7505 +-- templates/assets/dist/page/archives.min.js | 37 +- templates/assets/dist/page/categories.min.js | 114 +- templates/assets/dist/page/index.min.js | 165 +- templates/assets/dist/page/moments.min.js | 163 +- templates/assets/dist/page/photos.min.js | 100 +- templates/assets/dist/page/post.min.js | 246 +- templates/assets/dist/page/tags.min.js | 1033 +- 66 files changed, 396 insertions(+), 212248 deletions(-) create mode 100644 templates/assets/dist/assets/APlayer.min-1b5a4167.js delete mode 100644 templates/assets/dist/assets/APlayer.min-4c1eacf9.js delete mode 100644 templates/assets/dist/assets/Axis-1d2b148d.js create mode 100644 templates/assets/dist/assets/Axis-b5ea7d9c.js create mode 100644 templates/assets/dist/assets/_commonjsHelpers-042e6b4d.js delete mode 100644 templates/assets/dist/assets/_commonjsHelpers-7a7fcd32.js create mode 100644 templates/assets/dist/assets/browser-21db0a97.js delete mode 100644 templates/assets/dist/assets/browser-e6953f98.js create mode 100644 templates/assets/dist/assets/charts-2dcd04c5.js delete mode 100644 templates/assets/dist/assets/charts-9b126745.js create mode 100644 templates/assets/dist/assets/clipboard-8ef9d310.js delete mode 100644 templates/assets/dist/assets/clipboard-cc6c5a9e.js delete mode 100644 templates/assets/dist/assets/components-184f0ea1.js create mode 100644 templates/assets/dist/assets/components-cce90504.js create mode 100644 templates/assets/dist/assets/core-3d16742f.js delete mode 100644 templates/assets/dist/assets/core-55e46693.js delete mode 100644 templates/assets/dist/assets/createSeriesData-47a0bdc8.js create mode 100644 templates/assets/dist/assets/createSeriesData-4848ff50.js create mode 100644 templates/assets/dist/assets/customGraphicKeyframeAnimation-15977b4b.js delete mode 100644 templates/assets/dist/assets/customGraphicKeyframeAnimation-e508d217.js delete mode 100644 templates/assets/dist/assets/en-60b41890.js create mode 100644 templates/assets/dist/assets/en-d12c2ca6.js create mode 100644 templates/assets/dist/assets/graphic-083f2b2f.js delete mode 100644 templates/assets/dist/assets/graphic-c958e8df.js delete mode 100644 templates/assets/dist/assets/index-51a9a0b2.js delete mode 100644 templates/assets/dist/assets/index-599c05fe.js create mode 100644 templates/assets/dist/assets/index-5fe31283.js delete mode 100644 templates/assets/dist/assets/index-9d2db266.js create mode 100644 templates/assets/dist/assets/index-bd7fc044.js create mode 100644 templates/assets/dist/assets/index-c0aec26a.js delete mode 100644 templates/assets/dist/assets/index.esm-ab99b29d.js create mode 100644 templates/assets/dist/assets/index.esm-e5442572.js delete mode 100644 templates/assets/dist/assets/isotope-1c156680.js create mode 100644 templates/assets/dist/assets/isotope-c78448f5.js delete mode 100644 templates/assets/dist/assets/ja-28a98039.js create mode 100644 templates/assets/dist/assets/ja-3c0ce0b5.js create mode 100644 templates/assets/dist/assets/nprogress-2b5a08a9.js delete mode 100644 templates/assets/dist/assets/nprogress-92617843.js delete mode 100644 templates/assets/dist/assets/renderers-937e32c4.js create mode 100644 templates/assets/dist/assets/renderers-d9915dda.js delete mode 100644 templates/assets/dist/assets/video.es-7835fb1f.js create mode 100644 templates/assets/dist/assets/video.es-db0fa9e7.js create mode 100644 templates/assets/dist/assets/zh-1614e2f8.js delete mode 100644 templates/assets/dist/assets/zh-98259877.js diff --git a/templates/assets/dist/assets/APlayer.min-1b5a4167.js b/templates/assets/dist/assets/APlayer.min-1b5a4167.js new file mode 100644 index 00000000..154a78ae --- /dev/null +++ b/templates/assets/dist/assets/APlayer.min-1b5a4167.js @@ -0,0 +1,154 @@ +import{g as E}from"./_commonjsHelpers-042e6b4d.js";function S(T,L){for(var f=0;fh[d]})}}}return Object.freeze(Object.defineProperty(T,Symbol.toStringTag,{value:"Module"}))}var _={exports:{}};(function(T,L){(function(f,h){T.exports=h()})(window,function(){return function(f){var h={};function d(u){if(h[u])return h[u].exports;var c=h[u]={i:u,l:!1,exports:{}};return f[u].call(c.exports,c,c.exports,d),c.l=!0,c.exports}return d.m=f,d.c=h,d.d=function(u,c,e){d.o(u,c)||Object.defineProperty(u,c,{configurable:!1,enumerable:!0,get:e})},d.r=function(u){Object.defineProperty(u,"__esModule",{value:!0})},d.n=function(u){var c=u&&u.__esModule?function(){return u.default}:function(){return u};return d.d(c,"a",c),c},d.o=function(u,c){return Object.prototype.hasOwnProperty.call(u,c)},d.p="/",d(d.s=41)}([function(f,h,d){Object.defineProperty(h,"__esModule",{value:!0});var u=/mobile/i.test(window.navigator.userAgent),c={secondToTime:function(e){var n=Math.floor(e/3600),o=Math.floor((e-3600*n)/60),s=Math.floor(e-3600*n-60*o);return(n>0?[n,o,s]:[o,s]).map(function(t){return t<10?"0"+t:""+t}).join(":")},getElementViewLeft:function(e){var n=e.offsetLeft,o=e.offsetParent,s=document.body.scrollLeft+document.documentElement.scrollLeft;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;o!==null&&o!==e;)n+=o.offsetLeft,o=o.offsetParent;else for(;o!==null;)n+=o.offsetLeft,o=o.offsetParent;return n-s},getElementViewTop:function(e,n){for(var o,s=e.offsetTop,t=e.offsetParent;t!==null;)s+=t.offsetTop,t=t.offsetParent;return o=document.body.scrollTop+document.documentElement.scrollTop,n?s:s-o},isMobile:u,storage:{set:function(e,n){localStorage.setItem(e,n)},get:function(e){return localStorage.getItem(e)}},nameMap:{dragStart:u?"touchstart":"mousedown",dragMove:u?"touchmove":"mousemove",dragEnd:u?"touchend":"mouseup"},randomOrder:function(e){return function(n){for(var o=n.length-1;o>=0;o--){var s=Math.floor(Math.random()*(o+1)),t=n[s];n[s]=n[o],n[o]=t}return n}([].concat(function(n){if(Array.isArray(n)){for(var o=0,s=Array(n.length);o + + `,e+=s(p+i),e+=` + `,e+=s(l.name),e+=` + `,e+=s(l.artist),e+=` + +`}),e}},function(f,h,d){f.exports=d(15)},function(f,h,d){Object.defineProperty(h,"__esModule",{value:!0});var u=w(d(33)),c=w(d(32)),e=w(d(31)),n=w(d(30)),o=w(d(29)),s=w(d(28)),t=w(d(27)),i=w(d(26)),l=w(d(25)),p=w(d(24)),r=w(d(23)),y=w(d(22)),x=w(d(21)),g=w(d(20)),b=w(d(19));function w(a){return a&&a.__esModule?a:{default:a}}var m={play:u.default,pause:c.default,volumeUp:e.default,volumeDown:n.default,volumeOff:o.default,orderRandom:s.default,orderList:t.default,menu:i.default,loopAll:l.default,loopOne:p.default,loopNone:r.default,loading:y.default,right:x.default,skip:g.default,lrc:b.default};h.default=m},function(f,h,d){var u,c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};u=function(){return this}();try{u=u||Function("return this")()||(0,eval)("this")}catch{(typeof window>"u"?"undefined":c(window))==="object"&&(u=window)}f.exports=u},function(f,h,d){var u,c,e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n};(c=typeof(u=function(){if((typeof window>"u"?"undefined":e(window))==="object"&&document.querySelectorAll!==void 0&&window.pageYOffset!==void 0&&history.pushState!==void 0){var n=function(t,i,l,p){return l>p?i:t+(i-t)*((r=l/p)<.5?4*r*r*r:(r-1)*(2*r-2)*(2*r-2)+1);var r},o=function(t,i,l,p){i=i||500;var r=(p=p||window).scrollTop||window.pageYOffset;if(typeof t=="number")var y=parseInt(t);else var y=function(b,w){return b.nodeName==="HTML"?-w:b.getBoundingClientRect().top+w}(t,r);var x=Date.now(),g=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(b){window.setTimeout(b,15)};(function b(){var w=Date.now()-x;p!==window?p.scrollTop=n(r,y,w,i):window.scroll(0,n(r,y,w,i)),w>i?typeof l=="function"&&l(t):g(b)})()},s=function(t){if(!t.defaultPrevented){t.preventDefault(),location.hash!==this.hash&&window.history.pushState(null,null,this.hash);var i=document.getElementById(this.hash.substring(1));if(!i)return;o(i,500,function(l){location.replace("#"+l.id)})}};return document.addEventListener("DOMContentLoaded",function(){for(var t,i=document.querySelectorAll('a[href^="#"]:not([href="#"])'),l=i.length;t=i[--l];)t.addEventListener("click",s,!1)}),o}})=="function"?u.call(h,d,h,f):u)===void 0||(f.exports=c)},function(f,h,d){Object.defineProperty(h,"__esModule",{value:!0});var u=function(){function t(i,l){for(var p=0;p1),p=this.audios.length===0;this.player.template.listOl.innerHTML+=(0,c.default)({theme:this.player.options.theme,audio:i,index:this.audios.length+1}),this.audios=this.audios.concat(i),l&&this.audios.length>1&&this.player.container.classList.add("aplayer-withlist"),this.player.randomOrder=e.default.randomOrder(this.audios.length),this.player.template.listCurs=this.player.container.querySelectorAll(".aplayer-list-cur"),this.player.template.listCurs[this.audios.length-1].style.backgroundColor=i.theme||this.player.options.theme,p&&(this.player.options.order==="random"?this.switch(this.player.randomOrder[0]):this.switch(0))}},{key:"remove",value:function(i){if(this.player.events.trigger("listremove",{index:i}),this.audios[i])if(this.audios.length>1){var l=this.player.container.querySelectorAll(".aplayer-list li");l[i].remove(),this.audios.splice(i,1),this.player.lrc&&this.player.lrc.remove(i),i===this.index&&(this.audios[i]?this.switch(i):this.switch(i-1)),this.index>i&&this.index--;for(var p=i;po&&!n.player.audio.paused&&(n.player.container.classList.remove("aplayer-loading"),t=!1),o=s)},100)}},{key:"enable",value:function(n){this["enable"+n+"Checker"]=!0,n==="fps"&&this.initfpsChecker()}},{key:"disable",value:function(n){this["enable"+n+"Checker"]=!1}},{key:"destroy",value:function(){var n=this;this.types.forEach(function(o){n["enable"+o+"Checker"]=!1,n[o+"Checker"]&&clearInterval(n[o+"Checker"])})}}]),e}();h.default=c},function(f,h,d){Object.defineProperty(h,"__esModule",{value:!0});var u=function(){function s(t,i){for(var l=0;l1?t.player.options.loop==="one"?(t.player.options.loop="none",t.player.template.loop.innerHTML=e.default.loopNone):t.player.options.loop==="none"?(t.player.options.loop="all",t.player.template.loop.innerHTML=e.default.loopAll):t.player.options.loop==="all"&&(t.player.options.loop="one",t.player.template.loop.innerHTML=e.default.loopOne):t.player.options.loop==="one"||t.player.options.loop==="all"?(t.player.options.loop="none",t.player.template.loop.innerHTML=e.default.loopNone):t.player.options.loop==="none"&&(t.player.options.loop="all",t.player.template.loop.innerHTML=e.default.loopAll)})}},{key:"initMenuButton",value:function(){var t=this;this.player.template.menu.addEventListener("click",function(){t.player.list.toggle()})}},{key:"initMiniSwitcher",value:function(){var t=this;this.player.template.miniSwitcher.addEventListener("click",function(){t.player.setMode(t.player.mode==="mini"?"normal":"mini")})}},{key:"initSkipButton",value:function(){var t=this;this.player.template.skipBackButton.addEventListener("click",function(){t.player.skipBack()}),this.player.template.skipForwardButton.addEventListener("click",function(){t.player.skipForward()}),this.player.template.skipPlayButton.addEventListener("click",function(){t.player.toggle()})}},{key:"initLrcButton",value:function(){var t=this;this.player.template.lrcButton.addEventListener("click",function(){t.player.template.lrcButton.classList.contains("aplayer-icon-lrc-inactivity")?(t.player.template.lrcButton.classList.remove("aplayer-icon-lrc-inactivity"),t.player.lrc&&t.player.lrc.show()):(t.player.template.lrcButton.classList.add("aplayer-icon-lrc-inactivity"),t.player.lrc&&t.player.lrc.hide())})}}]),s}();h.default=o},function(f,h,d){var u=d(2);f.exports=function(c){c=c||{};var e="",n=u.$each,o=c.lyrics,s=(c.$value,c.$index,u.$escape);return n(o,function(t,i){e+=` + +`}),e}},function(f,h,d){Object.defineProperty(h,"__esModule",{value:!0});var u,c=function(){function s(t,i){for(var l=0;l0&&arguments[0]!==void 0?arguments[0]:this.player.audio.currentTime;if(this.index>this.current.length-1||t=this.current[this.index+1][0])for(var i=0;i=this.current[i][0]&&(!this.current[i+1]||t=200&&l.status<300||l.status===304?i.parsed[t]=i.parse(l.responseText):(i.player.notice("LRC file request fails: status "+l.status),i.parsed[t]=[["00:00","Not available"]]),i.container.innerHTML=(0,n.default)({lyrics:i.parsed[t]}),i.update(0),i.current=i.parsed[t])};var p=this.player.list.audios[t].lrc;l.open("get",p,!0),l.send(null)}else this.player.list.audios[t].lrc?this.parsed[t]=this.parse(this.player.list.audios[t].lrc):this.parsed[t]=[["00:00","Not available"]];this.container.innerHTML=(0,n.default)({lyrics:this.parsed[t]}),this.update(0),this.current=this.parsed[t]}},{key:"parse",value:function(t){if(t){for(var i=(t=t.replace(/([^\]^\n])\[/g,function(a,v){return v+` +[`})).split(` +`),l=[],p=i.length,r=0;r/g,"").replace(/^\s+|\s+$/g,"");if(y)for(var g=y.length,b=0;b]/;e.$escape=function(o){return function(s){var t=""+s,i=n.exec(t);if(!i)return s;var l="",p=void 0,r=void 0,y=void 0;for(p=i.index,r=0;p + + `,i(d(1)(l({theme:n.theme,audio:n.audio,index:1}))),e+=` + + +
+
+
`,e+=t.play,e+=`
+
+ +
+
+
+
+
+
+`):(e+=` +
+
+
`,e+=t.play,e+=`
+
+
+
+ No audio + +
+
+
+
+
+
+
+
+
+ + `,e+=t.loading,e+=` + +
+
+
+
+ + 00:00 / 00:00 + + + `,e+=t.skip,e+=` + + + `,e+=t.play,e+=` + + + `,e+=t.skip,e+=` + +
+ +
+
+
+
+
+
+ + + + +
+
+
+
+
+
+
+ + `,i(d(1)(l({theme:n.theme,audio:n.audio,index:1}))),e+=` + +
+`),e}},function(f,h,d){Object.defineProperty(h,"__esModule",{value:!0});var u=function(){function s(t,i){for(var l=0;l'},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h){f.exports=''},function(f,h,d){var u,c,e=f.exports={};function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(b){if(u===setTimeout)return setTimeout(b,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(b,0);try{return u(b,0)}catch{try{return u.call(null,b,0)}catch{return u.call(this,b,0)}}}(function(){try{u=typeof setTimeout=="function"?setTimeout:n}catch{u=n}try{c=typeof clearTimeout=="function"?clearTimeout:o}catch{c=o}})();var t,i=[],l=!1,p=-1;function r(){l&&t&&(l=!1,t.length?i=t.concat(i):p=-1,i.length&&y())}function y(){if(!l){var b=s(r);l=!0;for(var w=i.length;w;){for(t=i,i=[];++p1)for(var m=1;m"u"?u===void 0?void 0:u:self)}).call(this,d(4),d(34))},function(f,h,d){var u=Function.prototype.apply;function c(e,n){this._id=e,this._clearFn=n}h.setTimeout=function(){return new c(u.call(setTimeout,window,arguments),clearTimeout)},h.setInterval=function(){return new c(u.call(setInterval,window,arguments),clearInterval)},h.clearTimeout=h.clearInterval=function(e){e&&e.close()},c.prototype.unref=c.prototype.ref=function(){},c.prototype.close=function(){this._clearFn.call(window,this._id)},h.enroll=function(e,n){clearTimeout(e._idleTimeoutId),e._idleTimeout=n},h.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},h._unrefActive=h.active=function(e){clearTimeout(e._idleTimeoutId);var n=e._idleTimeout;n>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},n))},d(35),h.setImmediate=setImmediate,h.clearImmediate=clearImmediate},function(f,h,d){(function(u){var c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},e=setTimeout;function n(){}function o(r){if(!(this instanceof o))throw new TypeError("Promises must be constructed via new");if(typeof r!="function")throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],p(r,this)}function s(r,y){for(;r._state===3;)r=r._value;r._state!==0?(r._handled=!0,o._immediateFn(function(){var x=r._state===1?y.onFulfilled:y.onRejected;if(x!==null){var g;try{g=x(r._value)}catch(b){return void i(y.promise,b)}t(y.promise,g)}else(r._state===1?t:i)(y.promise,r._value)})):r._deferreds.push(y)}function t(r,y){try{if(y===r)throw new TypeError("A promise cannot be resolved with itself.");if(y&&((y===void 0?"undefined":c(y))==="object"||typeof y=="function")){var x=y.then;if(y instanceof o)return r._state=3,r._value=y,void l(r);if(typeof x=="function")return void p((g=x,b=y,function(){g.apply(b,arguments)}),r)}r._state=1,r._value=y,l(r)}catch(w){i(r,w)}var g,b}function i(r,y){r._state=2,r._value=y,l(r)}function l(r){r._state===2&&r._deferreds.length===0&&o._immediateFn(function(){r._handled||o._unhandledRejectionFn(r._value)});for(var y=0,x=r._deferreds.length;y1&&this.container.classList.add("aplayer-withlist"),e.default.isMobile&&this.container.classList.add("aplayer-mobile"),this.arrow=this.container.offsetWidth<=300,this.arrow&&this.container.classList.add("aplayer-arrow"),this.container=this.options.container,this.options.lrcType===2||this.options.lrcType===!0)for(var v=this.container.getElementsByClassName("aplayer-lrc-content"),k=0;k1?(a.notice("An audio error has occurred, player will skip forward in 2 seconds."),v=setTimeout(function(){a.skipForward(),a.paused||a.play()},2e3)):a.list.audios.length===1&&a.notice("An audio error has occurred.")}),this.events.on("listswitch",function(){v&&clearTimeout(v)}),this.on("ended",function(){a.options.loop==="none"?a.options.order==="list"?a.list.index0&&arguments[0]!==void 0?arguments[0]:this.list.audios[this.list.index].theme||this.options.theme,v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.list.index;(!(arguments.length>2&&arguments[2]!==void 0)||arguments[2])&&this.list.audios[v]&&(this.list.audios[v].theme=a),this.template.listCurs[v]&&(this.template.listCurs[v].style.backgroundColor=a),v===this.list.index&&(this.template.pic.style.backgroundColor=a,this.template.played.style.background=a,this.template.thumb.style.background=a,this.template.volume.style.background=a)}},{key:"seek",value:function(a){a=Math.max(a,0),a=Math.min(a,this.duration),this.audio.currentTime=a,this.bar.set("played",a/this.duration,"width"),this.template.ptime.innerHTML=e.default.secondToTime(a)}},{key:"setUIPlaying",value:function(){var a=this;if(this.paused&&(this.paused=!1,this.template.button.classList.remove("aplayer-play"),this.template.button.classList.add("aplayer-pause"),this.template.button.innerHTML="",setTimeout(function(){a.template.button.innerHTML=n.default.pause},100),this.template.skipPlayButton.innerHTML=n.default.pause),this.timer.enable("loading"),this.options.mutex)for(var v=0;v=.95?this.template.volumeButton.innerHTML=n.default.volumeUp:this.volume()>0?this.template.volumeButton.innerHTML=n.default.volumeDown:this.template.volumeButton.innerHTML=n.default.volumeOff}},{key:"volume",value:function(a,v){return a=parseFloat(a),isNaN(a)||(a=Math.max(a,0),a=Math.min(a,1),this.bar.set("volume",a,"height"),v||this.storage.set("volume",a),this.audio.volume=a,this.audio.muted&&(this.audio.muted=!1),this.switchVolumeIcon()),this.audio.muted?0:this.audio.volume}},{key:"on",value:function(a,v){this.events.on(a,v)}},{key:"toggle",value:function(){this.template.button.classList.contains("aplayer-play")?this.play():this.template.button.classList.contains("aplayer-pause")&&this.pause()}},{key:"switchAudio",value:function(a){this.list.switch(a)}},{key:"addAudio",value:function(a){this.list.add(a)}},{key:"removeAudio",value:function(a){this.list.remove(a)}},{key:"destroy",value:function(){b.splice(b.indexOf(this),1),this.pause(),this.container.innerHTML="",this.audio.src="",this.timer.destroy(),this.events.trigger("destroy")}},{key:"setMode",value:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"normal";this.mode=a,a==="mini"?this.container.classList.add("aplayer-narrow"):a==="normal"&&this.container.classList.remove("aplayer-narrow")}},{key:"notice",value:function(a){var v=this,k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2e3,M=arguments.length>2&&arguments[2]!==void 0?arguments[2]:.8;this.template.notice.innerHTML=a,this.template.notice.style.opacity=M,this.noticeTime&&clearTimeout(this.noticeTime),this.events.trigger("noticeshow",{text:a}),k&&(this.noticeTime=setTimeout(function(){v.template.notice.style.opacity=0,v.events.trigger("noticehide")},k))}},{key:"prevIndex",value:function(){if(!(this.list.audios.length>1))return 0;if(this.options.order==="list")return this.list.index-1<0?this.list.audios.length-1:this.list.index-1;if(this.options.order==="random"){var a=this.randomOrder.indexOf(this.list.index);return a===0?this.randomOrder[this.randomOrder.length-1]:this.randomOrder[a-1]}}},{key:"nextIndex",value:function(){if(!(this.list.audios.length>1))return 0;if(this.options.order==="list")return(this.list.index+1)%this.list.audios.length;if(this.options.order==="random"){var a=this.randomOrder.indexOf(this.list.index);return a===this.randomOrder.length-1?this.randomOrder[0]:this.randomOrder[a+1]}}},{key:"skipBack",value:function(){this.list.switch(this.prevIndex())}},{key:"skipForward",value:function(){this.list.switch(this.nextIndex())}},{key:"duration",get:function(){return isNaN(this.audio.duration)?0:this.audio.duration}}],[{key:"version",get:function(){return"1.10.1"}}]),m}();h.default=w},,function(f,h,d){},function(f,h,d){Object.defineProperty(h,"__esModule",{value:!0}),d(40);var u,c=d(38),e=(u=c)&&u.__esModule?u:{default:u};console.log(` + %c APlayer v1.10.1 af84efb %c http://aplayer.js.org +`,"color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),h.default=e.default}]).default})})(_);var O=_.exports;const B=E(O),A=S({__proto__:null,default:B},[O]);export{A}; diff --git a/templates/assets/dist/assets/APlayer.min-4c1eacf9.js b/templates/assets/dist/assets/APlayer.min-4c1eacf9.js deleted file mode 100644 index 6ba83479..00000000 --- a/templates/assets/dist/assets/APlayer.min-4c1eacf9.js +++ /dev/null @@ -1,1164 +0,0 @@ -import { g as getDefaultExportFromCjs } from "./_commonjsHelpers-7a7fcd32.js"; -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: "Module" })); -} -var APlayer_min$2 = { exports: {} }; -(function(module, exports) { - !function(e, t) { - module.exports = t(); - }(window, function() { - return function(e) { - var t = {}; - function n(i) { - if (t[i]) - return t[i].exports; - var a = t[i] = { i, l: false, exports: {} }; - return e[i].call(a.exports, a, a.exports, n), a.l = true, a.exports; - } - return n.m = e, n.c = t, n.d = function(e2, t2, i) { - n.o(e2, t2) || Object.defineProperty(e2, t2, { configurable: false, enumerable: true, get: i }); - }, n.r = function(e2) { - Object.defineProperty(e2, "__esModule", { value: true }); - }, n.n = function(e2) { - var t2 = e2 && e2.__esModule ? function() { - return e2.default; - } : function() { - return e2; - }; - return n.d(t2, "a", t2), t2; - }, n.o = function(e2, t2) { - return Object.prototype.hasOwnProperty.call(e2, t2); - }, n.p = "/", n(n.s = 41); - }([function(e, t, n) { - Object.defineProperty(t, "__esModule", { value: true }); - var i = /mobile/i.test(window.navigator.userAgent), a = { secondToTime: function(e2) { - var t2 = Math.floor(e2 / 3600), n2 = Math.floor((e2 - 3600 * t2) / 60), i2 = Math.floor(e2 - 3600 * t2 - 60 * n2); - return (t2 > 0 ? [t2, n2, i2] : [n2, i2]).map(function(e3) { - return e3 < 10 ? "0" + e3 : "" + e3; - }).join(":"); - }, getElementViewLeft: function(e2) { - var t2 = e2.offsetLeft, n2 = e2.offsetParent, i2 = document.body.scrollLeft + document.documentElement.scrollLeft; - if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement) - for (; null !== n2 && n2 !== e2; ) - t2 += n2.offsetLeft, n2 = n2.offsetParent; - else - for (; null !== n2; ) - t2 += n2.offsetLeft, n2 = n2.offsetParent; - return t2 - i2; - }, getElementViewTop: function(e2, t2) { - for (var n2, i2 = e2.offsetTop, a2 = e2.offsetParent; null !== a2; ) - i2 += a2.offsetTop, a2 = a2.offsetParent; - return n2 = document.body.scrollTop + document.documentElement.scrollTop, t2 ? i2 : i2 - n2; - }, isMobile: i, storage: { set: function(e2, t2) { - localStorage.setItem(e2, t2); - }, get: function(e2) { - return localStorage.getItem(e2); - } }, nameMap: { dragStart: i ? "touchstart" : "mousedown", dragMove: i ? "touchmove" : "mousemove", dragEnd: i ? "touchend" : "mouseup" }, randomOrder: function(e2) { - return function(e3) { - for (var t2 = e3.length - 1; t2 >= 0; t2--) { - var n2 = Math.floor(Math.random() * (t2 + 1)), i2 = e3[n2]; - e3[n2] = e3[t2], e3[t2] = i2; - } - return e3; - }([].concat(function(e3) { - if (Array.isArray(e3)) { - for (var t2 = 0, n2 = Array(e3.length); t2 < e3.length; t2++) - n2[t2] = e3[t2]; - return n2; - } - return Array.from(e3); - }(Array(e2))).map(function(e3, t2) { - return t2; - })); - } }; - t.default = a; - }, function(e, t, n) { - var i = n(2); - e.exports = function(e2) { - e2 = e2 || {}; - var t2 = "", n2 = i.$each, a = e2.audio, r = (e2.$value, e2.$index, i.$escape), o = e2.theme, s = e2.index; - return n2(a, function(e3, n3) { - t2 += '\n
  • \n \n ', t2 += r(n3 + s), t2 += '\n ', t2 += r(e3.name), t2 += '\n ', t2 += r(e3.artist), t2 += "\n
  • \n"; - }), t2; - }; - }, function(e, t, n) { - e.exports = n(15); - }, function(e, t, n) { - Object.defineProperty(t, "__esModule", { value: true }); - var i = g(n(33)), a = g(n(32)), r = g(n(31)), o = g(n(30)), s = g(n(29)), l = g(n(28)), u = g(n(27)), c = g(n(26)), p = g(n(25)), d = g(n(24)), h = g(n(23)), y = g(n(22)), f = g(n(21)), v = g(n(20)), m = g(n(19)); - function g(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; - } - var w = { play: i.default, pause: a.default, volumeUp: r.default, volumeDown: o.default, volumeOff: s.default, orderRandom: l.default, orderList: u.default, menu: c.default, loopAll: p.default, loopOne: d.default, loopNone: h.default, loading: y.default, right: f.default, skip: v.default, lrc: m.default }; - t.default = w; - }, function(e, t, n) { - var i, a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e2) { - return typeof e2; - } : function(e2) { - return e2 && "function" == typeof Symbol && e2.constructor === Symbol && e2 !== Symbol.prototype ? "symbol" : typeof e2; - }; - i = function() { - return this; - }(); - try { - i = i || Function("return this")() || (0, eval)("this"); - } catch (e2) { - "object" === ("undefined" == typeof window ? "undefined" : a(window)) && (i = window); - } - e.exports = i; - }, function(e, t, n) { - var i, a, r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e2) { - return typeof e2; - } : function(e2) { - return e2 && "function" == typeof Symbol && e2.constructor === Symbol && e2 !== Symbol.prototype ? "symbol" : typeof e2; - }; - void 0 === (a = "function" == typeof (i = function() { - if ("object" === ("undefined" == typeof window ? "undefined" : r(window)) && void 0 !== document.querySelectorAll && void 0 !== window.pageYOffset && void 0 !== history.pushState) { - var e2 = function(e3, t3, n3, i2) { - return n3 > i2 ? t3 : e3 + (t3 - e3) * ((a2 = n3 / i2) < 0.5 ? 4 * a2 * a2 * a2 : (a2 - 1) * (2 * a2 - 2) * (2 * a2 - 2) + 1); - var a2; - }, t2 = function(t3, n3, i2, a2) { - n3 = n3 || 500; - var r2 = (a2 = a2 || window).scrollTop || window.pageYOffset; - if ("number" == typeof t3) - var o = parseInt(t3); - else - var o = function(e3, t4) { - return "HTML" === e3.nodeName ? -t4 : e3.getBoundingClientRect().top + t4; - }(t3, r2); - var s = Date.now(), l = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(e3) { - window.setTimeout(e3, 15); - }; - !function u() { - var c = Date.now() - s; - a2 !== window ? a2.scrollTop = e2(r2, o, c, n3) : window.scroll(0, e2(r2, o, c, n3)), c > n3 ? "function" == typeof i2 && i2(t3) : l(u); - }(); - }, n2 = function(e3) { - if (!e3.defaultPrevented) { - e3.preventDefault(), location.hash !== this.hash && window.history.pushState(null, null, this.hash); - var n3 = document.getElementById(this.hash.substring(1)); - if (!n3) - return; - t2(n3, 500, function(e4) { - location.replace("#" + e4.id); - }); - } - }; - return document.addEventListener("DOMContentLoaded", function() { - for (var e3, t3 = document.querySelectorAll('a[href^="#"]:not([href="#"])'), i2 = t3.length; e3 = t3[--i2]; ) - e3.addEventListener("click", n2, false); - }), t2; - } - }) ? i.call(t, n, t, e) : i) || (e.exports = a); - }, function(e, t, n) { - Object.defineProperty(t, "__esModule", { value: true }); - var i = function() { - function e2(e3, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var i2 = t2[n2]; - i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2); - } - } - return function(t2, n2, i2) { - return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2; - }; - }(), a = s(n(1)), r = s(n(0)), o = s(n(5)); - function s(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; - } - var l = function() { - function e2(t2) { - !function(e3, t3) { - if (!(e3 instanceof t3)) - throw new TypeError("Cannot call a class as a function"); - }(this, e2), this.player = t2, this.index = 0, this.audios = this.player.options.audio, this.bindEvents(); - } - return i(e2, [{ key: "bindEvents", value: function() { - var e3 = this; - this.player.template.list.addEventListener("click", function(t2) { - var n2 = void 0; - n2 = "LI" === t2.target.tagName.toUpperCase() ? t2.target : t2.target.parentElement; - var i2 = parseInt(n2.getElementsByClassName("aplayer-list-index")[0].innerHTML) - 1; - i2 !== e3.index ? (e3.switch(i2), e3.player.play()) : e3.player.toggle(); - }); - } }, { key: "show", value: function() { - this.player.events.trigger("listshow"), this.player.template.list.classList.remove("aplayer-list-hide"), this.player.template.listOl.scrollTop = 33 * this.index; - } }, { key: "hide", value: function() { - this.player.events.trigger("listhide"), this.player.template.list.classList.add("aplayer-list-hide"); - } }, { key: "toggle", value: function() { - this.player.template.list.classList.contains("aplayer-list-hide") ? this.show() : this.hide(); - } }, { key: "add", value: function(e3) { - this.player.events.trigger("listadd", { audios: e3 }), "[object Array]" !== Object.prototype.toString.call(e3) && (e3 = [e3]), e3.map(function(e4) { - return e4.name = e4.name || e4.title || "Audio name", e4.artist = e4.artist || e4.author || "Audio artist", e4.cover = e4.cover || e4.pic, e4.type = e4.type || "normal", e4; - }); - var t2 = !(this.audios.length > 1), n2 = 0 === this.audios.length; - this.player.template.listOl.innerHTML += (0, a.default)({ theme: this.player.options.theme, audio: e3, index: this.audios.length + 1 }), this.audios = this.audios.concat(e3), t2 && this.audios.length > 1 && this.player.container.classList.add("aplayer-withlist"), this.player.randomOrder = r.default.randomOrder(this.audios.length), this.player.template.listCurs = this.player.container.querySelectorAll(".aplayer-list-cur"), this.player.template.listCurs[this.audios.length - 1].style.backgroundColor = e3.theme || this.player.options.theme, n2 && ("random" === this.player.options.order ? this.switch(this.player.randomOrder[0]) : this.switch(0)); - } }, { key: "remove", value: function(e3) { - if (this.player.events.trigger("listremove", { index: e3 }), this.audios[e3]) - if (this.audios.length > 1) { - var t2 = this.player.container.querySelectorAll(".aplayer-list li"); - t2[e3].remove(), this.audios.splice(e3, 1), this.player.lrc && this.player.lrc.remove(e3), e3 === this.index && (this.audios[e3] ? this.switch(e3) : this.switch(e3 - 1)), this.index > e3 && this.index--; - for (var n2 = e3; n2 < t2.length; n2++) - t2[n2].getElementsByClassName("aplayer-list-index")[0].textContent = n2; - 1 === this.audios.length && this.player.container.classList.remove("aplayer-withlist"), this.player.template.listCurs = this.player.container.querySelectorAll(".aplayer-list-cur"); - } else - this.clear(); - } }, { key: "switch", value: function(e3) { - if (this.player.events.trigger("listswitch", { index: e3 }), void 0 !== e3 && this.audios[e3]) { - this.index = e3; - var t2 = this.audios[this.index]; - this.player.template.pic.style.backgroundImage = t2.cover ? "url('" + t2.cover + "')" : "", this.player.theme(this.audios[this.index].theme || this.player.options.theme, this.index, false), this.player.template.title.innerHTML = t2.name, this.player.template.author.innerHTML = t2.artist ? " - " + t2.artist : ""; - var n2 = this.player.container.getElementsByClassName("aplayer-list-light")[0]; - n2 && n2.classList.remove("aplayer-list-light"), this.player.container.querySelectorAll(".aplayer-list li")[this.index].classList.add("aplayer-list-light"), (0, o.default)(33 * this.index, 500, null, this.player.template.listOl), this.player.setAudio(t2), this.player.lrc && this.player.lrc.switch(this.index), this.player.lrc && this.player.lrc.update(0), 1 !== this.player.duration && (this.player.template.dtime.innerHTML = r.default.secondToTime(this.player.duration)); - } - } }, { key: "clear", value: function() { - this.player.events.trigger("listclear"), this.index = 0, this.player.container.classList.remove("aplayer-withlist"), this.player.pause(), this.audios = [], this.player.lrc && this.player.lrc.clear(), this.player.audio.src = "", this.player.template.listOl.innerHTML = "", this.player.template.pic.style.backgroundImage = "", this.player.theme(this.player.options.theme, this.index, false), this.player.template.title.innerHTML = "No audio", this.player.template.author.innerHTML = "", this.player.bar.set("loaded", 0, "width"), this.player.template.dtime.innerHTML = r.default.secondToTime(0); - } }]), e2; - }(); - t.default = l; - }, function(e, t, n) { - Object.defineProperty(t, "__esModule", { value: true }); - var i = function() { - function e2(e3, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var i2 = t2[n2]; - i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2); - } - } - return function(t2, n2, i2) { - return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2; - }; - }(); - var a = function() { - function e2() { - !function(e3, t2) { - if (!(e3 instanceof t2)) - throw new TypeError("Cannot call a class as a function"); - }(this, e2), this.events = {}, this.audioEvents = ["abort", "canplay", "canplaythrough", "durationchange", "emptied", "ended", "error", "loadeddata", "loadedmetadata", "loadstart", "mozaudioavailable", "pause", "play", "playing", "progress", "ratechange", "seeked", "seeking", "stalled", "suspend", "timeupdate", "volumechange", "waiting"], this.playerEvents = ["destroy", "listshow", "listhide", "listadd", "listremove", "listswitch", "listclear", "noticeshow", "noticehide", "lrcshow", "lrchide"]; - } - return i(e2, [{ key: "on", value: function(e3, t2) { - this.type(e3) && "function" == typeof t2 && (this.events[e3] || (this.events[e3] = []), this.events[e3].push(t2)); - } }, { key: "trigger", value: function(e3, t2) { - if (this.events[e3] && this.events[e3].length) - for (var n2 = 0; n2 < this.events[e3].length; n2++) - this.events[e3][n2](t2); - } }, { key: "type", value: function(e3) { - return -1 !== this.playerEvents.indexOf(e3) ? "player" : -1 !== this.audioEvents.indexOf(e3) ? "audio" : (console.error("Unknown event name: " + e3), null); - } }]), e2; - }(); - t.default = a; - }, function(e, t, n) { - Object.defineProperty(t, "__esModule", { value: true }); - var i = function() { - function e2(e3, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var i2 = t2[n2]; - i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2); - } - } - return function(t2, n2, i2) { - return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2; - }; - }(); - var a = function() { - function e2(t2) { - !function(e3, t3) { - if (!(e3 instanceof t3)) - throw new TypeError("Cannot call a class as a function"); - }(this, e2), this.player = t2, window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(e3) { - window.setTimeout(e3, 1e3 / 60); - }, this.types = ["loading"], this.init(); - } - return i(e2, [{ key: "init", value: function() { - var e3 = this; - this.types.forEach(function(t2) { - e3["init" + t2 + "Checker"](); - }); - } }, { key: "initloadingChecker", value: function() { - var e3 = this, t2 = 0, n2 = 0, i2 = false; - this.loadingChecker = setInterval(function() { - e3.enableloadingChecker && (n2 = e3.player.audio.currentTime, i2 || n2 !== t2 || e3.player.audio.paused || (e3.player.container.classList.add("aplayer-loading"), i2 = true), i2 && n2 > t2 && !e3.player.audio.paused && (e3.player.container.classList.remove("aplayer-loading"), i2 = false), t2 = n2); - }, 100); - } }, { key: "enable", value: function(e3) { - this["enable" + e3 + "Checker"] = true, "fps" === e3 && this.initfpsChecker(); - } }, { key: "disable", value: function(e3) { - this["enable" + e3 + "Checker"] = false; - } }, { key: "destroy", value: function() { - var e3 = this; - this.types.forEach(function(t2) { - e3["enable" + t2 + "Checker"] = false, e3[t2 + "Checker"] && clearInterval(e3[t2 + "Checker"]); - }); - } }]), e2; - }(); - t.default = a; - }, function(e, t, n) { - Object.defineProperty(t, "__esModule", { value: true }); - var i = function() { - function e2(e3, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var i2 = t2[n2]; - i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2); - } - } - return function(t2, n2, i2) { - return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2; - }; - }(), a = o(n(0)), r = o(n(3)); - function o(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; - } - var s = function() { - function e2(t2) { - !function(e3, t3) { - if (!(e3 instanceof t3)) - throw new TypeError("Cannot call a class as a function"); - }(this, e2), this.player = t2, this.initPlayButton(), this.initPlayBar(), this.initOrderButton(), this.initLoopButton(), this.initMenuButton(), a.default.isMobile || this.initVolumeButton(), this.initMiniSwitcher(), this.initSkipButton(), this.initLrcButton(); - } - return i(e2, [{ key: "initPlayButton", value: function() { - var e3 = this; - this.player.template.pic.addEventListener("click", function() { - e3.player.toggle(); - }); - } }, { key: "initPlayBar", value: function() { - var e3 = this, t2 = function(t3) { - var n3 = ((t3.clientX || t3.changedTouches[0].clientX) - a.default.getElementViewLeft(e3.player.template.barWrap)) / e3.player.template.barWrap.clientWidth; - n3 = Math.max(n3, 0), n3 = Math.min(n3, 1), e3.player.bar.set("played", n3, "width"), e3.player.lrc && e3.player.lrc.update(n3 * e3.player.duration), e3.player.template.ptime.innerHTML = a.default.secondToTime(n3 * e3.player.duration); - }, n2 = function n3(i2) { - document.removeEventListener(a.default.nameMap.dragEnd, n3), document.removeEventListener(a.default.nameMap.dragMove, t2); - var r2 = ((i2.clientX || i2.changedTouches[0].clientX) - a.default.getElementViewLeft(e3.player.template.barWrap)) / e3.player.template.barWrap.clientWidth; - r2 = Math.max(r2, 0), r2 = Math.min(r2, 1), e3.player.bar.set("played", r2, "width"), e3.player.seek(e3.player.bar.get("played", "width") * e3.player.duration), e3.player.disableTimeupdate = false; - }; - this.player.template.barWrap.addEventListener(a.default.nameMap.dragStart, function() { - e3.player.disableTimeupdate = true, document.addEventListener(a.default.nameMap.dragMove, t2), document.addEventListener(a.default.nameMap.dragEnd, n2); - }); - } }, { key: "initVolumeButton", value: function() { - var e3 = this; - this.player.template.volumeButton.addEventListener("click", function() { - e3.player.audio.muted ? (e3.player.audio.muted = false, e3.player.switchVolumeIcon(), e3.player.bar.set("volume", e3.player.volume(), "height")) : (e3.player.audio.muted = true, e3.player.switchVolumeIcon(), e3.player.bar.set("volume", 0, "height")); - }); - var t2 = function(t3) { - var n3 = 1 - ((t3.clientY || t3.changedTouches[0].clientY) - a.default.getElementViewTop(e3.player.template.volumeBar, e3.player.options.fixed)) / e3.player.template.volumeBar.clientHeight; - n3 = Math.max(n3, 0), n3 = Math.min(n3, 1), e3.player.volume(n3); - }, n2 = function n3(i2) { - e3.player.template.volumeBarWrap.classList.remove("aplayer-volume-bar-wrap-active"), document.removeEventListener(a.default.nameMap.dragEnd, n3), document.removeEventListener(a.default.nameMap.dragMove, t2); - var r2 = 1 - ((i2.clientY || i2.changedTouches[0].clientY) - a.default.getElementViewTop(e3.player.template.volumeBar, e3.player.options.fixed)) / e3.player.template.volumeBar.clientHeight; - r2 = Math.max(r2, 0), r2 = Math.min(r2, 1), e3.player.volume(r2); - }; - this.player.template.volumeBarWrap.addEventListener(a.default.nameMap.dragStart, function() { - e3.player.template.volumeBarWrap.classList.add("aplayer-volume-bar-wrap-active"), document.addEventListener(a.default.nameMap.dragMove, t2), document.addEventListener(a.default.nameMap.dragEnd, n2); - }); - } }, { key: "initOrderButton", value: function() { - var e3 = this; - this.player.template.order.addEventListener("click", function() { - "list" === e3.player.options.order ? (e3.player.options.order = "random", e3.player.template.order.innerHTML = r.default.orderRandom) : "random" === e3.player.options.order && (e3.player.options.order = "list", e3.player.template.order.innerHTML = r.default.orderList); - }); - } }, { key: "initLoopButton", value: function() { - var e3 = this; - this.player.template.loop.addEventListener("click", function() { - e3.player.list.audios.length > 1 ? "one" === e3.player.options.loop ? (e3.player.options.loop = "none", e3.player.template.loop.innerHTML = r.default.loopNone) : "none" === e3.player.options.loop ? (e3.player.options.loop = "all", e3.player.template.loop.innerHTML = r.default.loopAll) : "all" === e3.player.options.loop && (e3.player.options.loop = "one", e3.player.template.loop.innerHTML = r.default.loopOne) : "one" === e3.player.options.loop || "all" === e3.player.options.loop ? (e3.player.options.loop = "none", e3.player.template.loop.innerHTML = r.default.loopNone) : "none" === e3.player.options.loop && (e3.player.options.loop = "all", e3.player.template.loop.innerHTML = r.default.loopAll); - }); - } }, { key: "initMenuButton", value: function() { - var e3 = this; - this.player.template.menu.addEventListener("click", function() { - e3.player.list.toggle(); - }); - } }, { key: "initMiniSwitcher", value: function() { - var e3 = this; - this.player.template.miniSwitcher.addEventListener("click", function() { - e3.player.setMode("mini" === e3.player.mode ? "normal" : "mini"); - }); - } }, { key: "initSkipButton", value: function() { - var e3 = this; - this.player.template.skipBackButton.addEventListener("click", function() { - e3.player.skipBack(); - }), this.player.template.skipForwardButton.addEventListener("click", function() { - e3.player.skipForward(); - }), this.player.template.skipPlayButton.addEventListener("click", function() { - e3.player.toggle(); - }); - } }, { key: "initLrcButton", value: function() { - var e3 = this; - this.player.template.lrcButton.addEventListener("click", function() { - e3.player.template.lrcButton.classList.contains("aplayer-icon-lrc-inactivity") ? (e3.player.template.lrcButton.classList.remove("aplayer-icon-lrc-inactivity"), e3.player.lrc && e3.player.lrc.show()) : (e3.player.template.lrcButton.classList.add("aplayer-icon-lrc-inactivity"), e3.player.lrc && e3.player.lrc.hide()); - }); - } }]), e2; - }(); - t.default = s; - }, function(e, t, n) { - var i = n(2); - e.exports = function(e2) { - e2 = e2 || {}; - var t2 = "", n2 = i.$each, a = e2.lyrics, r = (e2.$value, e2.$index, i.$escape); - return n2(a, function(e3, n3) { - t2 += "\n 0 && void 0 !== arguments[0] ? arguments[0] : this.player.audio.currentTime; - if (this.index > this.current.length - 1 || e3 < this.current[this.index][0] || !this.current[this.index + 1] || e3 >= this.current[this.index + 1][0]) - for (var t2 = 0; t2 < this.current.length; t2++) - e3 >= this.current[t2][0] && (!this.current[t2 + 1] || e3 < this.current[t2 + 1][0]) && (this.index = t2, this.container.style.transform = "translateY(" + 16 * -this.index + "px)", this.container.style.webkitTransform = "translateY(" + 16 * -this.index + "px)", this.container.getElementsByClassName("aplayer-lrc-current")[0].classList.remove("aplayer-lrc-current"), this.container.getElementsByTagName("p")[t2].classList.add("aplayer-lrc-current")); - } }, { key: "switch", value: function(e3) { - var t2 = this; - if (!this.parsed[e3]) - if (this.async) { - this.parsed[e3] = [["00:00", "Loading"]]; - var n2 = new XMLHttpRequest(); - n2.onreadystatechange = function() { - e3 === t2.player.list.index && 4 === n2.readyState && (n2.status >= 200 && n2.status < 300 || 304 === n2.status ? t2.parsed[e3] = t2.parse(n2.responseText) : (t2.player.notice("LRC file request fails: status " + n2.status), t2.parsed[e3] = [["00:00", "Not available"]]), t2.container.innerHTML = (0, o.default)({ lyrics: t2.parsed[e3] }), t2.update(0), t2.current = t2.parsed[e3]); - }; - var i2 = this.player.list.audios[e3].lrc; - n2.open("get", i2, true), n2.send(null); - } else - this.player.list.audios[e3].lrc ? this.parsed[e3] = this.parse(this.player.list.audios[e3].lrc) : this.parsed[e3] = [["00:00", "Not available"]]; - this.container.innerHTML = (0, o.default)({ lyrics: this.parsed[e3] }), this.update(0), this.current = this.parsed[e3]; - } }, { key: "parse", value: function(e3) { - if (e3) { - for (var t2 = (e3 = e3.replace(/([^\]^\n])\[/g, function(e4, t3) { - return t3 + "\n["; - })).split("\n"), n2 = [], i2 = t2.length, a2 = 0; a2 < i2; a2++) { - var r2 = t2[a2].match(/\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g), o2 = t2[a2].replace(/.*\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g, "").replace(/<(\d{2}):(\d{2})(\.(\d{2,3}))?>/g, "").replace(/^\s+|\s+$/g, ""); - if (r2) - for (var s2 = r2.length, l = 0; l < s2; l++) { - var u = /\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/.exec(r2[l]), c = 60 * u[1] + parseInt(u[2]) + (u[4] ? parseInt(u[4]) / (2 === (u[4] + "").length ? 100 : 1e3) : 0); - n2.push([c, o2]); - } - } - return (n2 = n2.filter(function(e4) { - return e4[1]; - })).sort(function(e4, t3) { - return e4[0] - t3[0]; - }), n2; - } - return []; - } }, { key: "remove", value: function(e3) { - this.parsed.splice(e3, 1); - } }, { key: "clear", value: function() { - this.parsed = [], this.container.innerHTML = ""; - } }]), e2; - }(); - t.default = s; - }, function(e, t, n) { - Object.defineProperty(t, "__esModule", { value: true }); - var i, a = function() { - function e2(e3, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var i2 = t2[n2]; - i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2); - } - } - return function(t2, n2, i2) { - return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2; - }; - }(), r = n(0), o = (i = r) && i.__esModule ? i : { default: i }; - var s = function() { - function e2(t2) { - !function(e3, t3) { - if (!(e3 instanceof t3)) - throw new TypeError("Cannot call a class as a function"); - }(this, e2), this.storageName = t2.options.storageName, this.data = JSON.parse(o.default.storage.get(this.storageName)), this.data || (this.data = {}), this.data.volume = this.data.volume || t2.options.volume; - } - return a(e2, [{ key: "get", value: function(e3) { - return this.data[e3]; - } }, { key: "set", value: function(e3, t2) { - this.data[e3] = t2, o.default.storage.set(this.storageName, JSON.stringify(this.data)); - } }]), e2; - }(); - t.default = s; - }, function(e, t, n) { - Object.defineProperty(t, "__esModule", { value: true }); - var i = function() { - function e2(e3, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var i2 = t2[n2]; - i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2); - } - } - return function(t2, n2, i2) { - return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2; - }; - }(); - var a = function() { - function e2(t2) { - !function(e3, t3) { - if (!(e3 instanceof t3)) - throw new TypeError("Cannot call a class as a function"); - }(this, e2), this.elements = {}, this.elements.volume = t2.volume, this.elements.played = t2.played, this.elements.loaded = t2.loaded; - } - return i(e2, [{ key: "set", value: function(e3, t2, n2) { - t2 = Math.max(t2, 0), t2 = Math.min(t2, 1), this.elements[e3].style[n2] = 100 * t2 + "%"; - } }, { key: "get", value: function(e3, t2) { - return parseFloat(this.elements[e3].style[t2]) / 100; - } }]), e2; - }(); - t.default = a; - }, function(e, t, n) { - (function(t2) { - e.exports = false; - try { - e.exports = "[object process]" === Object.prototype.toString.call(t2.process); - } catch (e2) { - } - }).call(this, n(4)); - }, function(e, t, n) { - (function(t2) { - var i = n(14), a = Object.create(i ? t2 : window), r = /["&'<>]/; - a.$escape = function(e2) { - return function(e3) { - var t3 = "" + e3, n2 = r.exec(t3); - if (!n2) - return e3; - var i2 = "", a2 = void 0, o = void 0, s = void 0; - for (a2 = n2.index, o = 0; a2 < t3.length; a2++) { - switch (t3.charCodeAt(a2)) { - case 34: - s = """; - break; - case 38: - s = "&"; - break; - case 39: - s = "'"; - break; - case 60: - s = "<"; - break; - case 62: - s = ">"; - break; - default: - continue; - } - o !== a2 && (i2 += t3.substring(o, a2)), o = a2 + 1, i2 += s; - } - return o !== a2 ? i2 + t3.substring(o, a2) : i2; - }(function e3(t3) { - "string" != typeof t3 && (t3 = void 0 === t3 || null === t3 ? "" : "function" == typeof t3 ? e3(t3.call(t3)) : JSON.stringify(t3)); - return t3; - }(e2)); - }, a.$each = function(e2, t3) { - if (Array.isArray(e2)) - for (var n2 = 0, i2 = e2.length; n2 < i2; n2++) - t3(e2[n2], n2); - else - for (var a2 in e2) - t3(e2[a2], a2); - }, e.exports = a; - }).call(this, n(4)); - }, function(e, t, n) { - var i = n(2); - e.exports = function(e2) { - var t2 = "", a = (e2 = e2 || {}).options, r = e2.cover, o = i.$escape, s = e2.icons, l = function(e3) { - return t2 += e3; - }, u = e2.getObject; - e2.theme, e2.audio, e2.index; - return a.fixed ? (t2 += '\n
    1) - for (var n2 = 1; n2 < arguments.length; n2++) - t2[n2 - 1] = arguments[n2]; - c.push(new f(e2, t2)), 1 !== c.length || p || l(y); - }, f.prototype.run = function() { - this.fun.apply(null, this.array); - }, r.title = "browser", r.browser = true, r.env = {}, r.argv = [], r.version = "", r.versions = {}, r.on = v, r.addListener = v, r.once = v, r.off = v, r.removeListener = v, r.removeAllListeners = v, r.emit = v, r.prependListener = v, r.prependOnceListener = v, r.listeners = function(e2) { - return []; - }, r.binding = function(e2) { - throw new Error("process.binding is not supported"); - }, r.cwd = function() { - return "/"; - }, r.chdir = function(e2) { - throw new Error("process.chdir is not supported"); - }, r.umask = function() { - return 0; - }; - }, function(e, t, n) { - (function(e2, t2) { - !function(e3, n2) { - if (!e3.setImmediate) { - var i, a, r, o, s, l = 1, u = {}, c = false, p = e3.document, d = Object.getPrototypeOf && Object.getPrototypeOf(e3); - d = d && d.setTimeout ? d : e3, "[object process]" === {}.toString.call(e3.process) ? i = function(e4) { - t2.nextTick(function() { - y(e4); - }); - } : !function() { - if (e3.postMessage && !e3.importScripts) { - var t3 = true, n3 = e3.onmessage; - return e3.onmessage = function() { - t3 = false; - }, e3.postMessage("", "*"), e3.onmessage = n3, t3; - } - }() ? e3.MessageChannel ? ((r = new MessageChannel()).port1.onmessage = function(e4) { - y(e4.data); - }, i = function(e4) { - r.port2.postMessage(e4); - }) : p && "onreadystatechange" in p.createElement("script") ? (a = p.documentElement, i = function(e4) { - var t3 = p.createElement("script"); - t3.onreadystatechange = function() { - y(e4), t3.onreadystatechange = null, a.removeChild(t3), t3 = null; - }, a.appendChild(t3); - }) : i = function(e4) { - setTimeout(y, 0, e4); - } : (o = "setImmediate$" + Math.random() + "$", s = function(t3) { - t3.source === e3 && "string" == typeof t3.data && 0 === t3.data.indexOf(o) && y(+t3.data.slice(o.length)); - }, e3.addEventListener ? e3.addEventListener("message", s, false) : e3.attachEvent("onmessage", s), i = function(t3) { - e3.postMessage(o + t3, "*"); - }), d.setImmediate = function(e4) { - "function" != typeof e4 && (e4 = new Function("" + e4)); - for (var t3 = new Array(arguments.length - 1), n3 = 0; n3 < t3.length; n3++) - t3[n3] = arguments[n3 + 1]; - var a2 = { callback: e4, args: t3 }; - return u[l] = a2, i(l), l++; - }, d.clearImmediate = h; - } - function h(e4) { - delete u[e4]; - } - function y(e4) { - if (c) - setTimeout(y, 0, e4); - else { - var t3 = u[e4]; - if (t3) { - c = true; - try { - !function(e5) { - var t4 = e5.callback, i2 = e5.args; - switch (i2.length) { - case 0: - t4(); - break; - case 1: - t4(i2[0]); - break; - case 2: - t4(i2[0], i2[1]); - break; - case 3: - t4(i2[0], i2[1], i2[2]); - break; - default: - t4.apply(n2, i2); - } - }(t3); - } finally { - h(e4), c = false; - } - } - } - } - }("undefined" == typeof self ? void 0 === e2 ? void 0 : e2 : self); - }).call(this, n(4), n(34)); - }, function(e, t, n) { - var i = Function.prototype.apply; - function a(e2, t2) { - this._id = e2, this._clearFn = t2; - } - t.setTimeout = function() { - return new a(i.call(setTimeout, window, arguments), clearTimeout); - }, t.setInterval = function() { - return new a(i.call(setInterval, window, arguments), clearInterval); - }, t.clearTimeout = t.clearInterval = function(e2) { - e2 && e2.close(); - }, a.prototype.unref = a.prototype.ref = function() { - }, a.prototype.close = function() { - this._clearFn.call(window, this._id); - }, t.enroll = function(e2, t2) { - clearTimeout(e2._idleTimeoutId), e2._idleTimeout = t2; - }, t.unenroll = function(e2) { - clearTimeout(e2._idleTimeoutId), e2._idleTimeout = -1; - }, t._unrefActive = t.active = function(e2) { - clearTimeout(e2._idleTimeoutId); - var t2 = e2._idleTimeout; - t2 >= 0 && (e2._idleTimeoutId = setTimeout(function() { - e2._onTimeout && e2._onTimeout(); - }, t2)); - }, n(35), t.setImmediate = setImmediate, t.clearImmediate = clearImmediate; - }, function(e, t, n) { - (function(t2) { - var n2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e2) { - return typeof e2; - } : function(e2) { - return e2 && "function" == typeof Symbol && e2.constructor === Symbol && e2 !== Symbol.prototype ? "symbol" : typeof e2; - }, i = setTimeout; - function a() { - } - function r(e2) { - if (!(this instanceof r)) - throw new TypeError("Promises must be constructed via new"); - if ("function" != typeof e2) - throw new TypeError("not a function"); - this._state = 0, this._handled = false, this._value = void 0, this._deferreds = [], c(e2, this); - } - function o(e2, t3) { - for (; 3 === e2._state; ) - e2 = e2._value; - 0 !== e2._state ? (e2._handled = true, r._immediateFn(function() { - var n3 = 1 === e2._state ? t3.onFulfilled : t3.onRejected; - if (null !== n3) { - var i2; - try { - i2 = n3(e2._value); - } catch (e3) { - return void l(t3.promise, e3); - } - s(t3.promise, i2); - } else - (1 === e2._state ? s : l)(t3.promise, e2._value); - })) : e2._deferreds.push(t3); - } - function s(e2, t3) { - try { - if (t3 === e2) - throw new TypeError("A promise cannot be resolved with itself."); - if (t3 && ("object" === (void 0 === t3 ? "undefined" : n2(t3)) || "function" == typeof t3)) { - var i2 = t3.then; - if (t3 instanceof r) - return e2._state = 3, e2._value = t3, void u(e2); - if ("function" == typeof i2) - return void c((a2 = i2, o2 = t3, function() { - a2.apply(o2, arguments); - }), e2); - } - e2._state = 1, e2._value = t3, u(e2); - } catch (t4) { - l(e2, t4); - } - var a2, o2; - } - function l(e2, t3) { - e2._state = 2, e2._value = t3, u(e2); - } - function u(e2) { - 2 === e2._state && 0 === e2._deferreds.length && r._immediateFn(function() { - e2._handled || r._unhandledRejectionFn(e2._value); - }); - for (var t3 = 0, n3 = e2._deferreds.length; t3 < n3; t3++) - o(e2, e2._deferreds[t3]); - e2._deferreds = null; - } - function c(e2, t3) { - var n3 = false; - try { - e2(function(e3) { - n3 || (n3 = true, s(t3, e3)); - }, function(e3) { - n3 || (n3 = true, l(t3, e3)); - }); - } catch (e3) { - if (n3) - return; - n3 = true, l(t3, e3); - } - } - r.prototype.catch = function(e2) { - return this.then(null, e2); - }, r.prototype.then = function(e2, t3) { - var n3 = new this.constructor(a); - return o(this, new function(e3, t4, n4) { - this.onFulfilled = "function" == typeof e3 ? e3 : null, this.onRejected = "function" == typeof t4 ? t4 : null, this.promise = n4; - }(e2, t3, n3)), n3; - }, r.prototype.finally = function(e2) { - var t3 = this.constructor; - return this.then(function(n3) { - return t3.resolve(e2()).then(function() { - return n3; - }); - }, function(n3) { - return t3.resolve(e2()).then(function() { - return t3.reject(n3); - }); - }); - }, r.all = function(e2) { - return new r(function(t3, i2) { - if (!e2 || void 0 === e2.length) - throw new TypeError("Promise.all accepts an array"); - var a2 = Array.prototype.slice.call(e2); - if (0 === a2.length) - return t3([]); - var r2 = a2.length; - function o2(e3, s3) { - try { - if (s3 && ("object" === (void 0 === s3 ? "undefined" : n2(s3)) || "function" == typeof s3)) { - var l2 = s3.then; - if ("function" == typeof l2) - return void l2.call(s3, function(t4) { - o2(e3, t4); - }, i2); - } - a2[e3] = s3, 0 == --r2 && t3(a2); - } catch (e4) { - i2(e4); - } - } - for (var s2 = 0; s2 < a2.length; s2++) - o2(s2, a2[s2]); - }); - }, r.resolve = function(e2) { - return e2 && "object" === (void 0 === e2 ? "undefined" : n2(e2)) && e2.constructor === r ? e2 : new r(function(t3) { - t3(e2); - }); - }, r.reject = function(e2) { - return new r(function(t3, n3) { - n3(e2); - }); - }, r.race = function(e2) { - return new r(function(t3, n3) { - for (var i2 = 0, a2 = e2.length; i2 < a2; i2++) - e2[i2].then(t3, n3); - }); - }, r._immediateFn = "function" == typeof t2 && function(e2) { - t2(e2); - } || function(e2) { - i(e2, 0); - }, r._unhandledRejectionFn = function(e2) { - "undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", e2); - }, e.exports = r; - }).call(this, n(36).setImmediate); - }, function(e, t, n) { - Object.defineProperty(t, "__esModule", { value: true }); - var i = function() { - function e2(e3, t2) { - for (var n2 = 0; n2 < t2.length; n2++) { - var i2 = t2[n2]; - i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2); - } - } - return function(t2, n2, i2) { - return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2; - }; - }(), a = v(n(37)), r = v(n(0)), o = v(n(3)), s = v(n(18)), l = v(n(17)), u = v(n(13)), c = v(n(12)), p = v(n(11)), d = v(n(9)), h = v(n(8)), y = v(n(7)), f = v(n(6)); - function v(e2) { - return e2 && e2.__esModule ? e2 : { default: e2 }; - } - var m = [], g = function() { - function e2(t2) { - if (function(e3, t3) { - if (!(e3 instanceof t3)) - throw new TypeError("Cannot call a class as a function"); - }(this, e2), this.options = (0, s.default)(t2), this.container = this.options.container, this.paused = true, this.playedPromise = a.default.resolve(), this.mode = "normal", this.randomOrder = r.default.randomOrder(this.options.audio.length), this.container.classList.add("aplayer"), this.options.lrcType && !this.options.fixed && this.container.classList.add("aplayer-withlrc"), this.options.audio.length > 1 && this.container.classList.add("aplayer-withlist"), r.default.isMobile && this.container.classList.add("aplayer-mobile"), this.arrow = this.container.offsetWidth <= 300, this.arrow && this.container.classList.add("aplayer-arrow"), this.container = this.options.container, 2 === this.options.lrcType || true === this.options.lrcType) - for (var n2 = this.container.getElementsByClassName("aplayer-lrc-content"), i2 = 0; i2 < n2.length; i2++) - this.options.audio[i2] && (this.options.audio[i2].lrc = n2[i2].innerHTML); - this.template = new l.default({ container: this.container, options: this.options, randomOrder: this.randomOrder }), this.options.fixed && (this.container.classList.add("aplayer-fixed"), this.template.body.style.width = this.template.body.offsetWidth - 18 + "px"), this.options.mini && (this.setMode("mini"), this.template.info.style.display = "block"), this.template.info.offsetWidth < 200 && this.template.time.classList.add("aplayer-time-narrow"), this.options.lrcType && (this.lrc = new p.default({ container: this.template.lrc, async: 3 === this.options.lrcType, player: this })), this.events = new y.default(), this.storage = new c.default(this), this.bar = new u.default(this.template), this.controller = new d.default(this), this.timer = new h.default(this), this.list = new f.default(this), this.initAudio(), this.bindEvents(), "random" === this.options.order ? this.list.switch(this.randomOrder[0]) : this.list.switch(0), this.options.autoplay && this.play(), m.push(this); - } - return i(e2, [{ key: "initAudio", value: function() { - var e3 = this; - this.audio = document.createElement("audio"), this.audio.preload = this.options.preload; - for (var t2 = function(t3) { - e3.audio.addEventListener(e3.events.audioEvents[t3], function(n3) { - e3.events.trigger(e3.events.audioEvents[t3], n3); - }); - }, n2 = 0; n2 < this.events.audioEvents.length; n2++) - t2(n2); - this.volume(this.storage.get("volume"), true); - } }, { key: "bindEvents", value: function() { - var e3 = this; - this.on("play", function() { - e3.paused && e3.setUIPlaying(); - }), this.on("pause", function() { - e3.paused || e3.setUIPaused(); - }), this.on("timeupdate", function() { - if (!e3.disableTimeupdate) { - e3.bar.set("played", e3.audio.currentTime / e3.duration, "width"), e3.lrc && e3.lrc.update(); - var t3 = r.default.secondToTime(e3.audio.currentTime); - e3.template.ptime.innerHTML !== t3 && (e3.template.ptime.innerHTML = t3); - } - }), this.on("durationchange", function() { - 1 !== e3.duration && (e3.template.dtime.innerHTML = r.default.secondToTime(e3.duration)); - }), this.on("progress", function() { - var t3 = e3.audio.buffered.length ? e3.audio.buffered.end(e3.audio.buffered.length - 1) / e3.duration : 0; - e3.bar.set("loaded", t3, "width"); - }); - var t2 = void 0; - this.on("error", function() { - e3.list.audios.length > 1 ? (e3.notice("An audio error has occurred, player will skip forward in 2 seconds."), t2 = setTimeout(function() { - e3.skipForward(), e3.paused || e3.play(); - }, 2e3)) : 1 === e3.list.audios.length && e3.notice("An audio error has occurred."); - }), this.events.on("listswitch", function() { - t2 && clearTimeout(t2); - }), this.on("ended", function() { - "none" === e3.options.loop ? "list" === e3.options.order ? e3.list.index < e3.list.audios.length - 1 ? (e3.list.switch((e3.list.index + 1) % e3.list.audios.length), e3.play()) : (e3.list.switch((e3.list.index + 1) % e3.list.audios.length), e3.pause()) : "random" === e3.options.order && (e3.randomOrder.indexOf(e3.list.index) < e3.randomOrder.length - 1 ? (e3.list.switch(e3.nextIndex()), e3.play()) : (e3.list.switch(e3.nextIndex()), e3.pause())) : "one" === e3.options.loop ? (e3.list.switch(e3.list.index), e3.play()) : "all" === e3.options.loop && (e3.skipForward(), e3.play()); - }); - } }, { key: "setAudio", value: function(e3) { - this.hls && (this.hls.destroy(), this.hls = null); - var t2 = e3.type; - this.options.customAudioType && this.options.customAudioType[t2] ? "[object Function]" === Object.prototype.toString.call(this.options.customAudioType[t2]) ? this.options.customAudioType[t2](this.audio, e3, this) : console.error("Illegal customType: " + t2) : (t2 && "auto" !== t2 || (t2 = /m3u8(#|\?|$)/i.exec(e3.url) ? "hls" : "normal"), "hls" === t2 ? Hls.isSupported() ? (this.hls = new Hls(), this.hls.loadSource(e3.url), this.hls.attachMedia(this.audio)) : this.audio.canPlayType("application/x-mpegURL") || this.audio.canPlayType("application/vnd.apple.mpegURL") ? this.audio.src = e3.url : this.notice("Error: HLS is not supported.") : "normal" === t2 && (this.audio.src = e3.url)), this.seek(0), this.paused || this.audio.play(); - } }, { key: "theme", value: function() { - var e3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.list.audios[this.list.index].theme || this.options.theme, t2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.list.index; - (!(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]) && this.list.audios[t2] && (this.list.audios[t2].theme = e3), this.template.listCurs[t2] && (this.template.listCurs[t2].style.backgroundColor = e3), t2 === this.list.index && (this.template.pic.style.backgroundColor = e3, this.template.played.style.background = e3, this.template.thumb.style.background = e3, this.template.volume.style.background = e3); - } }, { key: "seek", value: function(e3) { - e3 = Math.max(e3, 0), e3 = Math.min(e3, this.duration), this.audio.currentTime = e3, this.bar.set("played", e3 / this.duration, "width"), this.template.ptime.innerHTML = r.default.secondToTime(e3); - } }, { key: "setUIPlaying", value: function() { - var e3 = this; - if (this.paused && (this.paused = false, this.template.button.classList.remove("aplayer-play"), this.template.button.classList.add("aplayer-pause"), this.template.button.innerHTML = "", setTimeout(function() { - e3.template.button.innerHTML = o.default.pause; - }, 100), this.template.skipPlayButton.innerHTML = o.default.pause), this.timer.enable("loading"), this.options.mutex) - for (var t2 = 0; t2 < m.length; t2++) - this !== m[t2] && m[t2].pause(); - } }, { key: "play", value: function() { - var e3 = this; - this.setUIPlaying(); - var t2 = this.audio.play(); - t2 && t2.catch(function(t3) { - console.warn(t3), "NotAllowedError" === t3.name && e3.setUIPaused(); - }); - } }, { key: "setUIPaused", value: function() { - var e3 = this; - this.paused || (this.paused = true, this.template.button.classList.remove("aplayer-pause"), this.template.button.classList.add("aplayer-play"), this.template.button.innerHTML = "", setTimeout(function() { - e3.template.button.innerHTML = o.default.play; - }, 100), this.template.skipPlayButton.innerHTML = o.default.play), this.container.classList.remove("aplayer-loading"), this.timer.disable("loading"); - } }, { key: "pause", value: function() { - this.setUIPaused(), this.audio.pause(); - } }, { key: "switchVolumeIcon", value: function() { - this.volume() >= 0.95 ? this.template.volumeButton.innerHTML = o.default.volumeUp : this.volume() > 0 ? this.template.volumeButton.innerHTML = o.default.volumeDown : this.template.volumeButton.innerHTML = o.default.volumeOff; - } }, { key: "volume", value: function(e3, t2) { - return e3 = parseFloat(e3), isNaN(e3) || (e3 = Math.max(e3, 0), e3 = Math.min(e3, 1), this.bar.set("volume", e3, "height"), t2 || this.storage.set("volume", e3), this.audio.volume = e3, this.audio.muted && (this.audio.muted = false), this.switchVolumeIcon()), this.audio.muted ? 0 : this.audio.volume; - } }, { key: "on", value: function(e3, t2) { - this.events.on(e3, t2); - } }, { key: "toggle", value: function() { - this.template.button.classList.contains("aplayer-play") ? this.play() : this.template.button.classList.contains("aplayer-pause") && this.pause(); - } }, { key: "switchAudio", value: function(e3) { - this.list.switch(e3); - } }, { key: "addAudio", value: function(e3) { - this.list.add(e3); - } }, { key: "removeAudio", value: function(e3) { - this.list.remove(e3); - } }, { key: "destroy", value: function() { - m.splice(m.indexOf(this), 1), this.pause(), this.container.innerHTML = "", this.audio.src = "", this.timer.destroy(), this.events.trigger("destroy"); - } }, { key: "setMode", value: function() { - var e3 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "normal"; - this.mode = e3, "mini" === e3 ? this.container.classList.add("aplayer-narrow") : "normal" === e3 && this.container.classList.remove("aplayer-narrow"); - } }, { key: "notice", value: function(e3) { - var t2 = this, n2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2e3, i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0.8; - this.template.notice.innerHTML = e3, this.template.notice.style.opacity = i2, this.noticeTime && clearTimeout(this.noticeTime), this.events.trigger("noticeshow", { text: e3 }), n2 && (this.noticeTime = setTimeout(function() { - t2.template.notice.style.opacity = 0, t2.events.trigger("noticehide"); - }, n2)); - } }, { key: "prevIndex", value: function() { - if (!(this.list.audios.length > 1)) - return 0; - if ("list" === this.options.order) - return this.list.index - 1 < 0 ? this.list.audios.length - 1 : this.list.index - 1; - if ("random" === this.options.order) { - var e3 = this.randomOrder.indexOf(this.list.index); - return 0 === e3 ? this.randomOrder[this.randomOrder.length - 1] : this.randomOrder[e3 - 1]; - } - } }, { key: "nextIndex", value: function() { - if (!(this.list.audios.length > 1)) - return 0; - if ("list" === this.options.order) - return (this.list.index + 1) % this.list.audios.length; - if ("random" === this.options.order) { - var e3 = this.randomOrder.indexOf(this.list.index); - return e3 === this.randomOrder.length - 1 ? this.randomOrder[0] : this.randomOrder[e3 + 1]; - } - } }, { key: "skipBack", value: function() { - this.list.switch(this.prevIndex()); - } }, { key: "skipForward", value: function() { - this.list.switch(this.nextIndex()); - } }, { key: "duration", get: function() { - return isNaN(this.audio.duration) ? 0 : this.audio.duration; - } }], [{ key: "version", get: function() { - return "1.10.1"; - } }]), e2; - }(); - t.default = g; - }, , function(e, t, n) { - }, function(e, t, n) { - Object.defineProperty(t, "__esModule", { value: true }), n(40); - var i, a = n(38), r = (i = a) && i.__esModule ? i : { default: i }; - console.log("\n %c APlayer v1.10.1 af84efb %c http://aplayer.js.org \n", "color: #fadfa3; background: #030307; padding:5px 0;", "background: #fadfa3; padding:5px 0;"), t.default = r.default; - }]).default; - }); -})(APlayer_min$2); -var APlayer_minExports = APlayer_min$2.exports; -const APlayer_min = /* @__PURE__ */ getDefaultExportFromCjs(APlayer_minExports); -const APlayer_min$1 = /* @__PURE__ */ _mergeNamespaces({ - __proto__: null, - default: APlayer_min -}, [APlayer_minExports]); -export { - APlayer_min$1 as A -}; diff --git a/templates/assets/dist/assets/Axis-1d2b148d.js b/templates/assets/dist/assets/Axis-1d2b148d.js deleted file mode 100644 index 090d4009..00000000 --- a/templates/assets/dist/assets/Axis-1d2b148d.js +++ /dev/null @@ -1,18583 +0,0 @@ -import { z as env, D as isCanvasEl, E as transformCoordWithViewport, _ as __extends, F as Eventful, B as BoundingRect, g as each$2, G as dist$1, H as REDRAW_BIT, j as indexOf, I as requestAnimationFrame, J as Animator, q as map$1, K as noop, L as Element, M as guid, N as keys, O as retrieve2, P as lum, Q as DARK_MODE_THRESHOLD, s as reduce, p as isString, o as isObject$2, S as isNumber, T as isStringSafe, l as isArray, U as assert, V as createHashMap, k as inherits, h as extend, n as isFunction, W as LRU, X as Path, Y as isArrayLike, $ as lift, a0 as isGradientObject, a1 as applyTransform$1, a2 as PathProxy, a3 as min, a4 as max, a5 as clone, a6 as sub, a7 as scale$1, a8 as distance, a9 as add, aa as subPixelOptimizeLine$1, ab as quadraticSubdivide, ac as cubicSubdivide, ad as normalize$1, ae as cubicDerivativeAt, af as cubicAt, ag as quadraticDerivativeAt, ah as quadraticAt, ai as Point, aj as Displayable, a as ZRImage, ak as identity, al as mul, f as defaults, R as Rect, am as subPixelOptimize$1, an as Transformable, ao as invert, ap as hasOwn, aq as subPixelOptimizeRect$1, C as CompoundPath, Z as ZRText, ar as trim, r as merge, c as clone$1, m as mixin, as as normalizeCssArray$1, e as encodeHTML, d as curry, at as isTypedArray, i as filter, b as bind, au as setAsPrimitive, av as concatArray, aw as calculateTextPosition, ax as platformApi, A as brushSingle, y as setPlatformAPI, ay as slice, az as parsePercent$1, aA as eqNaN, aB as windingLine, aC as getBoundingRect } from "./graphic-c958e8df.js"; -var Param = function() { - function Param2(target, e2) { - this.target = target; - this.topTarget = e2 && e2.topTarget; - } - return Param2; -}(); -var Draggable = function() { - function Draggable2(handler) { - this.handler = handler; - handler.on("mousedown", this._dragStart, this); - handler.on("mousemove", this._drag, this); - handler.on("mouseup", this._dragEnd, this); - } - Draggable2.prototype._dragStart = function(e2) { - var draggingTarget = e2.target; - while (draggingTarget && !draggingTarget.draggable) { - draggingTarget = draggingTarget.parent || draggingTarget.__hostTarget; - } - if (draggingTarget) { - this._draggingTarget = draggingTarget; - draggingTarget.dragging = true; - this._x = e2.offsetX; - this._y = e2.offsetY; - this.handler.dispatchToElement(new Param(draggingTarget, e2), "dragstart", e2.event); - } - }; - Draggable2.prototype._drag = function(e2) { - var draggingTarget = this._draggingTarget; - if (draggingTarget) { - var x = e2.offsetX; - var y = e2.offsetY; - var dx = x - this._x; - var dy = y - this._y; - this._x = x; - this._y = y; - draggingTarget.drift(dx, dy, e2); - this.handler.dispatchToElement(new Param(draggingTarget, e2), "drag", e2.event); - var dropTarget = this.handler.findHover(x, y, draggingTarget).target; - var lastDropTarget = this._dropTarget; - this._dropTarget = dropTarget; - if (draggingTarget !== dropTarget) { - if (lastDropTarget && dropTarget !== lastDropTarget) { - this.handler.dispatchToElement(new Param(lastDropTarget, e2), "dragleave", e2.event); - } - if (dropTarget && dropTarget !== lastDropTarget) { - this.handler.dispatchToElement(new Param(dropTarget, e2), "dragenter", e2.event); - } - } - } - }; - Draggable2.prototype._dragEnd = function(e2) { - var draggingTarget = this._draggingTarget; - if (draggingTarget) { - draggingTarget.dragging = false; - } - this.handler.dispatchToElement(new Param(draggingTarget, e2), "dragend", e2.event); - if (this._dropTarget) { - this.handler.dispatchToElement(new Param(this._dropTarget, e2), "drop", e2.event); - } - this._draggingTarget = null; - this._dropTarget = null; - }; - return Draggable2; -}(); -const Draggable$1 = Draggable; -var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/; -var _calcOut = []; -var firefoxNotSupportOffsetXY = env.browser.firefox && +env.browser.version.split(".")[0] < 39; -function clientToLocal(el, e2, out2, calculate) { - out2 = out2 || {}; - if (calculate) { - calculateZrXY(el, e2, out2); - } else if (firefoxNotSupportOffsetXY && e2.layerX != null && e2.layerX !== e2.offsetX) { - out2.zrX = e2.layerX; - out2.zrY = e2.layerY; - } else if (e2.offsetX != null) { - out2.zrX = e2.offsetX; - out2.zrY = e2.offsetY; - } else { - calculateZrXY(el, e2, out2); - } - return out2; -} -function calculateZrXY(el, e2, out2) { - if (env.domSupported && el.getBoundingClientRect) { - var ex = e2.clientX; - var ey = e2.clientY; - if (isCanvasEl(el)) { - var box2 = el.getBoundingClientRect(); - out2.zrX = ex - box2.left; - out2.zrY = ey - box2.top; - return; - } else { - if (transformCoordWithViewport(_calcOut, el, ex, ey)) { - out2.zrX = _calcOut[0]; - out2.zrY = _calcOut[1]; - return; - } - } - } - out2.zrX = out2.zrY = 0; -} -function getNativeEvent(e2) { - return e2 || window.event; -} -function normalizeEvent(el, e2, calculate) { - e2 = getNativeEvent(e2); - if (e2.zrX != null) { - return e2; - } - var eventType = e2.type; - var isTouch = eventType && eventType.indexOf("touch") >= 0; - if (!isTouch) { - clientToLocal(el, e2, e2, calculate); - var wheelDelta = getWheelDeltaMayPolyfill(e2); - e2.zrDelta = wheelDelta ? wheelDelta / 120 : -(e2.detail || 0) / 3; - } else { - var touch = eventType !== "touchend" ? e2.targetTouches[0] : e2.changedTouches[0]; - touch && clientToLocal(el, touch, e2, calculate); - } - var button = e2.button; - if (e2.which == null && button !== void 0 && MOUSE_EVENT_REG.test(e2.type)) { - e2.which = button & 1 ? 1 : button & 2 ? 3 : button & 4 ? 2 : 0; - } - return e2; -} -function getWheelDeltaMayPolyfill(e2) { - var rawWheelDelta = e2.wheelDelta; - if (rawWheelDelta) { - return rawWheelDelta; - } - var deltaX = e2.deltaX; - var deltaY = e2.deltaY; - if (deltaX == null || deltaY == null) { - return rawWheelDelta; - } - var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX); - var sign = deltaY > 0 ? -1 : deltaY < 0 ? 1 : deltaX > 0 ? -1 : 1; - return 3 * delta * sign; -} -function addEventListener(el, name, handler, opt) { - el.addEventListener(name, handler, opt); -} -function removeEventListener(el, name, handler, opt) { - el.removeEventListener(name, handler, opt); -} -var stop = function(e2) { - e2.preventDefault(); - e2.stopPropagation(); - e2.cancelBubble = true; -}; -function isMiddleOrRightButtonOnMouseUpDown(e2) { - return e2.which === 2 || e2.which === 3; -} -var GestureMgr = function() { - function GestureMgr2() { - this._track = []; - } - GestureMgr2.prototype.recognize = function(event, target, root) { - this._doTrack(event, target, root); - return this._recognize(event); - }; - GestureMgr2.prototype.clear = function() { - this._track.length = 0; - return this; - }; - GestureMgr2.prototype._doTrack = function(event, target, root) { - var touches = event.touches; - if (!touches) { - return; - } - var trackItem = { - points: [], - touches: [], - target, - event - }; - for (var i = 0, len = touches.length; i < len; i++) { - var touch = touches[i]; - var pos = clientToLocal(root, touch, {}); - trackItem.points.push([pos.zrX, pos.zrY]); - trackItem.touches.push(touch); - } - this._track.push(trackItem); - }; - GestureMgr2.prototype._recognize = function(event) { - for (var eventName in recognizers) { - if (recognizers.hasOwnProperty(eventName)) { - var gestureInfo = recognizers[eventName](this._track, event); - if (gestureInfo) { - return gestureInfo; - } - } - } - }; - return GestureMgr2; -}(); -function dist(pointPair) { - var dx = pointPair[1][0] - pointPair[0][0]; - var dy = pointPair[1][1] - pointPair[0][1]; - return Math.sqrt(dx * dx + dy * dy); -} -function center(pointPair) { - return [ - (pointPair[0][0] + pointPair[1][0]) / 2, - (pointPair[0][1] + pointPair[1][1]) / 2 - ]; -} -var recognizers = { - pinch: function(tracks, event) { - var trackLen = tracks.length; - if (!trackLen) { - return; - } - var pinchEnd = (tracks[trackLen - 1] || {}).points; - var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd; - if (pinchPre && pinchPre.length > 1 && pinchEnd && pinchEnd.length > 1) { - var pinchScale = dist(pinchEnd) / dist(pinchPre); - !isFinite(pinchScale) && (pinchScale = 1); - event.pinchScale = pinchScale; - var pinchCenter = center(pinchEnd); - event.pinchX = pinchCenter[0]; - event.pinchY = pinchCenter[1]; - return { - type: "pinch", - target: tracks[0].target, - event - }; - } - } -}; -var SILENT = "silent"; -function makeEventPacket(eveType, targetInfo, event) { - return { - type: eveType, - event, - target: targetInfo.target, - topTarget: targetInfo.topTarget, - cancelBubble: false, - offsetX: event.zrX, - offsetY: event.zrY, - gestureEvent: event.gestureEvent, - pinchX: event.pinchX, - pinchY: event.pinchY, - pinchScale: event.pinchScale, - wheelDelta: event.zrDelta, - zrByTouch: event.zrByTouch, - which: event.which, - stop: stopEvent - }; -} -function stopEvent() { - stop(this.event); -} -var EmptyProxy = function(_super) { - __extends(EmptyProxy2, _super); - function EmptyProxy2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.handler = null; - return _this; - } - EmptyProxy2.prototype.dispose = function() { - }; - EmptyProxy2.prototype.setCursor = function() { - }; - return EmptyProxy2; -}(Eventful); -var HoveredResult = function() { - function HoveredResult2(x, y) { - this.x = x; - this.y = y; - } - return HoveredResult2; -}(); -var handlerNames = [ - "click", - "dblclick", - "mousewheel", - "mouseout", - "mouseup", - "mousedown", - "mousemove", - "contextmenu" -]; -var tmpRect = new BoundingRect(0, 0, 0, 0); -var Handler = function(_super) { - __extends(Handler2, _super); - function Handler2(storage, painter, proxy, painterRoot, pointerSize) { - var _this = _super.call(this) || this; - _this._hovered = new HoveredResult(0, 0); - _this.storage = storage; - _this.painter = painter; - _this.painterRoot = painterRoot; - _this._pointerSize = pointerSize; - proxy = proxy || new EmptyProxy(); - _this.proxy = null; - _this.setHandlerProxy(proxy); - _this._draggingMgr = new Draggable$1(_this); - return _this; - } - Handler2.prototype.setHandlerProxy = function(proxy) { - if (this.proxy) { - this.proxy.dispose(); - } - if (proxy) { - each$2(handlerNames, function(name) { - proxy.on && proxy.on(name, this[name], this); - }, this); - proxy.handler = this; - } - this.proxy = proxy; - }; - Handler2.prototype.mousemove = function(event) { - var x = event.zrX; - var y = event.zrY; - var isOutside = isOutsideBoundary(this, x, y); - var lastHovered = this._hovered; - var lastHoveredTarget = lastHovered.target; - if (lastHoveredTarget && !lastHoveredTarget.__zr) { - lastHovered = this.findHover(lastHovered.x, lastHovered.y); - lastHoveredTarget = lastHovered.target; - } - var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y); - var hoveredTarget = hovered.target; - var proxy = this.proxy; - proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : "default"); - if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) { - this.dispatchToElement(lastHovered, "mouseout", event); - } - this.dispatchToElement(hovered, "mousemove", event); - if (hoveredTarget && hoveredTarget !== lastHoveredTarget) { - this.dispatchToElement(hovered, "mouseover", event); - } - }; - Handler2.prototype.mouseout = function(event) { - var eventControl = event.zrEventControl; - if (eventControl !== "only_globalout") { - this.dispatchToElement(this._hovered, "mouseout", event); - } - if (eventControl !== "no_globalout") { - this.trigger("globalout", { type: "globalout", event }); - } - }; - Handler2.prototype.resize = function() { - this._hovered = new HoveredResult(0, 0); - }; - Handler2.prototype.dispatch = function(eventName, eventArgs) { - var handler = this[eventName]; - handler && handler.call(this, eventArgs); - }; - Handler2.prototype.dispose = function() { - this.proxy.dispose(); - this.storage = null; - this.proxy = null; - this.painter = null; - }; - Handler2.prototype.setCursorStyle = function(cursorStyle) { - var proxy = this.proxy; - proxy.setCursor && proxy.setCursor(cursorStyle); - }; - Handler2.prototype.dispatchToElement = function(targetInfo, eventName, event) { - targetInfo = targetInfo || {}; - var el = targetInfo.target; - if (el && el.silent) { - return; - } - var eventKey = "on" + eventName; - var eventPacket = makeEventPacket(eventName, targetInfo, event); - while (el) { - el[eventKey] && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket)); - el.trigger(eventName, eventPacket); - el = el.__hostTarget ? el.__hostTarget : el.parent; - if (eventPacket.cancelBubble) { - break; - } - } - if (!eventPacket.cancelBubble) { - this.trigger(eventName, eventPacket); - if (this.painter && this.painter.eachOtherLayer) { - this.painter.eachOtherLayer(function(layer) { - if (typeof layer[eventKey] === "function") { - layer[eventKey].call(layer, eventPacket); - } - if (layer.trigger) { - layer.trigger(eventName, eventPacket); - } - }); - } - } - }; - Handler2.prototype.findHover = function(x, y, exclude) { - var list = this.storage.getDisplayList(); - var out2 = new HoveredResult(x, y); - setHoverTarget(list, out2, x, y, exclude); - if (this._pointerSize && !out2.target) { - var candidates = []; - var pointerSize = this._pointerSize; - var targetSizeHalf = pointerSize / 2; - var pointerRect = new BoundingRect(x - targetSizeHalf, y - targetSizeHalf, pointerSize, pointerSize); - for (var i = list.length - 1; i >= 0; i--) { - var el = list[i]; - if (el !== exclude && !el.ignore && !el.ignoreCoarsePointer && (!el.parent || !el.parent.ignoreCoarsePointer)) { - tmpRect.copy(el.getBoundingRect()); - if (el.transform) { - tmpRect.applyTransform(el.transform); - } - if (tmpRect.intersect(pointerRect)) { - candidates.push(el); - } - } - } - if (candidates.length) { - var rStep = 4; - var thetaStep = Math.PI / 12; - var PI22 = Math.PI * 2; - for (var r = 0; r < targetSizeHalf; r += rStep) { - for (var theta = 0; theta < PI22; theta += thetaStep) { - var x1 = x + r * Math.cos(theta); - var y1 = y + r * Math.sin(theta); - setHoverTarget(candidates, out2, x1, y1, exclude); - if (out2.target) { - return out2; - } - } - } - } - } - return out2; - }; - Handler2.prototype.processGesture = function(event, stage) { - if (!this._gestureMgr) { - this._gestureMgr = new GestureMgr(); - } - var gestureMgr = this._gestureMgr; - stage === "start" && gestureMgr.clear(); - var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom); - stage === "end" && gestureMgr.clear(); - if (gestureInfo) { - var type = gestureInfo.type; - event.gestureEvent = type; - var res = new HoveredResult(); - res.target = gestureInfo.target; - this.dispatchToElement(res, type, gestureInfo.event); - } - }; - return Handler2; -}(Eventful); -each$2(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(name) { - Handler.prototype[name] = function(event) { - var x = event.zrX; - var y = event.zrY; - var isOutside = isOutsideBoundary(this, x, y); - var hovered; - var hoveredTarget; - if (name !== "mouseup" || !isOutside) { - hovered = this.findHover(x, y); - hoveredTarget = hovered.target; - } - if (name === "mousedown") { - this._downEl = hoveredTarget; - this._downPoint = [event.zrX, event.zrY]; - this._upEl = hoveredTarget; - } else if (name === "mouseup") { - this._upEl = hoveredTarget; - } else if (name === "click") { - if (this._downEl !== this._upEl || !this._downPoint || dist$1(this._downPoint, [event.zrX, event.zrY]) > 4) { - return; - } - this._downPoint = null; - } - this.dispatchToElement(hovered, name, event); - }; -}); -function isHover(displayable, x, y) { - if (displayable[displayable.rectHover ? "rectContain" : "contain"](x, y)) { - var el = displayable; - var isSilent = void 0; - var ignoreClip = false; - while (el) { - if (el.ignoreClip) { - ignoreClip = true; - } - if (!ignoreClip) { - var clipPath = el.getClipPath(); - if (clipPath && !clipPath.contain(x, y)) { - return false; - } - if (el.silent) { - isSilent = true; - } - } - var hostEl = el.__hostTarget; - el = hostEl ? hostEl : el.parent; - } - return isSilent ? SILENT : true; - } - return false; -} -function setHoverTarget(list, out2, x, y, exclude) { - for (var i = list.length - 1; i >= 0; i--) { - var el = list[i]; - var hoverCheckResult = void 0; - if (el !== exclude && !el.ignore && (hoverCheckResult = isHover(el, x, y))) { - !out2.topTarget && (out2.topTarget = el); - if (hoverCheckResult !== SILENT) { - out2.target = el; - break; - } - } - } -} -function isOutsideBoundary(handlerInstance, x, y) { - var painter = handlerInstance.painter; - return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight(); -} -const Handler$1 = Handler; -var DEFAULT_MIN_MERGE = 32; -var DEFAULT_MIN_GALLOPING = 7; -function minRunLength(n) { - var r = 0; - while (n >= DEFAULT_MIN_MERGE) { - r |= n & 1; - n >>= 1; - } - return n + r; -} -function makeAscendingRun(array, lo, hi, compare2) { - var runHi = lo + 1; - if (runHi === hi) { - return 1; - } - if (compare2(array[runHi++], array[lo]) < 0) { - while (runHi < hi && compare2(array[runHi], array[runHi - 1]) < 0) { - runHi++; - } - reverseRun(array, lo, runHi); - } else { - while (runHi < hi && compare2(array[runHi], array[runHi - 1]) >= 0) { - runHi++; - } - } - return runHi - lo; -} -function reverseRun(array, lo, hi) { - hi--; - while (lo < hi) { - var t = array[lo]; - array[lo++] = array[hi]; - array[hi--] = t; - } -} -function binaryInsertionSort(array, lo, hi, start, compare2) { - if (start === lo) { - start++; - } - for (; start < hi; start++) { - var pivot = array[start]; - var left = lo; - var right = start; - var mid; - while (left < right) { - mid = left + right >>> 1; - if (compare2(pivot, array[mid]) < 0) { - right = mid; - } else { - left = mid + 1; - } - } - var n = start - left; - switch (n) { - case 3: - array[left + 3] = array[left + 2]; - case 2: - array[left + 2] = array[left + 1]; - case 1: - array[left + 1] = array[left]; - break; - default: - while (n > 0) { - array[left + n] = array[left + n - 1]; - n--; - } - } - array[left] = pivot; - } -} -function gallopLeft(value, array, start, length, hint, compare2) { - var lastOffset = 0; - var maxOffset = 0; - var offset = 1; - if (compare2(value, array[start + hint]) > 0) { - maxOffset = length - hint; - while (offset < maxOffset && compare2(value, array[start + hint + offset]) > 0) { - lastOffset = offset; - offset = (offset << 1) + 1; - if (offset <= 0) { - offset = maxOffset; - } - } - if (offset > maxOffset) { - offset = maxOffset; - } - lastOffset += hint; - offset += hint; - } else { - maxOffset = hint + 1; - while (offset < maxOffset && compare2(value, array[start + hint - offset]) <= 0) { - lastOffset = offset; - offset = (offset << 1) + 1; - if (offset <= 0) { - offset = maxOffset; - } - } - if (offset > maxOffset) { - offset = maxOffset; - } - var tmp = lastOffset; - lastOffset = hint - offset; - offset = hint - tmp; - } - lastOffset++; - while (lastOffset < offset) { - var m2 = lastOffset + (offset - lastOffset >>> 1); - if (compare2(value, array[start + m2]) > 0) { - lastOffset = m2 + 1; - } else { - offset = m2; - } - } - return offset; -} -function gallopRight(value, array, start, length, hint, compare2) { - var lastOffset = 0; - var maxOffset = 0; - var offset = 1; - if (compare2(value, array[start + hint]) < 0) { - maxOffset = hint + 1; - while (offset < maxOffset && compare2(value, array[start + hint - offset]) < 0) { - lastOffset = offset; - offset = (offset << 1) + 1; - if (offset <= 0) { - offset = maxOffset; - } - } - if (offset > maxOffset) { - offset = maxOffset; - } - var tmp = lastOffset; - lastOffset = hint - offset; - offset = hint - tmp; - } else { - maxOffset = length - hint; - while (offset < maxOffset && compare2(value, array[start + hint + offset]) >= 0) { - lastOffset = offset; - offset = (offset << 1) + 1; - if (offset <= 0) { - offset = maxOffset; - } - } - if (offset > maxOffset) { - offset = maxOffset; - } - lastOffset += hint; - offset += hint; - } - lastOffset++; - while (lastOffset < offset) { - var m2 = lastOffset + (offset - lastOffset >>> 1); - if (compare2(value, array[start + m2]) < 0) { - offset = m2; - } else { - lastOffset = m2 + 1; - } - } - return offset; -} -function TimSort(array, compare2) { - var minGallop = DEFAULT_MIN_GALLOPING; - var runStart; - var runLength; - var stackSize = 0; - array.length; - var tmp = []; - runStart = []; - runLength = []; - function pushRun(_runStart, _runLength) { - runStart[stackSize] = _runStart; - runLength[stackSize] = _runLength; - stackSize += 1; - } - function mergeRuns() { - while (stackSize > 1) { - var n = stackSize - 2; - if (n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1] || n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1]) { - if (runLength[n - 1] < runLength[n + 1]) { - n--; - } - } else if (runLength[n] > runLength[n + 1]) { - break; - } - mergeAt(n); - } - } - function forceMergeRuns() { - while (stackSize > 1) { - var n = stackSize - 2; - if (n > 0 && runLength[n - 1] < runLength[n + 1]) { - n--; - } - mergeAt(n); - } - } - function mergeAt(i) { - var start1 = runStart[i]; - var length1 = runLength[i]; - var start2 = runStart[i + 1]; - var length2 = runLength[i + 1]; - runLength[i] = length1 + length2; - if (i === stackSize - 3) { - runStart[i + 1] = runStart[i + 2]; - runLength[i + 1] = runLength[i + 2]; - } - stackSize--; - var k = gallopRight(array[start2], array, start1, length1, 0, compare2); - start1 += k; - length1 -= k; - if (length1 === 0) { - return; - } - length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare2); - if (length2 === 0) { - return; - } - if (length1 <= length2) { - mergeLow(start1, length1, start2, length2); - } else { - mergeHigh(start1, length1, start2, length2); - } - } - function mergeLow(start1, length1, start2, length2) { - var i = 0; - for (i = 0; i < length1; i++) { - tmp[i] = array[start1 + i]; - } - var cursor1 = 0; - var cursor2 = start2; - var dest = start1; - array[dest++] = array[cursor2++]; - if (--length2 === 0) { - for (i = 0; i < length1; i++) { - array[dest + i] = tmp[cursor1 + i]; - } - return; - } - if (length1 === 1) { - for (i = 0; i < length2; i++) { - array[dest + i] = array[cursor2 + i]; - } - array[dest + length2] = tmp[cursor1]; - return; - } - var _minGallop = minGallop; - var count1; - var count2; - var exit; - while (1) { - count1 = 0; - count2 = 0; - exit = false; - do { - if (compare2(array[cursor2], tmp[cursor1]) < 0) { - array[dest++] = array[cursor2++]; - count2++; - count1 = 0; - if (--length2 === 0) { - exit = true; - break; - } - } else { - array[dest++] = tmp[cursor1++]; - count1++; - count2 = 0; - if (--length1 === 1) { - exit = true; - break; - } - } - } while ((count1 | count2) < _minGallop); - if (exit) { - break; - } - do { - count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare2); - if (count1 !== 0) { - for (i = 0; i < count1; i++) { - array[dest + i] = tmp[cursor1 + i]; - } - dest += count1; - cursor1 += count1; - length1 -= count1; - if (length1 <= 1) { - exit = true; - break; - } - } - array[dest++] = array[cursor2++]; - if (--length2 === 0) { - exit = true; - break; - } - count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare2); - if (count2 !== 0) { - for (i = 0; i < count2; i++) { - array[dest + i] = array[cursor2 + i]; - } - dest += count2; - cursor2 += count2; - length2 -= count2; - if (length2 === 0) { - exit = true; - break; - } - } - array[dest++] = tmp[cursor1++]; - if (--length1 === 1) { - exit = true; - break; - } - _minGallop--; - } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING); - if (exit) { - break; - } - if (_minGallop < 0) { - _minGallop = 0; - } - _minGallop += 2; - } - minGallop = _minGallop; - minGallop < 1 && (minGallop = 1); - if (length1 === 1) { - for (i = 0; i < length2; i++) { - array[dest + i] = array[cursor2 + i]; - } - array[dest + length2] = tmp[cursor1]; - } else if (length1 === 0) { - throw new Error(); - } else { - for (i = 0; i < length1; i++) { - array[dest + i] = tmp[cursor1 + i]; - } - } - } - function mergeHigh(start1, length1, start2, length2) { - var i = 0; - for (i = 0; i < length2; i++) { - tmp[i] = array[start2 + i]; - } - var cursor1 = start1 + length1 - 1; - var cursor2 = length2 - 1; - var dest = start2 + length2 - 1; - var customCursor = 0; - var customDest = 0; - array[dest--] = array[cursor1--]; - if (--length1 === 0) { - customCursor = dest - (length2 - 1); - for (i = 0; i < length2; i++) { - array[customCursor + i] = tmp[i]; - } - return; - } - if (length2 === 1) { - dest -= length1; - cursor1 -= length1; - customDest = dest + 1; - customCursor = cursor1 + 1; - for (i = length1 - 1; i >= 0; i--) { - array[customDest + i] = array[customCursor + i]; - } - array[dest] = tmp[cursor2]; - return; - } - var _minGallop = minGallop; - while (true) { - var count1 = 0; - var count2 = 0; - var exit = false; - do { - if (compare2(tmp[cursor2], array[cursor1]) < 0) { - array[dest--] = array[cursor1--]; - count1++; - count2 = 0; - if (--length1 === 0) { - exit = true; - break; - } - } else { - array[dest--] = tmp[cursor2--]; - count2++; - count1 = 0; - if (--length2 === 1) { - exit = true; - break; - } - } - } while ((count1 | count2) < _minGallop); - if (exit) { - break; - } - do { - count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare2); - if (count1 !== 0) { - dest -= count1; - cursor1 -= count1; - length1 -= count1; - customDest = dest + 1; - customCursor = cursor1 + 1; - for (i = count1 - 1; i >= 0; i--) { - array[customDest + i] = array[customCursor + i]; - } - if (length1 === 0) { - exit = true; - break; - } - } - array[dest--] = tmp[cursor2--]; - if (--length2 === 1) { - exit = true; - break; - } - count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare2); - if (count2 !== 0) { - dest -= count2; - cursor2 -= count2; - length2 -= count2; - customDest = dest + 1; - customCursor = cursor2 + 1; - for (i = 0; i < count2; i++) { - array[customDest + i] = tmp[customCursor + i]; - } - if (length2 <= 1) { - exit = true; - break; - } - } - array[dest--] = array[cursor1--]; - if (--length1 === 0) { - exit = true; - break; - } - _minGallop--; - } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING); - if (exit) { - break; - } - if (_minGallop < 0) { - _minGallop = 0; - } - _minGallop += 2; - } - minGallop = _minGallop; - if (minGallop < 1) { - minGallop = 1; - } - if (length2 === 1) { - dest -= length1; - cursor1 -= length1; - customDest = dest + 1; - customCursor = cursor1 + 1; - for (i = length1 - 1; i >= 0; i--) { - array[customDest + i] = array[customCursor + i]; - } - array[dest] = tmp[cursor2]; - } else if (length2 === 0) { - throw new Error(); - } else { - customCursor = dest - (length2 - 1); - for (i = 0; i < length2; i++) { - array[customCursor + i] = tmp[i]; - } - } - } - return { - mergeRuns, - forceMergeRuns, - pushRun - }; -} -function sort(array, compare2, lo, hi) { - if (!lo) { - lo = 0; - } - if (!hi) { - hi = array.length; - } - var remaining = hi - lo; - if (remaining < 2) { - return; - } - var runLength = 0; - if (remaining < DEFAULT_MIN_MERGE) { - runLength = makeAscendingRun(array, lo, hi, compare2); - binaryInsertionSort(array, lo, hi, lo + runLength, compare2); - return; - } - var ts = TimSort(array, compare2); - var minRun = minRunLength(remaining); - do { - runLength = makeAscendingRun(array, lo, hi, compare2); - if (runLength < minRun) { - var force = remaining; - if (force > minRun) { - force = minRun; - } - binaryInsertionSort(array, lo, lo + force, lo + runLength, compare2); - runLength = force; - } - ts.pushRun(lo, runLength); - ts.mergeRuns(); - remaining -= runLength; - lo += runLength; - } while (remaining !== 0); - ts.forceMergeRuns(); -} -var invalidZErrorLogged = false; -function logInvalidZError() { - if (invalidZErrorLogged) { - return; - } - invalidZErrorLogged = true; - console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"); -} -function shapeCompareFunc(a, b) { - if (a.zlevel === b.zlevel) { - if (a.z === b.z) { - return a.z2 - b.z2; - } - return a.z - b.z; - } - return a.zlevel - b.zlevel; -} -var Storage = function() { - function Storage2() { - this._roots = []; - this._displayList = []; - this._displayListLen = 0; - this.displayableSortFunc = shapeCompareFunc; - } - Storage2.prototype.traverse = function(cb, context) { - for (var i = 0; i < this._roots.length; i++) { - this._roots[i].traverse(cb, context); - } - }; - Storage2.prototype.getDisplayList = function(update, includeIgnore) { - includeIgnore = includeIgnore || false; - var displayList = this._displayList; - if (update || !displayList.length) { - this.updateDisplayList(includeIgnore); - } - return displayList; - }; - Storage2.prototype.updateDisplayList = function(includeIgnore) { - this._displayListLen = 0; - var roots = this._roots; - var displayList = this._displayList; - for (var i = 0, len = roots.length; i < len; i++) { - this._updateAndAddDisplayable(roots[i], null, includeIgnore); - } - displayList.length = this._displayListLen; - sort(displayList, shapeCompareFunc); - }; - Storage2.prototype._updateAndAddDisplayable = function(el, clipPaths, includeIgnore) { - if (el.ignore && !includeIgnore) { - return; - } - el.beforeUpdate(); - el.update(); - el.afterUpdate(); - var userSetClipPath = el.getClipPath(); - if (el.ignoreClip) { - clipPaths = null; - } else if (userSetClipPath) { - if (clipPaths) { - clipPaths = clipPaths.slice(); - } else { - clipPaths = []; - } - var currentClipPath = userSetClipPath; - var parentClipPath = el; - while (currentClipPath) { - currentClipPath.parent = parentClipPath; - currentClipPath.updateTransform(); - clipPaths.push(currentClipPath); - parentClipPath = currentClipPath; - currentClipPath = currentClipPath.getClipPath(); - } - } - if (el.childrenRef) { - var children = el.childrenRef(); - for (var i = 0; i < children.length; i++) { - var child = children[i]; - if (el.__dirty) { - child.__dirty |= REDRAW_BIT; - } - this._updateAndAddDisplayable(child, clipPaths, includeIgnore); - } - el.__dirty = 0; - } else { - var disp = el; - if (clipPaths && clipPaths.length) { - disp.__clipPaths = clipPaths; - } else if (disp.__clipPaths && disp.__clipPaths.length > 0) { - disp.__clipPaths = []; - } - if (isNaN(disp.z)) { - logInvalidZError(); - disp.z = 0; - } - if (isNaN(disp.z2)) { - logInvalidZError(); - disp.z2 = 0; - } - if (isNaN(disp.zlevel)) { - logInvalidZError(); - disp.zlevel = 0; - } - this._displayList[this._displayListLen++] = disp; - } - var decalEl = el.getDecalElement && el.getDecalElement(); - if (decalEl) { - this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore); - } - var textGuide = el.getTextGuideLine(); - if (textGuide) { - this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore); - } - var textEl = el.getTextContent(); - if (textEl) { - this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore); - } - }; - Storage2.prototype.addRoot = function(el) { - if (el.__zr && el.__zr.storage === this) { - return; - } - this._roots.push(el); - }; - Storage2.prototype.delRoot = function(el) { - if (el instanceof Array) { - for (var i = 0, l = el.length; i < l; i++) { - this.delRoot(el[i]); - } - return; - } - var idx = indexOf(this._roots, el); - if (idx >= 0) { - this._roots.splice(idx, 1); - } - }; - Storage2.prototype.delAllRoots = function() { - this._roots = []; - this._displayList = []; - this._displayListLen = 0; - return; - }; - Storage2.prototype.getRoots = function() { - return this._roots; - }; - Storage2.prototype.dispose = function() { - this._displayList = null; - this._roots = null; - }; - return Storage2; -}(); -const Storage$1 = Storage; -function getTime() { - return (/* @__PURE__ */ new Date()).getTime(); -} -var Animation = function(_super) { - __extends(Animation2, _super); - function Animation2(opts) { - var _this = _super.call(this) || this; - _this._running = false; - _this._time = 0; - _this._pausedTime = 0; - _this._pauseStart = 0; - _this._paused = false; - opts = opts || {}; - _this.stage = opts.stage || {}; - return _this; - } - Animation2.prototype.addClip = function(clip) { - if (clip.animation) { - this.removeClip(clip); - } - if (!this._head) { - this._head = this._tail = clip; - } else { - this._tail.next = clip; - clip.prev = this._tail; - clip.next = null; - this._tail = clip; - } - clip.animation = this; - }; - Animation2.prototype.addAnimator = function(animator) { - animator.animation = this; - var clip = animator.getClip(); - if (clip) { - this.addClip(clip); - } - }; - Animation2.prototype.removeClip = function(clip) { - if (!clip.animation) { - return; - } - var prev = clip.prev; - var next = clip.next; - if (prev) { - prev.next = next; - } else { - this._head = next; - } - if (next) { - next.prev = prev; - } else { - this._tail = prev; - } - clip.next = clip.prev = clip.animation = null; - }; - Animation2.prototype.removeAnimator = function(animator) { - var clip = animator.getClip(); - if (clip) { - this.removeClip(clip); - } - animator.animation = null; - }; - Animation2.prototype.update = function(notTriggerFrameAndStageUpdate) { - var time = getTime() - this._pausedTime; - var delta = time - this._time; - var clip = this._head; - while (clip) { - var nextClip = clip.next; - var finished = clip.step(time, delta); - if (finished) { - clip.ondestroy(); - this.removeClip(clip); - clip = nextClip; - } else { - clip = nextClip; - } - } - this._time = time; - if (!notTriggerFrameAndStageUpdate) { - this.trigger("frame", delta); - this.stage.update && this.stage.update(); - } - }; - Animation2.prototype._startLoop = function() { - var self = this; - this._running = true; - function step() { - if (self._running) { - requestAnimationFrame(step); - !self._paused && self.update(); - } - } - requestAnimationFrame(step); - }; - Animation2.prototype.start = function() { - if (this._running) { - return; - } - this._time = getTime(); - this._pausedTime = 0; - this._startLoop(); - }; - Animation2.prototype.stop = function() { - this._running = false; - }; - Animation2.prototype.pause = function() { - if (!this._paused) { - this._pauseStart = getTime(); - this._paused = true; - } - }; - Animation2.prototype.resume = function() { - if (this._paused) { - this._pausedTime += getTime() - this._pauseStart; - this._paused = false; - } - }; - Animation2.prototype.clear = function() { - var clip = this._head; - while (clip) { - var nextClip = clip.next; - clip.prev = clip.next = clip.animation = null; - clip = nextClip; - } - this._head = this._tail = null; - }; - Animation2.prototype.isFinished = function() { - return this._head == null; - }; - Animation2.prototype.animate = function(target, options) { - options = options || {}; - this.start(); - var animator = new Animator(target, options.loop); - this.addAnimator(animator); - return animator; - }; - return Animation2; -}(Eventful); -const Animation$1 = Animation; -var TOUCH_CLICK_DELAY = 300; -var globalEventSupported = env.domSupported; -var localNativeListenerNames = function() { - var mouseHandlerNames = [ - "click", - "dblclick", - "mousewheel", - "wheel", - "mouseout", - "mouseup", - "mousedown", - "mousemove", - "contextmenu" - ]; - var touchHandlerNames = [ - "touchstart", - "touchend", - "touchmove" - ]; - var pointerEventNameMap = { - pointerdown: 1, - pointerup: 1, - pointermove: 1, - pointerout: 1 - }; - var pointerHandlerNames = map$1(mouseHandlerNames, function(name) { - var nm = name.replace("mouse", "pointer"); - return pointerEventNameMap.hasOwnProperty(nm) ? nm : name; - }); - return { - mouse: mouseHandlerNames, - touch: touchHandlerNames, - pointer: pointerHandlerNames - }; -}(); -var globalNativeListenerNames = { - mouse: ["mousemove", "mouseup"], - pointer: ["pointermove", "pointerup"] -}; -var wheelEventSupported = false; -function isPointerFromTouch(event) { - var pointerType = event.pointerType; - return pointerType === "pen" || pointerType === "touch"; -} -function setTouchTimer(scope) { - scope.touching = true; - if (scope.touchTimer != null) { - clearTimeout(scope.touchTimer); - scope.touchTimer = null; - } - scope.touchTimer = setTimeout(function() { - scope.touching = false; - scope.touchTimer = null; - }, 700); -} -function markTouch(event) { - event && (event.zrByTouch = true); -} -function normalizeGlobalEvent(instance, event) { - return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true); -} -function isLocalEl(instance, el) { - var elTmp = el; - var isLocal = false; - while (elTmp && elTmp.nodeType !== 9 && !(isLocal = elTmp.domBelongToZr || elTmp !== el && elTmp === instance.painterRoot)) { - elTmp = elTmp.parentNode; - } - return isLocal; -} -var FakeGlobalEvent = function() { - function FakeGlobalEvent2(instance, event) { - this.stopPropagation = noop; - this.stopImmediatePropagation = noop; - this.preventDefault = noop; - this.type = event.type; - this.target = this.currentTarget = instance.dom; - this.pointerType = event.pointerType; - this.clientX = event.clientX; - this.clientY = event.clientY; - } - return FakeGlobalEvent2; -}(); -var localDOMHandlers = { - mousedown: function(event) { - event = normalizeEvent(this.dom, event); - this.__mayPointerCapture = [event.zrX, event.zrY]; - this.trigger("mousedown", event); - }, - mousemove: function(event) { - event = normalizeEvent(this.dom, event); - var downPoint = this.__mayPointerCapture; - if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) { - this.__togglePointerCapture(true); - } - this.trigger("mousemove", event); - }, - mouseup: function(event) { - event = normalizeEvent(this.dom, event); - this.__togglePointerCapture(false); - this.trigger("mouseup", event); - }, - mouseout: function(event) { - event = normalizeEvent(this.dom, event); - var element = event.toElement || event.relatedTarget; - if (!isLocalEl(this, element)) { - if (this.__pointerCapturing) { - event.zrEventControl = "no_globalout"; - } - this.trigger("mouseout", event); - } - }, - wheel: function(event) { - wheelEventSupported = true; - event = normalizeEvent(this.dom, event); - this.trigger("mousewheel", event); - }, - mousewheel: function(event) { - if (wheelEventSupported) { - return; - } - event = normalizeEvent(this.dom, event); - this.trigger("mousewheel", event); - }, - touchstart: function(event) { - event = normalizeEvent(this.dom, event); - markTouch(event); - this.__lastTouchMoment = /* @__PURE__ */ new Date(); - this.handler.processGesture(event, "start"); - localDOMHandlers.mousemove.call(this, event); - localDOMHandlers.mousedown.call(this, event); - }, - touchmove: function(event) { - event = normalizeEvent(this.dom, event); - markTouch(event); - this.handler.processGesture(event, "change"); - localDOMHandlers.mousemove.call(this, event); - }, - touchend: function(event) { - event = normalizeEvent(this.dom, event); - markTouch(event); - this.handler.processGesture(event, "end"); - localDOMHandlers.mouseup.call(this, event); - if (+/* @__PURE__ */ new Date() - +this.__lastTouchMoment < TOUCH_CLICK_DELAY) { - localDOMHandlers.click.call(this, event); - } - }, - pointerdown: function(event) { - localDOMHandlers.mousedown.call(this, event); - }, - pointermove: function(event) { - if (!isPointerFromTouch(event)) { - localDOMHandlers.mousemove.call(this, event); - } - }, - pointerup: function(event) { - localDOMHandlers.mouseup.call(this, event); - }, - pointerout: function(event) { - if (!isPointerFromTouch(event)) { - localDOMHandlers.mouseout.call(this, event); - } - } -}; -each$2(["click", "dblclick", "contextmenu"], function(name) { - localDOMHandlers[name] = function(event) { - event = normalizeEvent(this.dom, event); - this.trigger(name, event); - }; -}); -var globalDOMHandlers = { - pointermove: function(event) { - if (!isPointerFromTouch(event)) { - globalDOMHandlers.mousemove.call(this, event); - } - }, - pointerup: function(event) { - globalDOMHandlers.mouseup.call(this, event); - }, - mousemove: function(event) { - this.trigger("mousemove", event); - }, - mouseup: function(event) { - var pointerCaptureReleasing = this.__pointerCapturing; - this.__togglePointerCapture(false); - this.trigger("mouseup", event); - if (pointerCaptureReleasing) { - event.zrEventControl = "only_globalout"; - this.trigger("mouseout", event); - } - } -}; -function mountLocalDOMEventListeners(instance, scope) { - var domHandlers = scope.domHandlers; - if (env.pointerEventsSupported) { - each$2(localNativeListenerNames.pointer, function(nativeEventName) { - mountSingleDOMEventListener(scope, nativeEventName, function(event) { - domHandlers[nativeEventName].call(instance, event); - }); - }); - } else { - if (env.touchEventsSupported) { - each$2(localNativeListenerNames.touch, function(nativeEventName) { - mountSingleDOMEventListener(scope, nativeEventName, function(event) { - domHandlers[nativeEventName].call(instance, event); - setTouchTimer(scope); - }); - }); - } - each$2(localNativeListenerNames.mouse, function(nativeEventName) { - mountSingleDOMEventListener(scope, nativeEventName, function(event) { - event = getNativeEvent(event); - if (!scope.touching) { - domHandlers[nativeEventName].call(instance, event); - } - }); - }); - } -} -function mountGlobalDOMEventListeners(instance, scope) { - if (env.pointerEventsSupported) { - each$2(globalNativeListenerNames.pointer, mount); - } else if (!env.touchEventsSupported) { - each$2(globalNativeListenerNames.mouse, mount); - } - function mount(nativeEventName) { - function nativeEventListener(event) { - event = getNativeEvent(event); - if (!isLocalEl(instance, event.target)) { - event = normalizeGlobalEvent(instance, event); - scope.domHandlers[nativeEventName].call(instance, event); - } - } - mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true }); - } -} -function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) { - scope.mounted[nativeEventName] = listener; - scope.listenerOpts[nativeEventName] = opt; - addEventListener(scope.domTarget, nativeEventName, listener, opt); -} -function unmountDOMEventListeners(scope) { - var mounted = scope.mounted; - for (var nativeEventName in mounted) { - if (mounted.hasOwnProperty(nativeEventName)) { - removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]); - } - } - scope.mounted = {}; -} -var DOMHandlerScope = function() { - function DOMHandlerScope2(domTarget, domHandlers) { - this.mounted = {}; - this.listenerOpts = {}; - this.touching = false; - this.domTarget = domTarget; - this.domHandlers = domHandlers; - } - return DOMHandlerScope2; -}(); -var HandlerDomProxy = function(_super) { - __extends(HandlerDomProxy2, _super); - function HandlerDomProxy2(dom, painterRoot) { - var _this = _super.call(this) || this; - _this.__pointerCapturing = false; - _this.dom = dom; - _this.painterRoot = painterRoot; - _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers); - if (globalEventSupported) { - _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers); - } - mountLocalDOMEventListeners(_this, _this._localHandlerScope); - return _this; - } - HandlerDomProxy2.prototype.dispose = function() { - unmountDOMEventListeners(this._localHandlerScope); - if (globalEventSupported) { - unmountDOMEventListeners(this._globalHandlerScope); - } - }; - HandlerDomProxy2.prototype.setCursor = function(cursorStyle) { - this.dom.style && (this.dom.style.cursor = cursorStyle || "default"); - }; - HandlerDomProxy2.prototype.__togglePointerCapture = function(isPointerCapturing) { - this.__mayPointerCapture = null; - if (globalEventSupported && +this.__pointerCapturing ^ +isPointerCapturing) { - this.__pointerCapturing = isPointerCapturing; - var globalHandlerScope = this._globalHandlerScope; - isPointerCapturing ? mountGlobalDOMEventListeners(this, globalHandlerScope) : unmountDOMEventListeners(globalHandlerScope); - } - }; - return HandlerDomProxy2; -}(Eventful); -const HandlerProxy = HandlerDomProxy; -var Group = function(_super) { - __extends(Group2, _super); - function Group2(opts) { - var _this = _super.call(this) || this; - _this.isGroup = true; - _this._children = []; - _this.attr(opts); - return _this; - } - Group2.prototype.childrenRef = function() { - return this._children; - }; - Group2.prototype.children = function() { - return this._children.slice(); - }; - Group2.prototype.childAt = function(idx) { - return this._children[idx]; - }; - Group2.prototype.childOfName = function(name) { - var children = this._children; - for (var i = 0; i < children.length; i++) { - if (children[i].name === name) { - return children[i]; - } - } - }; - Group2.prototype.childCount = function() { - return this._children.length; - }; - Group2.prototype.add = function(child) { - if (child) { - if (child !== this && child.parent !== this) { - this._children.push(child); - this._doAdd(child); - } - } - return this; - }; - Group2.prototype.addBefore = function(child, nextSibling) { - if (child && child !== this && child.parent !== this && nextSibling && nextSibling.parent === this) { - var children = this._children; - var idx = children.indexOf(nextSibling); - if (idx >= 0) { - children.splice(idx, 0, child); - this._doAdd(child); - } - } - return this; - }; - Group2.prototype.replace = function(oldChild, newChild) { - var idx = indexOf(this._children, oldChild); - if (idx >= 0) { - this.replaceAt(newChild, idx); - } - return this; - }; - Group2.prototype.replaceAt = function(child, index) { - var children = this._children; - var old = children[index]; - if (child && child !== this && child.parent !== this && child !== old) { - children[index] = child; - old.parent = null; - var zr = this.__zr; - if (zr) { - old.removeSelfFromZr(zr); - } - this._doAdd(child); - } - return this; - }; - Group2.prototype._doAdd = function(child) { - if (child.parent) { - child.parent.remove(child); - } - child.parent = this; - var zr = this.__zr; - if (zr && zr !== child.__zr) { - child.addSelfToZr(zr); - } - zr && zr.refresh(); - }; - Group2.prototype.remove = function(child) { - var zr = this.__zr; - var children = this._children; - var idx = indexOf(children, child); - if (idx < 0) { - return this; - } - children.splice(idx, 1); - child.parent = null; - if (zr) { - child.removeSelfFromZr(zr); - } - zr && zr.refresh(); - return this; - }; - Group2.prototype.removeAll = function() { - var children = this._children; - var zr = this.__zr; - for (var i = 0; i < children.length; i++) { - var child = children[i]; - if (zr) { - child.removeSelfFromZr(zr); - } - child.parent = null; - } - children.length = 0; - return this; - }; - Group2.prototype.eachChild = function(cb, context) { - var children = this._children; - for (var i = 0; i < children.length; i++) { - var child = children[i]; - cb.call(context, child, i); - } - return this; - }; - Group2.prototype.traverse = function(cb, context) { - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - var stopped = cb.call(context, child); - if (child.isGroup && !stopped) { - child.traverse(cb, context); - } - } - return this; - }; - Group2.prototype.addSelfToZr = function(zr) { - _super.prototype.addSelfToZr.call(this, zr); - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - child.addSelfToZr(zr); - } - }; - Group2.prototype.removeSelfFromZr = function(zr) { - _super.prototype.removeSelfFromZr.call(this, zr); - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - child.removeSelfFromZr(zr); - } - }; - Group2.prototype.getBoundingRect = function(includeChildren) { - var tmpRect2 = new BoundingRect(0, 0, 0, 0); - var children = includeChildren || this._children; - var tmpMat = []; - var rect = null; - for (var i = 0; i < children.length; i++) { - var child = children[i]; - if (child.ignore || child.invisible) { - continue; - } - var childRect = child.getBoundingRect(); - var transform = child.getLocalTransform(tmpMat); - if (transform) { - BoundingRect.applyTransform(tmpRect2, childRect, transform); - rect = rect || tmpRect2.clone(); - rect.union(tmpRect2); - } else { - rect = rect || childRect.clone(); - rect.union(childRect); - } - } - return rect || tmpRect2; - }; - return Group2; -}(Element); -Group.prototype.type = "group"; -const Group$1 = Group; -/*! -* ZRender, a high performance 2d drawing library. -* -* Copyright (c) 2013, Baidu Inc. -* All rights reserved. -* -* LICENSE -* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt -*/ -var painterCtors = {}; -var instances$1 = {}; -function delInstance(id) { - delete instances$1[id]; -} -function isDarkMode(backgroundColor2) { - if (!backgroundColor2) { - return false; - } - if (typeof backgroundColor2 === "string") { - return lum(backgroundColor2, 1) < DARK_MODE_THRESHOLD; - } else if (backgroundColor2.colorStops) { - var colorStops = backgroundColor2.colorStops; - var totalLum = 0; - var len = colorStops.length; - for (var i = 0; i < len; i++) { - totalLum += lum(colorStops[i].color, 1); - } - totalLum /= len; - return totalLum < DARK_MODE_THRESHOLD; - } - return false; -} -var ZRender = function() { - function ZRender2(id, dom, opts) { - var _this = this; - this._sleepAfterStill = 10; - this._stillFrameAccum = 0; - this._needsRefresh = true; - this._needsRefreshHover = true; - this._darkMode = false; - opts = opts || {}; - this.dom = dom; - this.id = id; - var storage = new Storage$1(); - var rendererType = opts.renderer || "canvas"; - if (!painterCtors[rendererType]) { - rendererType = keys(painterCtors)[0]; - } - opts.useDirtyRect = opts.useDirtyRect == null ? false : opts.useDirtyRect; - var painter = new painterCtors[rendererType](dom, storage, opts, id); - var ssrMode = opts.ssr || painter.ssrOnly; - this.storage = storage; - this.painter = painter; - var handerProxy = !env.node && !env.worker && !ssrMode ? new HandlerProxy(painter.getViewportRoot(), painter.root) : null; - var useCoarsePointer = opts.useCoarsePointer; - var usePointerSize = useCoarsePointer == null || useCoarsePointer === "auto" ? env.touchEventsSupported : !!useCoarsePointer; - var defaultPointerSize = 44; - var pointerSize; - if (usePointerSize) { - pointerSize = retrieve2(opts.pointerSize, defaultPointerSize); - } - this.handler = new Handler$1(storage, painter, handerProxy, painter.root, pointerSize); - this.animation = new Animation$1({ - stage: { - update: ssrMode ? null : function() { - return _this._flush(true); - } - } - }); - if (!ssrMode) { - this.animation.start(); - } - } - ZRender2.prototype.add = function(el) { - if (!el) { - return; - } - this.storage.addRoot(el); - el.addSelfToZr(this); - this.refresh(); - }; - ZRender2.prototype.remove = function(el) { - if (!el) { - return; - } - this.storage.delRoot(el); - el.removeSelfFromZr(this); - this.refresh(); - }; - ZRender2.prototype.configLayer = function(zLevel, config) { - if (this.painter.configLayer) { - this.painter.configLayer(zLevel, config); - } - this.refresh(); - }; - ZRender2.prototype.setBackgroundColor = function(backgroundColor2) { - if (this.painter.setBackgroundColor) { - this.painter.setBackgroundColor(backgroundColor2); - } - this.refresh(); - this._backgroundColor = backgroundColor2; - this._darkMode = isDarkMode(backgroundColor2); - }; - ZRender2.prototype.getBackgroundColor = function() { - return this._backgroundColor; - }; - ZRender2.prototype.setDarkMode = function(darkMode) { - this._darkMode = darkMode; - }; - ZRender2.prototype.isDarkMode = function() { - return this._darkMode; - }; - ZRender2.prototype.refreshImmediately = function(fromInside) { - if (!fromInside) { - this.animation.update(true); - } - this._needsRefresh = false; - this.painter.refresh(); - this._needsRefresh = false; - }; - ZRender2.prototype.refresh = function() { - this._needsRefresh = true; - this.animation.start(); - }; - ZRender2.prototype.flush = function() { - this._flush(false); - }; - ZRender2.prototype._flush = function(fromInside) { - var triggerRendered; - var start = getTime(); - if (this._needsRefresh) { - triggerRendered = true; - this.refreshImmediately(fromInside); - } - if (this._needsRefreshHover) { - triggerRendered = true; - this.refreshHoverImmediately(); - } - var end = getTime(); - if (triggerRendered) { - this._stillFrameAccum = 0; - this.trigger("rendered", { - elapsedTime: end - start - }); - } else if (this._sleepAfterStill > 0) { - this._stillFrameAccum++; - if (this._stillFrameAccum > this._sleepAfterStill) { - this.animation.stop(); - } - } - }; - ZRender2.prototype.setSleepAfterStill = function(stillFramesCount) { - this._sleepAfterStill = stillFramesCount; - }; - ZRender2.prototype.wakeUp = function() { - this.animation.start(); - this._stillFrameAccum = 0; - }; - ZRender2.prototype.refreshHover = function() { - this._needsRefreshHover = true; - }; - ZRender2.prototype.refreshHoverImmediately = function() { - this._needsRefreshHover = false; - if (this.painter.refreshHover && this.painter.getType() === "canvas") { - this.painter.refreshHover(); - } - }; - ZRender2.prototype.resize = function(opts) { - opts = opts || {}; - this.painter.resize(opts.width, opts.height); - this.handler.resize(); - }; - ZRender2.prototype.clearAnimation = function() { - this.animation.clear(); - }; - ZRender2.prototype.getWidth = function() { - return this.painter.getWidth(); - }; - ZRender2.prototype.getHeight = function() { - return this.painter.getHeight(); - }; - ZRender2.prototype.setCursorStyle = function(cursorStyle) { - this.handler.setCursorStyle(cursorStyle); - }; - ZRender2.prototype.findHover = function(x, y) { - return this.handler.findHover(x, y); - }; - ZRender2.prototype.on = function(eventName, eventHandler, context) { - this.handler.on(eventName, eventHandler, context); - return this; - }; - ZRender2.prototype.off = function(eventName, eventHandler) { - this.handler.off(eventName, eventHandler); - }; - ZRender2.prototype.trigger = function(eventName, event) { - this.handler.trigger(eventName, event); - }; - ZRender2.prototype.clear = function() { - var roots = this.storage.getRoots(); - for (var i = 0; i < roots.length; i++) { - if (roots[i] instanceof Group$1) { - roots[i].removeSelfFromZr(this); - } - } - this.storage.delAllRoots(); - this.painter.clear(); - }; - ZRender2.prototype.dispose = function() { - this.animation.stop(); - this.clear(); - this.storage.dispose(); - this.painter.dispose(); - this.handler.dispose(); - this.animation = this.storage = this.painter = this.handler = null; - delInstance(this.id); - }; - return ZRender2; -}(); -function init$1(dom, opts) { - var zr = new ZRender(guid(), dom, opts); - instances$1[zr.id] = zr; - return zr; -} -function dispose$1(zr) { - zr.dispose(); -} -function disposeAll() { - for (var key in instances$1) { - if (instances$1.hasOwnProperty(key)) { - instances$1[key].dispose(); - } - } - instances$1 = {}; -} -function getInstance(id) { - return instances$1[id]; -} -function registerPainter(name, Ctor) { - painterCtors[name] = Ctor; -} -var version$1 = "5.4.3"; -const zrender = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - dispose: dispose$1, - disposeAll, - getInstance, - init: init$1, - registerPainter, - version: version$1 -}, Symbol.toStringTag, { value: "Module" })); -var RADIAN_EPSILON = 1e-4; -var ROUND_SUPPORTED_PRECISION_MAX = 20; -function _trim(str) { - return str.replace(/^\s+|\s+$/g, ""); -} -function linearMap(val, domain, range, clamp2) { - var d0 = domain[0]; - var d1 = domain[1]; - var r0 = range[0]; - var r1 = range[1]; - var subDomain = d1 - d0; - var subRange = r1 - r0; - if (subDomain === 0) { - return subRange === 0 ? r0 : (r0 + r1) / 2; - } - if (clamp2) { - if (subDomain > 0) { - if (val <= d0) { - return r0; - } else if (val >= d1) { - return r1; - } - } else { - if (val >= d0) { - return r0; - } else if (val <= d1) { - return r1; - } - } - } else { - if (val === d0) { - return r0; - } - if (val === d1) { - return r1; - } - } - return (val - d0) / subDomain * subRange + r0; -} -function parsePercent(percent, all) { - switch (percent) { - case "center": - case "middle": - percent = "50%"; - break; - case "left": - case "top": - percent = "0%"; - break; - case "right": - case "bottom": - percent = "100%"; - break; - } - if (isString(percent)) { - if (_trim(percent).match(/%$/)) { - return parseFloat(percent) / 100 * all; - } - return parseFloat(percent); - } - return percent == null ? NaN : +percent; -} -function round(x, precision, returnStr) { - if (precision == null) { - precision = 10; - } - precision = Math.min(Math.max(0, precision), ROUND_SUPPORTED_PRECISION_MAX); - x = (+x).toFixed(precision); - return returnStr ? x : +x; -} -function asc(arr) { - arr.sort(function(a, b) { - return a - b; - }); - return arr; -} -function getPrecision(val) { - val = +val; - if (isNaN(val)) { - return 0; - } - if (val > 1e-14) { - var e2 = 1; - for (var i = 0; i < 15; i++, e2 *= 10) { - if (Math.round(val * e2) / e2 === val) { - return i; - } - } - } - return getPrecisionSafe(val); -} -function getPrecisionSafe(val) { - var str = val.toString().toLowerCase(); - var eIndex = str.indexOf("e"); - var exp = eIndex > 0 ? +str.slice(eIndex + 1) : 0; - var significandPartLen = eIndex > 0 ? eIndex : str.length; - var dotIndex = str.indexOf("."); - var decimalPartLen = dotIndex < 0 ? 0 : significandPartLen - 1 - dotIndex; - return Math.max(0, decimalPartLen - exp); -} -function getPixelPrecision(dataExtent, pixelExtent) { - var log = Math.log; - var LN10 = Math.LN10; - var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10); - var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10); - var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20); - return !isFinite(precision) ? 20 : precision; -} -function getPercentWithPrecision(valueList, idx, precision) { - if (!valueList[idx]) { - return 0; - } - var seats = getPercentSeats(valueList, precision); - return seats[idx] || 0; -} -function getPercentSeats(valueList, precision) { - var sum = reduce(valueList, function(acc, val) { - return acc + (isNaN(val) ? 0 : val); - }, 0); - if (sum === 0) { - return []; - } - var digits = Math.pow(10, precision); - var votesPerQuota = map$1(valueList, function(val) { - return (isNaN(val) ? 0 : val) / sum * digits * 100; - }); - var targetSeats = digits * 100; - var seats = map$1(votesPerQuota, function(votes) { - return Math.floor(votes); - }); - var currentSum = reduce(seats, function(acc, val) { - return acc + val; - }, 0); - var remainder = map$1(votesPerQuota, function(votes, idx) { - return votes - seats[idx]; - }); - while (currentSum < targetSeats) { - var max2 = Number.NEGATIVE_INFINITY; - var maxId = null; - for (var i = 0, len = remainder.length; i < len; ++i) { - if (remainder[i] > max2) { - max2 = remainder[i]; - maxId = i; - } - } - ++seats[maxId]; - remainder[maxId] = 0; - ++currentSum; - } - return map$1(seats, function(seat) { - return seat / digits; - }); -} -function addSafe(val0, val1) { - var maxPrecision = Math.max(getPrecision(val0), getPrecision(val1)); - var sum = val0 + val1; - return maxPrecision > ROUND_SUPPORTED_PRECISION_MAX ? sum : round(sum, maxPrecision); -} -var MAX_SAFE_INTEGER = 9007199254740991; -function remRadian(radian) { - var pi2 = Math.PI * 2; - return (radian % pi2 + pi2) % pi2; -} -function isRadianAroundZero(val) { - return val > -RADIAN_EPSILON && val < RADIAN_EPSILON; -} -var TIME_REG = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/; -function parseDate(value) { - if (value instanceof Date) { - return value; - } else if (isString(value)) { - var match = TIME_REG.exec(value); - if (!match) { - return /* @__PURE__ */ new Date(NaN); - } - if (!match[8]) { - return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, match[7] ? +match[7].substring(0, 3) : 0); - } else { - var hour = +match[4] || 0; - if (match[8].toUpperCase() !== "Z") { - hour -= +match[8].slice(0, 3); - } - return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, match[7] ? +match[7].substring(0, 3) : 0)); - } - } else if (value == null) { - return /* @__PURE__ */ new Date(NaN); - } - return new Date(Math.round(value)); -} -function quantity(val) { - return Math.pow(10, quantityExponent(val)); -} -function quantityExponent(val) { - if (val === 0) { - return 0; - } - var exp = Math.floor(Math.log(val) / Math.LN10); - if (val / Math.pow(10, exp) >= 10) { - exp++; - } - return exp; -} -function nice(val, round2) { - var exponent = quantityExponent(val); - var exp10 = Math.pow(10, exponent); - var f = val / exp10; - var nf; - if (round2) { - if (f < 1.5) { - nf = 1; - } else if (f < 2.5) { - nf = 2; - } else if (f < 4) { - nf = 3; - } else if (f < 7) { - nf = 5; - } else { - nf = 10; - } - } else { - if (f < 1) { - nf = 1; - } else if (f < 2) { - nf = 2; - } else if (f < 3) { - nf = 3; - } else if (f < 5) { - nf = 5; - } else { - nf = 10; - } - } - val = nf * exp10; - return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val; -} -function quantile(ascArr, p) { - var H = (ascArr.length - 1) * p + 1; - var h = Math.floor(H); - var v = +ascArr[h - 1]; - var e2 = H - h; - return e2 ? v + e2 * (ascArr[h] - v) : v; -} -function reformIntervals(list) { - list.sort(function(a, b) { - return littleThan(a, b, 0) ? -1 : 1; - }); - var curr = -Infinity; - var currClose = 1; - for (var i = 0; i < list.length; ) { - var interval = list[i].interval; - var close_1 = list[i].close; - for (var lg = 0; lg < 2; lg++) { - if (interval[lg] <= curr) { - interval[lg] = curr; - close_1[lg] = !lg ? 1 - currClose : 1; - } - curr = interval[lg]; - currClose = close_1[lg]; - } - if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) { - list.splice(i, 1); - } else { - i++; - } - } - return list; - function littleThan(a, b, lg2) { - return a.interval[lg2] < b.interval[lg2] || a.interval[lg2] === b.interval[lg2] && (a.close[lg2] - b.close[lg2] === (!lg2 ? 1 : -1) || !lg2 && littleThan(a, b, 1)); - } -} -function numericToNumber(val) { - var valFloat = parseFloat(val); - return valFloat == val && (valFloat !== 0 || !isString(val) || val.indexOf("x") <= 0) ? valFloat : NaN; -} -function isNumeric(val) { - return !isNaN(numericToNumber(val)); -} -function getRandomIdBase() { - return Math.round(Math.random() * 9); -} -function getGreatestCommonDividor(a, b) { - if (b === 0) { - return a; - } - return getGreatestCommonDividor(b, a % b); -} -function getLeastCommonMultiple(a, b) { - if (a == null) { - return b; - } - if (b == null) { - return a; - } - return a * b / getGreatestCommonDividor(a, b); -} -var ECHARTS_PREFIX = "[ECharts] "; -var storedLogs = {}; -var hasConsole = typeof console !== "undefined" && console.warn && console.log; -function outputLog(type, str, onlyOnce) { - if (hasConsole) { - if (onlyOnce) { - if (storedLogs[str]) { - return; - } - storedLogs[str] = true; - } - console[type](ECHARTS_PREFIX + str); - } -} -function warn(str, onlyOnce) { - outputLog("warn", str, onlyOnce); -} -function throwError(msg) { - throw new Error(msg); -} -function interpolateNumber(p0, p1, percent) { - return (p1 - p0) * percent + p0; -} -var DUMMY_COMPONENT_NAME_PREFIX = "series\0"; -var INTERNAL_COMPONENT_ID_PREFIX = "\0_ec_\0"; -function normalizeToArray(value) { - return value instanceof Array ? value : value == null ? [] : [value]; -} -function defaultEmphasis(opt, key, subOpts) { - if (opt) { - opt[key] = opt[key] || {}; - opt.emphasis = opt.emphasis || {}; - opt.emphasis[key] = opt.emphasis[key] || {}; - for (var i = 0, len = subOpts.length; i < len; i++) { - var subOptName = subOpts[i]; - if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) { - opt.emphasis[key][subOptName] = opt[key][subOptName]; - } - } - } -} -var TEXT_STYLE_OPTIONS = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "rich", "tag", "color", "textBorderColor", "textBorderWidth", "width", "height", "lineHeight", "align", "verticalAlign", "baseline", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY", "backgroundColor", "borderColor", "borderWidth", "borderRadius", "padding"]; -function getDataItemValue(dataItem) { - return isObject$2(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem; -} -function isDataItemOption(dataItem) { - return isObject$2(dataItem) && !(dataItem instanceof Array); -} -function mappingToExists(existings, newCmptOptions, mode) { - var isNormalMergeMode = mode === "normalMerge"; - var isReplaceMergeMode = mode === "replaceMerge"; - var isReplaceAllMode = mode === "replaceAll"; - existings = existings || []; - newCmptOptions = (newCmptOptions || []).slice(); - var existingIdIdxMap = createHashMap(); - each$2(newCmptOptions, function(cmptOption, index) { - if (!isObject$2(cmptOption)) { - newCmptOptions[index] = null; - return; - } - }); - var result = prepareResult(existings, existingIdIdxMap, mode); - if (isNormalMergeMode || isReplaceMergeMode) { - mappingById(result, existings, existingIdIdxMap, newCmptOptions); - } - if (isNormalMergeMode) { - mappingByName(result, newCmptOptions); - } - if (isNormalMergeMode || isReplaceMergeMode) { - mappingByIndex(result, newCmptOptions, isReplaceMergeMode); - } else if (isReplaceAllMode) { - mappingInReplaceAllMode(result, newCmptOptions); - } - makeIdAndName(result); - return result; -} -function prepareResult(existings, existingIdIdxMap, mode) { - var result = []; - if (mode === "replaceAll") { - return result; - } - for (var index = 0; index < existings.length; index++) { - var existing = existings[index]; - if (existing && existing.id != null) { - existingIdIdxMap.set(existing.id, index); - } - result.push({ - existing: mode === "replaceMerge" || isComponentIdInternal(existing) ? null : existing, - newOption: null, - keyInfo: null, - brandNew: null - }); - } - return result; -} -function mappingById(result, existings, existingIdIdxMap, newCmptOptions) { - each$2(newCmptOptions, function(cmptOption, index) { - if (!cmptOption || cmptOption.id == null) { - return; - } - var optionId = makeComparableKey(cmptOption.id); - var existingIdx = existingIdIdxMap.get(optionId); - if (existingIdx != null) { - var resultItem = result[existingIdx]; - assert(!resultItem.newOption, 'Duplicated option on id "' + optionId + '".'); - resultItem.newOption = cmptOption; - resultItem.existing = existings[existingIdx]; - newCmptOptions[index] = null; - } - }); -} -function mappingByName(result, newCmptOptions) { - each$2(newCmptOptions, function(cmptOption, index) { - if (!cmptOption || cmptOption.name == null) { - return; - } - for (var i = 0; i < result.length; i++) { - var existing = result[i].existing; - if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual("name", existing, cmptOption)) { - result[i].newOption = cmptOption; - newCmptOptions[index] = null; - return; - } - } - }); -} -function mappingByIndex(result, newCmptOptions, brandNew) { - each$2(newCmptOptions, function(cmptOption) { - if (!cmptOption) { - return; - } - var resultItem; - var nextIdx = 0; - while ( - // Be `!resultItem` only when `nextIdx >= result.length`. - (resultItem = result[nextIdx]) && // (1) Existing models that already have id should be able to mapped to. Because - // after mapping performed, model will always be assigned with an id if user not given. - // After that all models have id. - // (2) If new option has id, it can only set to a hole or append to the last. It should - // not be merged to the existings with different id. Because id should not be overwritten. - // (3) Name can be overwritten, because axis use name as 'show label text'. - (resultItem.newOption || isComponentIdInternal(resultItem.existing) || // In mode "replaceMerge", here no not-mapped-non-internal-existing. - resultItem.existing && cmptOption.id != null && !keyExistAndEqual("id", cmptOption, resultItem.existing)) - ) { - nextIdx++; - } - if (resultItem) { - resultItem.newOption = cmptOption; - resultItem.brandNew = brandNew; - } else { - result.push({ - newOption: cmptOption, - brandNew, - existing: null, - keyInfo: null - }); - } - nextIdx++; - }); -} -function mappingInReplaceAllMode(result, newCmptOptions) { - each$2(newCmptOptions, function(cmptOption) { - result.push({ - newOption: cmptOption, - brandNew: true, - existing: null, - keyInfo: null - }); - }); -} -function makeIdAndName(mapResult) { - var idMap = createHashMap(); - each$2(mapResult, function(item) { - var existing = item.existing; - existing && idMap.set(existing.id, item); - }); - each$2(mapResult, function(item) { - var opt = item.newOption; - assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, "id duplicates: " + (opt && opt.id)); - opt && opt.id != null && idMap.set(opt.id, item); - !item.keyInfo && (item.keyInfo = {}); - }); - each$2(mapResult, function(item, index) { - var existing = item.existing; - var opt = item.newOption; - var keyInfo = item.keyInfo; - if (!isObject$2(opt)) { - return; - } - keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index; - if (existing) { - keyInfo.id = makeComparableKey(existing.id); - } else if (opt.id != null) { - keyInfo.id = makeComparableKey(opt.id); - } else { - var idNum = 0; - do { - keyInfo.id = "\0" + keyInfo.name + "\0" + idNum++; - } while (idMap.get(keyInfo.id)); - } - idMap.set(keyInfo.id, item); - }); -} -function keyExistAndEqual(attr, obj1, obj2) { - var key1 = convertOptionIdName(obj1[attr], null); - var key2 = convertOptionIdName(obj2[attr], null); - return key1 != null && key2 != null && key1 === key2; -} -function makeComparableKey(val) { - return convertOptionIdName(val, ""); -} -function convertOptionIdName(idOrName, defaultValue) { - if (idOrName == null) { - return defaultValue; - } - return isString(idOrName) ? idOrName : isNumber(idOrName) || isStringSafe(idOrName) ? idOrName + "" : defaultValue; -} -function isNameSpecified(componentModel) { - var name = componentModel.name; - return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX)); -} -function isComponentIdInternal(cmptOption) { - return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0; -} -function makeInternalComponentId(idSuffix) { - return INTERNAL_COMPONENT_ID_PREFIX + idSuffix; -} -function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) { - each$2(mappingResult, function(item) { - var newOption = item.newOption; - if (isObject$2(newOption)) { - item.keyInfo.mainType = mainType; - item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor); - } - }); -} -function determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) { - var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption); - return subType; -} -function compressBatches(batchA, batchB) { - var mapA = {}; - var mapB = {}; - makeMap(batchA || [], mapA); - makeMap(batchB || [], mapB, mapA); - return [mapToArray(mapA), mapToArray(mapB)]; - function makeMap(sourceBatch, map2, otherMap) { - for (var i = 0, len = sourceBatch.length; i < len; i++) { - var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null); - if (seriesId == null) { - return; - } - var dataIndices = normalizeToArray(sourceBatch[i].dataIndex); - var otherDataIndices = otherMap && otherMap[seriesId]; - for (var j = 0, lenj = dataIndices.length; j < lenj; j++) { - var dataIndex = dataIndices[j]; - if (otherDataIndices && otherDataIndices[dataIndex]) { - otherDataIndices[dataIndex] = null; - } else { - (map2[seriesId] || (map2[seriesId] = {}))[dataIndex] = 1; - } - } - } - } - function mapToArray(map2, isData) { - var result = []; - for (var i in map2) { - if (map2.hasOwnProperty(i) && map2[i] != null) { - if (isData) { - result.push(+i); - } else { - var dataIndices = mapToArray(map2[i], true); - dataIndices.length && result.push({ - seriesId: i, - dataIndex: dataIndices - }); - } - } - } - return result; - } -} -function queryDataIndex(data, payload) { - if (payload.dataIndexInside != null) { - return payload.dataIndexInside; - } else if (payload.dataIndex != null) { - return isArray(payload.dataIndex) ? map$1(payload.dataIndex, function(value) { - return data.indexOfRawIndex(value); - }) : data.indexOfRawIndex(payload.dataIndex); - } else if (payload.name != null) { - return isArray(payload.name) ? map$1(payload.name, function(value) { - return data.indexOfName(value); - }) : data.indexOfName(payload.name); - } -} -function makeInner() { - var key = "__ec_inner_" + innerUniqueIndex++; - return function(hostObj) { - return hostObj[key] || (hostObj[key] = {}); - }; -} -var innerUniqueIndex = getRandomIdBase(); -function parseFinder(ecModel, finderInput, opt) { - var _a2 = preParseFinder(finderInput, opt), mainTypeSpecified = _a2.mainTypeSpecified, queryOptionMap = _a2.queryOptionMap, others = _a2.others; - var result = others; - var defaultMainType = opt ? opt.defaultMainType : null; - if (!mainTypeSpecified && defaultMainType) { - queryOptionMap.set(defaultMainType, {}); - } - queryOptionMap.each(function(queryOption, mainType) { - var queryResult = queryReferringComponents(ecModel, mainType, queryOption, { - useDefault: defaultMainType === mainType, - enableAll: opt && opt.enableAll != null ? opt.enableAll : true, - enableNone: opt && opt.enableNone != null ? opt.enableNone : true - }); - result[mainType + "Models"] = queryResult.models; - result[mainType + "Model"] = queryResult.models[0]; - }); - return result; -} -function preParseFinder(finderInput, opt) { - var finder; - if (isString(finderInput)) { - var obj = {}; - obj[finderInput + "Index"] = 0; - finder = obj; - } else { - finder = finderInput; - } - var queryOptionMap = createHashMap(); - var others = {}; - var mainTypeSpecified = false; - each$2(finder, function(value, key) { - if (key === "dataIndex" || key === "dataIndexInside") { - others[key] = value; - return; - } - var parsedKey = key.match(/^(\w+)(Index|Id|Name)$/) || []; - var mainType = parsedKey[1]; - var queryType = (parsedKey[2] || "").toLowerCase(); - if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) { - return; - } - mainTypeSpecified = mainTypeSpecified || !!mainType; - var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {}); - queryOption[queryType] = value; - }); - return { - mainTypeSpecified, - queryOptionMap, - others - }; -} -var SINGLE_REFERRING = { - useDefault: true, - enableAll: false, - enableNone: false -}; -var MULTIPLE_REFERRING = { - useDefault: false, - enableAll: true, - enableNone: true -}; -function queryReferringComponents(ecModel, mainType, userOption, opt) { - opt = opt || SINGLE_REFERRING; - var indexOption = userOption.index; - var idOption = userOption.id; - var nameOption = userOption.name; - var result = { - models: null, - specified: indexOption != null || idOption != null || nameOption != null - }; - if (!result.specified) { - var firstCmpt = void 0; - result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : []; - return result; - } - if (indexOption === "none" || indexOption === false) { - assert(opt.enableNone, '`"none"` or `false` is not a valid value on index option.'); - result.models = []; - return result; - } - if (indexOption === "all") { - assert(opt.enableAll, '`"all"` is not a valid value on index option.'); - indexOption = idOption = nameOption = null; - } - result.models = ecModel.queryComponents({ - mainType, - index: indexOption, - id: idOption, - name: nameOption - }); - return result; -} -function setAttribute(dom, key, value) { - dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value; -} -function getAttribute(dom, key) { - return dom.getAttribute ? dom.getAttribute(key) : dom[key]; -} -function getTooltipRenderMode(renderModeOption) { - if (renderModeOption === "auto") { - return env.domSupported ? "html" : "richText"; - } else { - return renderModeOption || "html"; - } -} -function groupData(array, getKey) { - var buckets = createHashMap(); - var keys2 = []; - each$2(array, function(item) { - var key = getKey(item); - (buckets.get(key) || (keys2.push(key), buckets.set(key, []))).push(item); - }); - return { - keys: keys2, - buckets - }; -} -function interpolateRawValues(data, precision, sourceValue, targetValue, percent) { - var isAutoPrecision = precision == null || precision === "auto"; - if (targetValue == null) { - return targetValue; - } - if (isNumber(targetValue)) { - var value = interpolateNumber(sourceValue || 0, targetValue, percent); - return round(value, isAutoPrecision ? Math.max(getPrecision(sourceValue || 0), getPrecision(targetValue)) : precision); - } else if (isString(targetValue)) { - return percent < 1 ? sourceValue : targetValue; - } else { - var interpolated = []; - var leftArr = sourceValue; - var rightArr = targetValue; - var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length); - for (var i = 0; i < length_1; ++i) { - var info = data.getDimensionInfo(i); - if (info && info.type === "ordinal") { - interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i]; - } else { - var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0; - var rightVal = rightArr[i]; - var value = interpolateNumber(leftVal, rightVal, percent); - interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecision(leftVal), getPrecision(rightVal)) : precision); - } - } - return interpolated; - } -} -var TYPE_DELIMITER = "."; -var IS_CONTAINER = "___EC__COMPONENT__CONTAINER___"; -var IS_EXTENDED_CLASS = "___EC__EXTENDED_CLASS___"; -function parseClassType(componentType) { - var ret = { - main: "", - sub: "" - }; - if (componentType) { - var typeArr = componentType.split(TYPE_DELIMITER); - ret.main = typeArr[0] || ""; - ret.sub = typeArr[1] || ""; - } - return ret; -} -function checkClassType(componentType) { - assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType "' + componentType + '" illegal'); -} -function isExtendedClass(clz) { - return !!(clz && clz[IS_EXTENDED_CLASS]); -} -function enableClassExtend(rootClz, mandatoryMethods) { - rootClz.$constructor = rootClz; - rootClz.extend = function(proto2) { - var superClass = this; - var ExtendedClass; - if (isESClass(superClass)) { - ExtendedClass = /** @class */ - function(_super) { - __extends(class_1, _super); - function class_1() { - return _super.apply(this, arguments) || this; - } - return class_1; - }(superClass); - } else { - ExtendedClass = function() { - (proto2.$constructor || superClass).apply(this, arguments); - }; - inherits(ExtendedClass, this); - } - extend(ExtendedClass.prototype, proto2); - ExtendedClass[IS_EXTENDED_CLASS] = true; - ExtendedClass.extend = this.extend; - ExtendedClass.superCall = superCall; - ExtendedClass.superApply = superApply; - ExtendedClass.superClass = superClass; - return ExtendedClass; - }; -} -function isESClass(fn) { - return isFunction(fn) && /^class\s/.test(Function.prototype.toString.call(fn)); -} -function mountExtend(SubClz, SupperClz) { - SubClz.extend = SupperClz.extend; -} -var classBase = Math.round(Math.random() * 10); -function enableClassCheck(target) { - var classAttr = ["__\0is_clz", classBase++].join("_"); - target.prototype[classAttr] = true; - target.isInstance = function(obj) { - return !!(obj && obj[classAttr]); - }; -} -function superCall(context, methodName) { - var args = []; - for (var _i = 2; _i < arguments.length; _i++) { - args[_i - 2] = arguments[_i]; - } - return this.superClass.prototype[methodName].apply(context, args); -} -function superApply(context, methodName, args) { - return this.superClass.prototype[methodName].apply(context, args); -} -function enableClassManagement(target) { - var storage = {}; - target.registerClass = function(clz) { - var componentFullType = clz.type || clz.prototype.type; - if (componentFullType) { - checkClassType(componentFullType); - clz.prototype.type = componentFullType; - var componentTypeInfo = parseClassType(componentFullType); - if (!componentTypeInfo.sub) { - storage[componentTypeInfo.main] = clz; - } else if (componentTypeInfo.sub !== IS_CONTAINER) { - var container = makeContainer(componentTypeInfo); - container[componentTypeInfo.sub] = clz; - } - } - return clz; - }; - target.getClass = function(mainType, subType, throwWhenNotFound) { - var clz = storage[mainType]; - if (clz && clz[IS_CONTAINER]) { - clz = subType ? clz[subType] : null; - } - if (throwWhenNotFound && !clz) { - throw new Error(!subType ? mainType + ".type should be specified." : "Component " + mainType + "." + (subType || "") + " is used but not imported."); - } - return clz; - }; - target.getClassesByMainType = function(componentType) { - var componentTypeInfo = parseClassType(componentType); - var result = []; - var obj = storage[componentTypeInfo.main]; - if (obj && obj[IS_CONTAINER]) { - each$2(obj, function(o, type) { - type !== IS_CONTAINER && result.push(o); - }); - } else { - result.push(obj); - } - return result; - }; - target.hasClass = function(componentType) { - var componentTypeInfo = parseClassType(componentType); - return !!storage[componentTypeInfo.main]; - }; - target.getAllClassMainTypes = function() { - var types = []; - each$2(storage, function(obj, type) { - types.push(type); - }); - return types; - }; - target.hasSubTypes = function(componentType) { - var componentTypeInfo = parseClassType(componentType); - var obj = storage[componentTypeInfo.main]; - return obj && obj[IS_CONTAINER]; - }; - function makeContainer(componentTypeInfo) { - var container = storage[componentTypeInfo.main]; - if (!container || !container[IS_CONTAINER]) { - container = storage[componentTypeInfo.main] = {}; - container[IS_CONTAINER] = true; - } - return container; - } -} -function makeStyleMapper(properties, ignoreParent) { - for (var i = 0; i < properties.length; i++) { - if (!properties[i][1]) { - properties[i][1] = properties[i][0]; - } - } - ignoreParent = ignoreParent || false; - return function(model, excludes, includes) { - var style = {}; - for (var i2 = 0; i2 < properties.length; i2++) { - var propName = properties[i2][1]; - if (excludes && indexOf(excludes, propName) >= 0 || includes && indexOf(includes, propName) < 0) { - continue; - } - var val = model.getShallow(propName, ignoreParent); - if (val != null) { - style[properties[i2][0]] = val; - } - } - return style; - }; -} -var AREA_STYLE_KEY_MAP = [ - ["fill", "color"], - ["shadowBlur"], - ["shadowOffsetX"], - ["shadowOffsetY"], - ["opacity"], - ["shadowColor"] - // Option decal is in `DecalObject` but style.decal is in `PatternObject`. - // So do not transfer decal directly. -]; -var getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP); -var AreaStyleMixin = ( - /** @class */ - function() { - function AreaStyleMixin2() { - } - AreaStyleMixin2.prototype.getAreaStyle = function(excludes, includes) { - return getAreaStyle(this, excludes, includes); - }; - return AreaStyleMixin2; - }() -); -var getECData = makeInner(); -var setCommonECData = function(seriesIndex, dataType, dataIdx, el) { - if (el) { - var ecData = getECData(el); - ecData.dataIndex = dataIdx; - ecData.dataType = dataType; - ecData.seriesIndex = seriesIndex; - if (el.type === "group") { - el.traverse(function(child) { - var childECData = getECData(child); - childECData.seriesIndex = seriesIndex; - childECData.dataIndex = dataIdx; - childECData.dataType = dataType; - }); - } - } -}; -var _highlightNextDigit = 1; -var _highlightKeyMap = {}; -var getSavedStates = makeInner(); -var getComponentStates = makeInner(); -var HOVER_STATE_NORMAL = 0; -var HOVER_STATE_BLUR = 1; -var HOVER_STATE_EMPHASIS = 2; -var SPECIAL_STATES = ["emphasis", "blur", "select"]; -var DISPLAY_STATES = ["normal", "emphasis", "blur", "select"]; -var Z2_EMPHASIS_LIFT = 10; -var Z2_SELECT_LIFT = 9; -var HIGHLIGHT_ACTION_TYPE = "highlight"; -var DOWNPLAY_ACTION_TYPE = "downplay"; -var SELECT_ACTION_TYPE = "select"; -var UNSELECT_ACTION_TYPE = "unselect"; -var TOGGLE_SELECT_ACTION_TYPE = "toggleSelect"; -function hasFillOrStroke(fillOrStroke) { - return fillOrStroke != null && fillOrStroke !== "none"; -} -var liftedColorCache = new LRU(100); -function liftColor(color$1) { - if (isString(color$1)) { - var liftedColor = liftedColorCache.get(color$1); - if (!liftedColor) { - liftedColor = lift(color$1, -0.1); - liftedColorCache.put(color$1, liftedColor); - } - return liftedColor; - } else if (isGradientObject(color$1)) { - var ret = extend({}, color$1); - ret.colorStops = map$1(color$1.colorStops, function(stop2) { - return { - offset: stop2.offset, - color: lift(stop2.color, -0.1) - }; - }); - return ret; - } - return color$1; -} -function doChangeHoverState(el, stateName, hoverStateEnum) { - if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) { - el.onHoverStateChange(stateName); - } - el.hoverState = hoverStateEnum; -} -function singleEnterEmphasis(el) { - doChangeHoverState(el, "emphasis", HOVER_STATE_EMPHASIS); -} -function singleLeaveEmphasis(el) { - if (el.hoverState === HOVER_STATE_EMPHASIS) { - doChangeHoverState(el, "normal", HOVER_STATE_NORMAL); - } -} -function singleEnterBlur(el) { - doChangeHoverState(el, "blur", HOVER_STATE_BLUR); -} -function singleLeaveBlur(el) { - if (el.hoverState === HOVER_STATE_BLUR) { - doChangeHoverState(el, "normal", HOVER_STATE_NORMAL); - } -} -function singleEnterSelect(el) { - el.selected = true; -} -function singleLeaveSelect(el) { - el.selected = false; -} -function updateElementState(el, updater, commonParam) { - updater(el, commonParam); -} -function traverseUpdateState(el, updater, commonParam) { - updateElementState(el, updater, commonParam); - el.isGroup && el.traverse(function(child) { - updateElementState(child, updater, commonParam); - }); -} -function setStatesFlag(el, stateName) { - switch (stateName) { - case "emphasis": - el.hoverState = HOVER_STATE_EMPHASIS; - break; - case "normal": - el.hoverState = HOVER_STATE_NORMAL; - break; - case "blur": - el.hoverState = HOVER_STATE_BLUR; - break; - case "select": - el.selected = true; - } -} -function getFromStateStyle(el, props, toStateName, defaultValue) { - var style = el.style; - var fromState = {}; - for (var i = 0; i < props.length; i++) { - var propName = props[i]; - var val = style[propName]; - fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val; - } - for (var i = 0; i < el.animators.length; i++) { - var animator = el.animators[i]; - if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === "style") { - animator.saveTo(fromState, props); - } - } - return fromState; -} -function createEmphasisDefaultState(el, stateName, targetStates, state) { - var hasSelect = targetStates && indexOf(targetStates, "select") >= 0; - var cloned = false; - if (el instanceof Path) { - var store = getSavedStates(el); - var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill; - var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke; - if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) { - state = state || {}; - var emphasisStyle = state.style || {}; - if (emphasisStyle.fill === "inherit") { - cloned = true; - state = extend({}, state); - emphasisStyle = extend({}, emphasisStyle); - emphasisStyle.fill = fromFill; - } else if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) { - cloned = true; - state = extend({}, state); - emphasisStyle = extend({}, emphasisStyle); - emphasisStyle.fill = liftColor(fromFill); - } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) { - if (!cloned) { - state = extend({}, state); - emphasisStyle = extend({}, emphasisStyle); - } - emphasisStyle.stroke = liftColor(fromStroke); - } - state.style = emphasisStyle; - } - } - if (state) { - if (state.z2 == null) { - if (!cloned) { - state = extend({}, state); - } - var z2EmphasisLift = el.z2EmphasisLift; - state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT); - } - } - return state; -} -function createSelectDefaultState(el, stateName, state) { - if (state) { - if (state.z2 == null) { - state = extend({}, state); - var z2SelectLift = el.z2SelectLift; - state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT); - } - } - return state; -} -function createBlurDefaultState(el, stateName, state) { - var hasBlur = indexOf(el.currentStates, stateName) >= 0; - var currentOpacity = el.style.opacity; - var fromState = !hasBlur ? getFromStateStyle(el, ["opacity"], stateName, { - opacity: 1 - }) : null; - state = state || {}; - var blurStyle = state.style || {}; - if (blurStyle.opacity == null) { - state = extend({}, state); - blurStyle = extend({ - // Already being applied 'emphasis'. DON'T mul opacity multiple times. - opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1 - }, blurStyle); - state.style = blurStyle; - } - return state; -} -function elementStateProxy(stateName, targetStates) { - var state = this.states[stateName]; - if (this.style) { - if (stateName === "emphasis") { - return createEmphasisDefaultState(this, stateName, targetStates, state); - } else if (stateName === "blur") { - return createBlurDefaultState(this, stateName, state); - } else if (stateName === "select") { - return createSelectDefaultState(this, stateName, state); - } - } - return state; -} -function setDefaultStateProxy(el) { - el.stateProxy = elementStateProxy; - var textContent = el.getTextContent(); - var textGuide = el.getTextGuideLine(); - if (textContent) { - textContent.stateProxy = elementStateProxy; - } - if (textGuide) { - textGuide.stateProxy = elementStateProxy; - } -} -function enterEmphasisWhenMouseOver(el, e2) { - !shouldSilent(el, e2) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis); -} -function leaveEmphasisWhenMouseOut(el, e2) { - !shouldSilent(el, e2) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis); -} -function enterEmphasis(el, highlightDigit) { - el.__highByOuter |= 1 << (highlightDigit || 0); - traverseUpdateState(el, singleEnterEmphasis); -} -function leaveEmphasis(el, highlightDigit) { - !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis); -} -function enterBlur(el) { - traverseUpdateState(el, singleEnterBlur); -} -function leaveBlur(el) { - traverseUpdateState(el, singleLeaveBlur); -} -function enterSelect(el) { - traverseUpdateState(el, singleEnterSelect); -} -function leaveSelect(el) { - traverseUpdateState(el, singleLeaveSelect); -} -function shouldSilent(el, e2) { - return el.__highDownSilentOnTouch && e2.zrByTouch; -} -function allLeaveBlur(api) { - var model = api.getModel(); - var leaveBlurredSeries = []; - var allComponentViews = []; - model.eachComponent(function(componentType, componentModel) { - var componentStates = getComponentStates(componentModel); - var isSeries2 = componentType === "series"; - var view = isSeries2 ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel); - !isSeries2 && allComponentViews.push(view); - if (componentStates.isBlured) { - view.group.traverse(function(child) { - singleLeaveBlur(child); - }); - isSeries2 && leaveBlurredSeries.push(componentModel); - } - componentStates.isBlured = false; - }); - each$2(allComponentViews, function(view) { - if (view && view.toggleBlurSeries) { - view.toggleBlurSeries(leaveBlurredSeries, false, model); - } - }); -} -function blurSeries(targetSeriesIndex, focus, blurScope, api) { - var ecModel = api.getModel(); - blurScope = blurScope || "coordinateSystem"; - function leaveBlurOfIndices(data, dataIndices) { - for (var i = 0; i < dataIndices.length; i++) { - var itemEl = data.getItemGraphicEl(dataIndices[i]); - itemEl && leaveBlur(itemEl); - } - } - if (targetSeriesIndex == null) { - return; - } - if (!focus || focus === "none") { - return; - } - var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex); - var targetCoordSys = targetSeriesModel.coordinateSystem; - if (targetCoordSys && targetCoordSys.master) { - targetCoordSys = targetCoordSys.master; - } - var blurredSeries = []; - ecModel.eachSeries(function(seriesModel) { - var sameSeries = targetSeriesModel === seriesModel; - var coordSys = seriesModel.coordinateSystem; - if (coordSys && coordSys.master) { - coordSys = coordSys.master; - } - var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries; - if (!// Not blur other series if blurScope series - (blurScope === "series" && !sameSeries || blurScope === "coordinateSystem" && !sameCoordSys || focus === "series" && sameSeries)) { - var view = api.getViewOfSeriesModel(seriesModel); - view.group.traverse(function(child) { - singleEnterBlur(child); - }); - if (isArrayLike(focus)) { - leaveBlurOfIndices(seriesModel.getData(), focus); - } else if (isObject$2(focus)) { - var dataTypes = keys(focus); - for (var d = 0; d < dataTypes.length; d++) { - leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]); - } - } - blurredSeries.push(seriesModel); - getComponentStates(seriesModel).isBlured = true; - } - }); - ecModel.eachComponent(function(componentType, componentModel) { - if (componentType === "series") { - return; - } - var view = api.getViewOfComponentModel(componentModel); - if (view && view.toggleBlurSeries) { - view.toggleBlurSeries(blurredSeries, true, ecModel); - } - }); -} -function blurComponent(componentMainType, componentIndex, api) { - if (componentMainType == null || componentIndex == null) { - return; - } - var componentModel = api.getModel().getComponent(componentMainType, componentIndex); - if (!componentModel) { - return; - } - getComponentStates(componentModel).isBlured = true; - var view = api.getViewOfComponentModel(componentModel); - if (!view || !view.focusBlurEnabled) { - return; - } - view.group.traverse(function(child) { - singleEnterBlur(child); - }); -} -function blurSeriesFromHighlightPayload(seriesModel, payload, api) { - var seriesIndex = seriesModel.seriesIndex; - var data = seriesModel.getData(payload.dataType); - if (!data) { - return; - } - var dataIndex = queryDataIndex(data, payload); - dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0; - var el = data.getItemGraphicEl(dataIndex); - if (!el) { - var count = data.count(); - var current = 0; - while (!el && current < count) { - el = data.getItemGraphicEl(current++); - } - } - if (el) { - var ecData = getECData(el); - blurSeries(seriesIndex, ecData.focus, ecData.blurScope, api); - } else { - var focus_1 = seriesModel.get(["emphasis", "focus"]); - var blurScope = seriesModel.get(["emphasis", "blurScope"]); - if (focus_1 != null) { - blurSeries(seriesIndex, focus_1, blurScope, api); - } - } -} -function findComponentHighDownDispatchers(componentMainType, componentIndex, name, api) { - var ret = { - focusSelf: false, - dispatchers: null - }; - if (componentMainType == null || componentMainType === "series" || componentIndex == null || name == null) { - return ret; - } - var componentModel = api.getModel().getComponent(componentMainType, componentIndex); - if (!componentModel) { - return ret; - } - var view = api.getViewOfComponentModel(componentModel); - if (!view || !view.findHighDownDispatchers) { - return ret; - } - var dispatchers = view.findHighDownDispatchers(name); - var focusSelf; - for (var i = 0; i < dispatchers.length; i++) { - if (getECData(dispatchers[i]).focus === "self") { - focusSelf = true; - break; - } - } - return { - focusSelf, - dispatchers - }; -} -function handleGlobalMouseOverForHighDown(dispatcher, e2, api) { - var ecData = getECData(dispatcher); - var _a2 = findComponentHighDownDispatchers(ecData.componentMainType, ecData.componentIndex, ecData.componentHighDownName, api), dispatchers = _a2.dispatchers, focusSelf = _a2.focusSelf; - if (dispatchers) { - if (focusSelf) { - blurComponent(ecData.componentMainType, ecData.componentIndex, api); - } - each$2(dispatchers, function(dispatcher2) { - return enterEmphasisWhenMouseOver(dispatcher2, e2); - }); - } else { - blurSeries(ecData.seriesIndex, ecData.focus, ecData.blurScope, api); - if (ecData.focus === "self") { - blurComponent(ecData.componentMainType, ecData.componentIndex, api); - } - enterEmphasisWhenMouseOver(dispatcher, e2); - } -} -function handleGlobalMouseOutForHighDown(dispatcher, e2, api) { - allLeaveBlur(api); - var ecData = getECData(dispatcher); - var dispatchers = findComponentHighDownDispatchers(ecData.componentMainType, ecData.componentIndex, ecData.componentHighDownName, api).dispatchers; - if (dispatchers) { - each$2(dispatchers, function(dispatcher2) { - return leaveEmphasisWhenMouseOut(dispatcher2, e2); - }); - } else { - leaveEmphasisWhenMouseOut(dispatcher, e2); - } -} -function toggleSelectionFromPayload(seriesModel, payload, api) { - if (!isSelectChangePayload(payload)) { - return; - } - var dataType = payload.dataType; - var data = seriesModel.getData(dataType); - var dataIndex = queryDataIndex(data, payload); - if (!isArray(dataIndex)) { - dataIndex = [dataIndex]; - } - seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? "toggleSelect" : payload.type === SELECT_ACTION_TYPE ? "select" : "unselect"](dataIndex, dataType); -} -function updateSeriesElementSelection(seriesModel) { - var allData = seriesModel.getAllData(); - each$2(allData, function(_a2) { - var data = _a2.data, type = _a2.type; - data.eachItemGraphicEl(function(el, idx) { - seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el); - }); - }); -} -function getAllSelectedIndices(ecModel) { - var ret = []; - ecModel.eachSeries(function(seriesModel) { - var allData = seriesModel.getAllData(); - each$2(allData, function(_a2) { - _a2.data; - var type = _a2.type; - var dataIndices = seriesModel.getSelectedDataIndices(); - if (dataIndices.length > 0) { - var item = { - dataIndex: dataIndices, - seriesIndex: seriesModel.seriesIndex - }; - if (type != null) { - item.dataType = type; - } - ret.push(item); - } - }); - }); - return ret; -} -function enableHoverEmphasis(el, focus, blurScope) { - setAsHighDownDispatcher(el, true); - traverseUpdateState(el, setDefaultStateProxy); - enableHoverFocus(el, focus, blurScope); -} -function disableHoverEmphasis(el) { - setAsHighDownDispatcher(el, false); -} -function toggleHoverEmphasis(el, focus, blurScope, isDisabled) { - isDisabled ? disableHoverEmphasis(el) : enableHoverEmphasis(el, focus, blurScope); -} -function enableHoverFocus(el, focus, blurScope) { - var ecData = getECData(el); - if (focus != null) { - ecData.focus = focus; - ecData.blurScope = blurScope; - } else if (ecData.focus) { - ecData.focus = null; - } -} -var OTHER_STATES = ["emphasis", "blur", "select"]; -var defaultStyleGetterMap = { - itemStyle: "getItemStyle", - lineStyle: "getLineStyle", - areaStyle: "getAreaStyle" -}; -function setStatesStylesFromModel(el, itemModel, styleType, getter) { - styleType = styleType || "itemStyle"; - for (var i = 0; i < OTHER_STATES.length; i++) { - var stateName = OTHER_STATES[i]; - var model = itemModel.getModel([stateName, styleType]); - var state = el.ensureState(stateName); - state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]](); - } -} -function setAsHighDownDispatcher(el, asDispatcher) { - var disable = asDispatcher === false; - var extendedEl = el; - if (el.highDownSilentOnTouch) { - extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch; - } - if (!disable || extendedEl.__highDownDispatcher) { - extendedEl.__highByOuter = extendedEl.__highByOuter || 0; - extendedEl.__highDownDispatcher = !disable; - } -} -function isHighDownDispatcher(el) { - return !!(el && el.__highDownDispatcher); -} -function enableComponentHighDownFeatures(el, componentModel, componentHighDownName) { - var ecData = getECData(el); - ecData.componentMainType = componentModel.mainType; - ecData.componentIndex = componentModel.componentIndex; - ecData.componentHighDownName = componentHighDownName; -} -function getHighlightDigit(highlightKey) { - var highlightDigit = _highlightKeyMap[highlightKey]; - if (highlightDigit == null && _highlightNextDigit <= 32) { - highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++; - } - return highlightDigit; -} -function isSelectChangePayload(payload) { - var payloadType = payload.type; - return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE; -} -function isHighDownPayload(payload) { - var payloadType = payload.type; - return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE; -} -function savePathStates(el) { - var store = getSavedStates(el); - store.normalFill = el.style.fill; - store.normalStroke = el.style.stroke; - var selectState = el.states.select || {}; - store.selectFill = selectState.style && selectState.style.fill || null; - store.selectStroke = selectState.style && selectState.style.stroke || null; -} -var CMD = PathProxy.CMD; -var points = [[], [], []]; -var mathSqrt$2 = Math.sqrt; -var mathAtan2 = Math.atan2; -function transformPath(path, m2) { - if (!m2) { - return; - } - var data = path.data; - var len = path.len(); - var cmd; - var nPoint; - var i; - var j; - var k; - var p; - var M = CMD.M; - var C = CMD.C; - var L = CMD.L; - var R = CMD.R; - var A = CMD.A; - var Q = CMD.Q; - for (i = 0, j = 0; i < len; ) { - cmd = data[i++]; - j = i; - nPoint = 0; - switch (cmd) { - case M: - nPoint = 1; - break; - case L: - nPoint = 1; - break; - case C: - nPoint = 3; - break; - case Q: - nPoint = 2; - break; - case A: - var x = m2[4]; - var y = m2[5]; - var sx = mathSqrt$2(m2[0] * m2[0] + m2[1] * m2[1]); - var sy = mathSqrt$2(m2[2] * m2[2] + m2[3] * m2[3]); - var angle = mathAtan2(-m2[1] / sy, m2[0] / sx); - data[i] *= sx; - data[i++] += x; - data[i] *= sy; - data[i++] += y; - data[i++] *= sx; - data[i++] *= sy; - data[i++] += angle; - data[i++] += angle; - i += 2; - j = i; - break; - case R: - p[0] = data[i++]; - p[1] = data[i++]; - applyTransform$1(p, p, m2); - data[j++] = p[0]; - data[j++] = p[1]; - p[0] += data[i++]; - p[1] += data[i++]; - applyTransform$1(p, p, m2); - data[j++] = p[0]; - data[j++] = p[1]; - } - for (k = 0; k < nPoint; k++) { - var p_1 = points[k]; - p_1[0] = data[i++]; - p_1[1] = data[i++]; - applyTransform$1(p_1, p_1, m2); - data[j++] = p_1[0]; - data[j++] = p_1[1]; - } - } - path.increaseVersion(); -} -var mathSqrt$1 = Math.sqrt; -var mathSin$1 = Math.sin; -var mathCos$1 = Math.cos; -var PI$2 = Math.PI; -function vMag(v) { - return Math.sqrt(v[0] * v[0] + v[1] * v[1]); -} -function vRatio(u, v) { - return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)); -} -function vAngle(u, v) { - return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v)); -} -function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) { - var psi = psiDeg * (PI$2 / 180); - var xp = mathCos$1(psi) * (x1 - x2) / 2 + mathSin$1(psi) * (y1 - y2) / 2; - var yp = -1 * mathSin$1(psi) * (x1 - x2) / 2 + mathCos$1(psi) * (y1 - y2) / 2; - var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry); - if (lambda > 1) { - rx *= mathSqrt$1(lambda); - ry *= mathSqrt$1(lambda); - } - var f = (fa === fs ? -1 : 1) * mathSqrt$1((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))) || 0; - var cxp = f * rx * yp / ry; - var cyp = f * -ry * xp / rx; - var cx = (x1 + x2) / 2 + mathCos$1(psi) * cxp - mathSin$1(psi) * cyp; - var cy = (y1 + y2) / 2 + mathSin$1(psi) * cxp + mathCos$1(psi) * cyp; - var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]); - var u = [(xp - cxp) / rx, (yp - cyp) / ry]; - var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry]; - var dTheta = vAngle(u, v); - if (vRatio(u, v) <= -1) { - dTheta = PI$2; - } - if (vRatio(u, v) >= 1) { - dTheta = 0; - } - if (dTheta < 0) { - var n = Math.round(dTheta / PI$2 * 1e6) / 1e6; - dTheta = PI$2 * 2 + n % 2 * PI$2; - } - path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs); -} -var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig; -var numberReg = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g; -function createPathProxyFromString(data) { - var path = new PathProxy(); - if (!data) { - return path; - } - var cpx = 0; - var cpy = 0; - var subpathX = cpx; - var subpathY = cpy; - var prevCmd; - var CMD2 = PathProxy.CMD; - var cmdList = data.match(commandReg); - if (!cmdList) { - return path; - } - for (var l = 0; l < cmdList.length; l++) { - var cmdText = cmdList[l]; - var cmdStr = cmdText.charAt(0); - var cmd = void 0; - var p = cmdText.match(numberReg) || []; - var pLen = p.length; - for (var i = 0; i < pLen; i++) { - p[i] = parseFloat(p[i]); - } - var off = 0; - while (off < pLen) { - var ctlPtx = void 0; - var ctlPty = void 0; - var rx = void 0; - var ry = void 0; - var psi = void 0; - var fa = void 0; - var fs = void 0; - var x1 = cpx; - var y1 = cpy; - var len = void 0; - var pathData = void 0; - switch (cmdStr) { - case "l": - cpx += p[off++]; - cpy += p[off++]; - cmd = CMD2.L; - path.addData(cmd, cpx, cpy); - break; - case "L": - cpx = p[off++]; - cpy = p[off++]; - cmd = CMD2.L; - path.addData(cmd, cpx, cpy); - break; - case "m": - cpx += p[off++]; - cpy += p[off++]; - cmd = CMD2.M; - path.addData(cmd, cpx, cpy); - subpathX = cpx; - subpathY = cpy; - cmdStr = "l"; - break; - case "M": - cpx = p[off++]; - cpy = p[off++]; - cmd = CMD2.M; - path.addData(cmd, cpx, cpy); - subpathX = cpx; - subpathY = cpy; - cmdStr = "L"; - break; - case "h": - cpx += p[off++]; - cmd = CMD2.L; - path.addData(cmd, cpx, cpy); - break; - case "H": - cpx = p[off++]; - cmd = CMD2.L; - path.addData(cmd, cpx, cpy); - break; - case "v": - cpy += p[off++]; - cmd = CMD2.L; - path.addData(cmd, cpx, cpy); - break; - case "V": - cpy = p[off++]; - cmd = CMD2.L; - path.addData(cmd, cpx, cpy); - break; - case "C": - cmd = CMD2.C; - path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]); - cpx = p[off - 2]; - cpy = p[off - 1]; - break; - case "c": - cmd = CMD2.C; - path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy); - cpx += p[off - 2]; - cpy += p[off - 1]; - break; - case "S": - ctlPtx = cpx; - ctlPty = cpy; - len = path.len(); - pathData = path.data; - if (prevCmd === CMD2.C) { - ctlPtx += cpx - pathData[len - 4]; - ctlPty += cpy - pathData[len - 3]; - } - cmd = CMD2.C; - x1 = p[off++]; - y1 = p[off++]; - cpx = p[off++]; - cpy = p[off++]; - path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy); - break; - case "s": - ctlPtx = cpx; - ctlPty = cpy; - len = path.len(); - pathData = path.data; - if (prevCmd === CMD2.C) { - ctlPtx += cpx - pathData[len - 4]; - ctlPty += cpy - pathData[len - 3]; - } - cmd = CMD2.C; - x1 = cpx + p[off++]; - y1 = cpy + p[off++]; - cpx += p[off++]; - cpy += p[off++]; - path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy); - break; - case "Q": - x1 = p[off++]; - y1 = p[off++]; - cpx = p[off++]; - cpy = p[off++]; - cmd = CMD2.Q; - path.addData(cmd, x1, y1, cpx, cpy); - break; - case "q": - x1 = p[off++] + cpx; - y1 = p[off++] + cpy; - cpx += p[off++]; - cpy += p[off++]; - cmd = CMD2.Q; - path.addData(cmd, x1, y1, cpx, cpy); - break; - case "T": - ctlPtx = cpx; - ctlPty = cpy; - len = path.len(); - pathData = path.data; - if (prevCmd === CMD2.Q) { - ctlPtx += cpx - pathData[len - 4]; - ctlPty += cpy - pathData[len - 3]; - } - cpx = p[off++]; - cpy = p[off++]; - cmd = CMD2.Q; - path.addData(cmd, ctlPtx, ctlPty, cpx, cpy); - break; - case "t": - ctlPtx = cpx; - ctlPty = cpy; - len = path.len(); - pathData = path.data; - if (prevCmd === CMD2.Q) { - ctlPtx += cpx - pathData[len - 4]; - ctlPty += cpy - pathData[len - 3]; - } - cpx += p[off++]; - cpy += p[off++]; - cmd = CMD2.Q; - path.addData(cmd, ctlPtx, ctlPty, cpx, cpy); - break; - case "A": - rx = p[off++]; - ry = p[off++]; - psi = p[off++]; - fa = p[off++]; - fs = p[off++]; - x1 = cpx, y1 = cpy; - cpx = p[off++]; - cpy = p[off++]; - cmd = CMD2.A; - processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path); - break; - case "a": - rx = p[off++]; - ry = p[off++]; - psi = p[off++]; - fa = p[off++]; - fs = p[off++]; - x1 = cpx, y1 = cpy; - cpx += p[off++]; - cpy += p[off++]; - cmd = CMD2.A; - processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path); - break; - } - } - if (cmdStr === "z" || cmdStr === "Z") { - cmd = CMD2.Z; - path.addData(cmd); - cpx = subpathX; - cpy = subpathY; - } - prevCmd = cmd; - } - path.toStatic(); - return path; -} -var SVGPath = function(_super) { - __extends(SVGPath2, _super); - function SVGPath2() { - return _super !== null && _super.apply(this, arguments) || this; - } - SVGPath2.prototype.applyTransform = function(m2) { - }; - return SVGPath2; -}(Path); -function isPathProxy(path) { - return path.setData != null; -} -function createPathOptions(str, opts) { - var pathProxy = createPathProxyFromString(str); - var innerOpts = extend({}, opts); - innerOpts.buildPath = function(path) { - if (isPathProxy(path)) { - path.setData(pathProxy.data); - var ctx = path.getContext(); - if (ctx) { - path.rebuildPath(ctx, 1); - } - } else { - var ctx = path; - pathProxy.rebuildPath(ctx, 1); - } - }; - innerOpts.applyTransform = function(m2) { - transformPath(pathProxy, m2); - this.dirtyShape(); - }; - return innerOpts; -} -function createFromString(str, opts) { - return new SVGPath(createPathOptions(str, opts)); -} -function extendFromString(str, defaultOpts) { - var innerOpts = createPathOptions(str, defaultOpts); - var Sub = function(_super) { - __extends(Sub2, _super); - function Sub2(opts) { - var _this = _super.call(this, opts) || this; - _this.applyTransform = innerOpts.applyTransform; - _this.buildPath = innerOpts.buildPath; - return _this; - } - return Sub2; - }(SVGPath); - return Sub; -} -function mergePath$1(pathEls, opts) { - var pathList = []; - var len = pathEls.length; - for (var i = 0; i < len; i++) { - var pathEl = pathEls[i]; - pathList.push(pathEl.getUpdatedPathProxy(true)); - } - var pathBundle = new Path(opts); - pathBundle.createPathProxy(); - pathBundle.buildPath = function(path) { - if (isPathProxy(path)) { - path.appendPath(pathList); - var ctx = path.getContext(); - if (ctx) { - path.rebuildPath(ctx, 1); - } - } - }; - return pathBundle; -} -var CircleShape = function() { - function CircleShape2() { - this.cx = 0; - this.cy = 0; - this.r = 0; - } - return CircleShape2; -}(); -var Circle = function(_super) { - __extends(Circle2, _super); - function Circle2(opts) { - return _super.call(this, opts) || this; - } - Circle2.prototype.getDefaultShape = function() { - return new CircleShape(); - }; - Circle2.prototype.buildPath = function(ctx, shape) { - ctx.moveTo(shape.cx + shape.r, shape.cy); - ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2); - }; - return Circle2; -}(Path); -Circle.prototype.type = "circle"; -const Circle$1 = Circle; -var EllipseShape = function() { - function EllipseShape2() { - this.cx = 0; - this.cy = 0; - this.rx = 0; - this.ry = 0; - } - return EllipseShape2; -}(); -var Ellipse = function(_super) { - __extends(Ellipse2, _super); - function Ellipse2(opts) { - return _super.call(this, opts) || this; - } - Ellipse2.prototype.getDefaultShape = function() { - return new EllipseShape(); - }; - Ellipse2.prototype.buildPath = function(ctx, shape) { - var k = 0.5522848; - var x = shape.cx; - var y = shape.cy; - var a = shape.rx; - var b = shape.ry; - var ox = a * k; - var oy = b * k; - ctx.moveTo(x - a, y); - ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b); - ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y); - ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b); - ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y); - ctx.closePath(); - }; - return Ellipse2; -}(Path); -Ellipse.prototype.type = "ellipse"; -const Ellipse$1 = Ellipse; -var PI$1 = Math.PI; -var PI2 = PI$1 * 2; -var mathSin = Math.sin; -var mathCos = Math.cos; -var mathACos = Math.acos; -var mathATan2 = Math.atan2; -var mathAbs = Math.abs; -var mathSqrt = Math.sqrt; -var mathMax$1 = Math.max; -var mathMin$1 = Math.min; -var e = 1e-4; -function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { - var dx10 = x1 - x0; - var dy10 = y1 - y0; - var dx32 = x3 - x2; - var dy32 = y3 - y2; - var t = dy32 * dx10 - dx32 * dy10; - if (t * t < e) { - return; - } - t = (dx32 * (y0 - y2) - dy32 * (x0 - x2)) / t; - return [x0 + t * dx10, y0 + t * dy10]; -} -function computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) { - var x01 = x0 - x1; - var y01 = y0 - y1; - var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01); - var ox = lo * y01; - var oy = -lo * x01; - var x11 = x0 + ox; - var y11 = y0 + oy; - var x10 = x1 + ox; - var y10 = y1 + oy; - var x00 = (x11 + x10) / 2; - var y00 = (y11 + y10) / 2; - var dx = x10 - x11; - var dy = y10 - y11; - var d2 = dx * dx + dy * dy; - var r = radius - cr; - var s = x11 * y10 - x10 * y11; - var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax$1(0, r * r * d2 - s * s)); - var cx0 = (s * dy - dx * d) / d2; - var cy0 = (-s * dx - dy * d) / d2; - var cx1 = (s * dy + dx * d) / d2; - var cy1 = (-s * dx + dy * d) / d2; - var dx0 = cx0 - x00; - var dy0 = cy0 - y00; - var dx1 = cx1 - x00; - var dy1 = cy1 - y00; - if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) { - cx0 = cx1; - cy0 = cy1; - } - return { - cx: cx0, - cy: cy0, - x0: -ox, - y0: -oy, - x1: cx0 * (radius / r - 1), - y1: cy0 * (radius / r - 1) - }; -} -function normalizeCornerRadius(cr) { - var arr; - if (isArray(cr)) { - var len = cr.length; - if (!len) { - return cr; - } - if (len === 1) { - arr = [cr[0], cr[0], 0, 0]; - } else if (len === 2) { - arr = [cr[0], cr[0], cr[1], cr[1]]; - } else if (len === 3) { - arr = cr.concat(cr[2]); - } else { - arr = cr; - } - } else { - arr = [cr, cr, cr, cr]; - } - return arr; -} -function buildPath$1(ctx, shape) { - var _a2; - var radius = mathMax$1(shape.r, 0); - var innerRadius = mathMax$1(shape.r0 || 0, 0); - var hasRadius = radius > 0; - var hasInnerRadius = innerRadius > 0; - if (!hasRadius && !hasInnerRadius) { - return; - } - if (!hasRadius) { - radius = innerRadius; - innerRadius = 0; - } - if (innerRadius > radius) { - var tmp = radius; - radius = innerRadius; - innerRadius = tmp; - } - var startAngle = shape.startAngle, endAngle = shape.endAngle; - if (isNaN(startAngle) || isNaN(endAngle)) { - return; - } - var cx = shape.cx, cy = shape.cy; - var clockwise = !!shape.clockwise; - var arc = mathAbs(endAngle - startAngle); - var mod = arc > PI2 && arc % PI2; - mod > e && (arc = mod); - if (!(radius > e)) { - ctx.moveTo(cx, cy); - } else if (arc > PI2 - e) { - ctx.moveTo(cx + radius * mathCos(startAngle), cy + radius * mathSin(startAngle)); - ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise); - if (innerRadius > e) { - ctx.moveTo(cx + innerRadius * mathCos(endAngle), cy + innerRadius * mathSin(endAngle)); - ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise); - } - } else { - var icrStart = void 0; - var icrEnd = void 0; - var ocrStart = void 0; - var ocrEnd = void 0; - var ocrs = void 0; - var ocre = void 0; - var icrs = void 0; - var icre = void 0; - var ocrMax = void 0; - var icrMax = void 0; - var limitedOcrMax = void 0; - var limitedIcrMax = void 0; - var xre = void 0; - var yre = void 0; - var xirs = void 0; - var yirs = void 0; - var xrs = radius * mathCos(startAngle); - var yrs = radius * mathSin(startAngle); - var xire = innerRadius * mathCos(endAngle); - var yire = innerRadius * mathSin(endAngle); - var hasArc = arc > e; - if (hasArc) { - var cornerRadius = shape.cornerRadius; - if (cornerRadius) { - _a2 = normalizeCornerRadius(cornerRadius), icrStart = _a2[0], icrEnd = _a2[1], ocrStart = _a2[2], ocrEnd = _a2[3]; - } - var halfRd = mathAbs(radius - innerRadius) / 2; - ocrs = mathMin$1(halfRd, ocrStart); - ocre = mathMin$1(halfRd, ocrEnd); - icrs = mathMin$1(halfRd, icrStart); - icre = mathMin$1(halfRd, icrEnd); - limitedOcrMax = ocrMax = mathMax$1(ocrs, ocre); - limitedIcrMax = icrMax = mathMax$1(icrs, icre); - if (ocrMax > e || icrMax > e) { - xre = radius * mathCos(endAngle); - yre = radius * mathSin(endAngle); - xirs = innerRadius * mathCos(startAngle); - yirs = innerRadius * mathSin(startAngle); - if (arc < PI$1) { - var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire); - if (it_1) { - var x0 = xrs - it_1[0]; - var y0 = yrs - it_1[1]; - var x1 = xre - it_1[0]; - var y1 = yre - it_1[1]; - var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2); - var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]); - limitedOcrMax = mathMin$1(ocrMax, (radius - b) / (a + 1)); - limitedIcrMax = mathMin$1(icrMax, (innerRadius - b) / (a - 1)); - } - } - } - } - if (!hasArc) { - ctx.moveTo(cx + xrs, cy + yrs); - } else if (limitedOcrMax > e) { - var crStart = mathMin$1(ocrStart, limitedOcrMax); - var crEnd = mathMin$1(ocrEnd, limitedOcrMax); - var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, crStart, clockwise); - var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, crEnd, clockwise); - ctx.moveTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0); - if (limitedOcrMax < ocrMax && crStart === crEnd) { - ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedOcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise); - } else { - crStart > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crStart, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise); - ctx.arc(cx, cy, radius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), !clockwise); - crEnd > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crEnd, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise); - } - } else { - ctx.moveTo(cx + xrs, cy + yrs); - ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise); - } - if (!(innerRadius > e) || !hasArc) { - ctx.lineTo(cx + xire, cy + yire); - } else if (limitedIcrMax > e) { - var crStart = mathMin$1(icrStart, limitedIcrMax); - var crEnd = mathMin$1(icrEnd, limitedIcrMax); - var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -crEnd, clockwise); - var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -crStart, clockwise); - ctx.lineTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0); - if (limitedIcrMax < icrMax && crStart === crEnd) { - ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedIcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise); - } else { - crEnd > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crEnd, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise); - ctx.arc(cx, cy, innerRadius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), clockwise); - crStart > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crStart, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise); - } - } else { - ctx.lineTo(cx + xire, cy + yire); - ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise); - } - } - ctx.closePath(); -} -var SectorShape = function() { - function SectorShape2() { - this.cx = 0; - this.cy = 0; - this.r0 = 0; - this.r = 0; - this.startAngle = 0; - this.endAngle = Math.PI * 2; - this.clockwise = true; - this.cornerRadius = 0; - } - return SectorShape2; -}(); -var Sector = function(_super) { - __extends(Sector2, _super); - function Sector2(opts) { - return _super.call(this, opts) || this; - } - Sector2.prototype.getDefaultShape = function() { - return new SectorShape(); - }; - Sector2.prototype.buildPath = function(ctx, shape) { - buildPath$1(ctx, shape); - }; - Sector2.prototype.isZeroArea = function() { - return this.shape.startAngle === this.shape.endAngle || this.shape.r === this.shape.r0; - }; - return Sector2; -}(Path); -Sector.prototype.type = "sector"; -const Sector$1 = Sector; -var RingShape = function() { - function RingShape2() { - this.cx = 0; - this.cy = 0; - this.r = 0; - this.r0 = 0; - } - return RingShape2; -}(); -var Ring = function(_super) { - __extends(Ring2, _super); - function Ring2(opts) { - return _super.call(this, opts) || this; - } - Ring2.prototype.getDefaultShape = function() { - return new RingShape(); - }; - Ring2.prototype.buildPath = function(ctx, shape) { - var x = shape.cx; - var y = shape.cy; - var PI22 = Math.PI * 2; - ctx.moveTo(x + shape.r, y); - ctx.arc(x, y, shape.r, 0, PI22, false); - ctx.moveTo(x + shape.r0, y); - ctx.arc(x, y, shape.r0, 0, PI22, true); - }; - return Ring2; -}(Path); -Ring.prototype.type = "ring"; -const Ring$1 = Ring; -function smoothBezier(points2, smooth, isLoop, constraint) { - var cps = []; - var v = []; - var v1 = []; - var v2 = []; - var prevPoint; - var nextPoint; - var min$1; - var max$1; - if (constraint) { - min$1 = [Infinity, Infinity]; - max$1 = [-Infinity, -Infinity]; - for (var i = 0, len = points2.length; i < len; i++) { - min(min$1, min$1, points2[i]); - max(max$1, max$1, points2[i]); - } - min(min$1, min$1, constraint[0]); - max(max$1, max$1, constraint[1]); - } - for (var i = 0, len = points2.length; i < len; i++) { - var point = points2[i]; - if (isLoop) { - prevPoint = points2[i ? i - 1 : len - 1]; - nextPoint = points2[(i + 1) % len]; - } else { - if (i === 0 || i === len - 1) { - cps.push(clone(points2[i])); - continue; - } else { - prevPoint = points2[i - 1]; - nextPoint = points2[i + 1]; - } - } - sub(v, nextPoint, prevPoint); - scale$1(v, v, smooth); - var d0 = distance(point, prevPoint); - var d1 = distance(point, nextPoint); - var sum = d0 + d1; - if (sum !== 0) { - d0 /= sum; - d1 /= sum; - } - scale$1(v1, v, -d0); - scale$1(v2, v, d1); - var cp0 = add([], point, v1); - var cp1 = add([], point, v2); - if (constraint) { - max(cp0, cp0, min$1); - min(cp0, cp0, max$1); - max(cp1, cp1, min$1); - min(cp1, cp1, max$1); - } - cps.push(cp0); - cps.push(cp1); - } - if (isLoop) { - cps.push(cps.shift()); - } - return cps; -} -function buildPath(ctx, shape, closePath) { - var smooth = shape.smooth; - var points2 = shape.points; - if (points2 && points2.length >= 2) { - if (smooth) { - var controlPoints = smoothBezier(points2, smooth, closePath, shape.smoothConstraint); - ctx.moveTo(points2[0][0], points2[0][1]); - var len = points2.length; - for (var i = 0; i < (closePath ? len : len - 1); i++) { - var cp1 = controlPoints[i * 2]; - var cp2 = controlPoints[i * 2 + 1]; - var p = points2[(i + 1) % len]; - ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); - } - } else { - ctx.moveTo(points2[0][0], points2[0][1]); - for (var i = 1, l = points2.length; i < l; i++) { - ctx.lineTo(points2[i][0], points2[i][1]); - } - } - closePath && ctx.closePath(); - } -} -var PolygonShape = function() { - function PolygonShape2() { - this.points = null; - this.smooth = 0; - this.smoothConstraint = null; - } - return PolygonShape2; -}(); -var Polygon = function(_super) { - __extends(Polygon2, _super); - function Polygon2(opts) { - return _super.call(this, opts) || this; - } - Polygon2.prototype.getDefaultShape = function() { - return new PolygonShape(); - }; - Polygon2.prototype.buildPath = function(ctx, shape) { - buildPath(ctx, shape, true); - }; - return Polygon2; -}(Path); -Polygon.prototype.type = "polygon"; -const Polygon$1 = Polygon; -var PolylineShape = function() { - function PolylineShape2() { - this.points = null; - this.percent = 1; - this.smooth = 0; - this.smoothConstraint = null; - } - return PolylineShape2; -}(); -var Polyline = function(_super) { - __extends(Polyline2, _super); - function Polyline2(opts) { - return _super.call(this, opts) || this; - } - Polyline2.prototype.getDefaultStyle = function() { - return { - stroke: "#000", - fill: null - }; - }; - Polyline2.prototype.getDefaultShape = function() { - return new PolylineShape(); - }; - Polyline2.prototype.buildPath = function(ctx, shape) { - buildPath(ctx, shape, false); - }; - return Polyline2; -}(Path); -Polyline.prototype.type = "polyline"; -const Polyline$1 = Polyline; -var subPixelOptimizeOutputShape = {}; -var LineShape = function() { - function LineShape2() { - this.x1 = 0; - this.y1 = 0; - this.x2 = 0; - this.y2 = 0; - this.percent = 1; - } - return LineShape2; -}(); -var Line = function(_super) { - __extends(Line2, _super); - function Line2(opts) { - return _super.call(this, opts) || this; - } - Line2.prototype.getDefaultStyle = function() { - return { - stroke: "#000", - fill: null - }; - }; - Line2.prototype.getDefaultShape = function() { - return new LineShape(); - }; - Line2.prototype.buildPath = function(ctx, shape) { - var x1; - var y1; - var x2; - var y2; - if (this.subPixelOptimize) { - var optimizedShape = subPixelOptimizeLine$1(subPixelOptimizeOutputShape, shape, this.style); - x1 = optimizedShape.x1; - y1 = optimizedShape.y1; - x2 = optimizedShape.x2; - y2 = optimizedShape.y2; - } else { - x1 = shape.x1; - y1 = shape.y1; - x2 = shape.x2; - y2 = shape.y2; - } - var percent = shape.percent; - if (percent === 0) { - return; - } - ctx.moveTo(x1, y1); - if (percent < 1) { - x2 = x1 * (1 - percent) + x2 * percent; - y2 = y1 * (1 - percent) + y2 * percent; - } - ctx.lineTo(x2, y2); - }; - Line2.prototype.pointAt = function(p) { - var shape = this.shape; - return [ - shape.x1 * (1 - p) + shape.x2 * p, - shape.y1 * (1 - p) + shape.y2 * p - ]; - }; - return Line2; -}(Path); -Line.prototype.type = "line"; -const Line$1 = Line; -var out = []; -var BezierCurveShape = function() { - function BezierCurveShape2() { - this.x1 = 0; - this.y1 = 0; - this.x2 = 0; - this.y2 = 0; - this.cpx1 = 0; - this.cpy1 = 0; - this.percent = 1; - } - return BezierCurveShape2; -}(); -function someVectorAt(shape, t, isTangent) { - var cpx2 = shape.cpx2; - var cpy2 = shape.cpy2; - if (cpx2 != null || cpy2 != null) { - return [ - (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t), - (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t) - ]; - } else { - return [ - (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t), - (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t) - ]; - } -} -var BezierCurve = function(_super) { - __extends(BezierCurve2, _super); - function BezierCurve2(opts) { - return _super.call(this, opts) || this; - } - BezierCurve2.prototype.getDefaultStyle = function() { - return { - stroke: "#000", - fill: null - }; - }; - BezierCurve2.prototype.getDefaultShape = function() { - return new BezierCurveShape(); - }; - BezierCurve2.prototype.buildPath = function(ctx, shape) { - var x1 = shape.x1; - var y1 = shape.y1; - var x2 = shape.x2; - var y2 = shape.y2; - var cpx1 = shape.cpx1; - var cpy1 = shape.cpy1; - var cpx2 = shape.cpx2; - var cpy2 = shape.cpy2; - var percent = shape.percent; - if (percent === 0) { - return; - } - ctx.moveTo(x1, y1); - if (cpx2 == null || cpy2 == null) { - if (percent < 1) { - quadraticSubdivide(x1, cpx1, x2, percent, out); - cpx1 = out[1]; - x2 = out[2]; - quadraticSubdivide(y1, cpy1, y2, percent, out); - cpy1 = out[1]; - y2 = out[2]; - } - ctx.quadraticCurveTo(cpx1, cpy1, x2, y2); - } else { - if (percent < 1) { - cubicSubdivide(x1, cpx1, cpx2, x2, percent, out); - cpx1 = out[1]; - cpx2 = out[2]; - x2 = out[3]; - cubicSubdivide(y1, cpy1, cpy2, y2, percent, out); - cpy1 = out[1]; - cpy2 = out[2]; - y2 = out[3]; - } - ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2); - } - }; - BezierCurve2.prototype.pointAt = function(t) { - return someVectorAt(this.shape, t, false); - }; - BezierCurve2.prototype.tangentAt = function(t) { - var p = someVectorAt(this.shape, t, true); - return normalize$1(p, p); - }; - return BezierCurve2; -}(Path); -BezierCurve.prototype.type = "bezier-curve"; -const BezierCurve$1 = BezierCurve; -var ArcShape = function() { - function ArcShape2() { - this.cx = 0; - this.cy = 0; - this.r = 0; - this.startAngle = 0; - this.endAngle = Math.PI * 2; - this.clockwise = true; - } - return ArcShape2; -}(); -var Arc = function(_super) { - __extends(Arc2, _super); - function Arc2(opts) { - return _super.call(this, opts) || this; - } - Arc2.prototype.getDefaultStyle = function() { - return { - stroke: "#000", - fill: null - }; - }; - Arc2.prototype.getDefaultShape = function() { - return new ArcShape(); - }; - Arc2.prototype.buildPath = function(ctx, shape) { - var x = shape.cx; - var y = shape.cy; - var r = Math.max(shape.r, 0); - var startAngle = shape.startAngle; - var endAngle = shape.endAngle; - var clockwise = shape.clockwise; - var unitX = Math.cos(startAngle); - var unitY = Math.sin(startAngle); - ctx.moveTo(unitX * r + x, unitY * r + y); - ctx.arc(x, y, r, startAngle, endAngle, !clockwise); - }; - return Arc2; -}(Path); -Arc.prototype.type = "arc"; -const Arc$1 = Arc; -var Gradient = function() { - function Gradient2(colorStops) { - this.colorStops = colorStops || []; - } - Gradient2.prototype.addColorStop = function(offset, color) { - this.colorStops.push({ - offset, - color - }); - }; - return Gradient2; -}(); -const Gradient$1 = Gradient; -var LinearGradient = function(_super) { - __extends(LinearGradient2, _super); - function LinearGradient2(x, y, x2, y2, colorStops, globalCoord) { - var _this = _super.call(this, colorStops) || this; - _this.x = x == null ? 0 : x; - _this.y = y == null ? 0 : y; - _this.x2 = x2 == null ? 1 : x2; - _this.y2 = y2 == null ? 0 : y2; - _this.type = "linear"; - _this.global = globalCoord || false; - return _this; - } - return LinearGradient2; -}(Gradient$1); -const LinearGradient$1 = LinearGradient; -var RadialGradient = function(_super) { - __extends(RadialGradient2, _super); - function RadialGradient2(x, y, r, colorStops, globalCoord) { - var _this = _super.call(this, colorStops) || this; - _this.x = x == null ? 0.5 : x; - _this.y = y == null ? 0.5 : y; - _this.r = r == null ? 0.5 : r; - _this.type = "radial"; - _this.global = globalCoord || false; - return _this; - } - return RadialGradient2; -}(Gradient$1); -const RadialGradient$1 = RadialGradient; -var extent = [0, 0]; -var extent2 = [0, 0]; -var minTv = new Point(); -var maxTv = new Point(); -var OrientedBoundingRect = function() { - function OrientedBoundingRect2(rect, transform) { - this._corners = []; - this._axes = []; - this._origin = [0, 0]; - for (var i = 0; i < 4; i++) { - this._corners[i] = new Point(); - } - for (var i = 0; i < 2; i++) { - this._axes[i] = new Point(); - } - if (rect) { - this.fromBoundingRect(rect, transform); - } - } - OrientedBoundingRect2.prototype.fromBoundingRect = function(rect, transform) { - var corners = this._corners; - var axes = this._axes; - var x = rect.x; - var y = rect.y; - var x2 = x + rect.width; - var y2 = y + rect.height; - corners[0].set(x, y); - corners[1].set(x2, y); - corners[2].set(x2, y2); - corners[3].set(x, y2); - if (transform) { - for (var i = 0; i < 4; i++) { - corners[i].transform(transform); - } - } - Point.sub(axes[0], corners[1], corners[0]); - Point.sub(axes[1], corners[3], corners[0]); - axes[0].normalize(); - axes[1].normalize(); - for (var i = 0; i < 2; i++) { - this._origin[i] = axes[i].dot(corners[0]); - } - }; - OrientedBoundingRect2.prototype.intersect = function(other, mtv) { - var overlapped = true; - var noMtv = !mtv; - minTv.set(Infinity, Infinity); - maxTv.set(0, 0); - if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) { - overlapped = false; - if (noMtv) { - return overlapped; - } - } - if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) { - overlapped = false; - if (noMtv) { - return overlapped; - } - } - if (!noMtv) { - Point.copy(mtv, overlapped ? minTv : maxTv); - } - return overlapped; - }; - OrientedBoundingRect2.prototype._intersectCheckOneSide = function(self, other, minTv2, maxTv2, noMtv, inverse) { - var overlapped = true; - for (var i = 0; i < 2; i++) { - var axis = this._axes[i]; - this._getProjMinMaxOnAxis(i, self._corners, extent); - this._getProjMinMaxOnAxis(i, other._corners, extent2); - if (extent[1] < extent2[0] || extent[0] > extent2[1]) { - overlapped = false; - if (noMtv) { - return overlapped; - } - var dist0 = Math.abs(extent2[0] - extent[1]); - var dist1 = Math.abs(extent[0] - extent2[1]); - if (Math.min(dist0, dist1) > maxTv2.len()) { - if (dist0 < dist1) { - Point.scale(maxTv2, axis, -dist0 * inverse); - } else { - Point.scale(maxTv2, axis, dist1 * inverse); - } - } - } else if (minTv2) { - var dist0 = Math.abs(extent2[0] - extent[1]); - var dist1 = Math.abs(extent[0] - extent2[1]); - if (Math.min(dist0, dist1) < minTv2.len()) { - if (dist0 < dist1) { - Point.scale(minTv2, axis, dist0 * inverse); - } else { - Point.scale(minTv2, axis, -dist1 * inverse); - } - } - } - } - return overlapped; - }; - OrientedBoundingRect2.prototype._getProjMinMaxOnAxis = function(dim, corners, out2) { - var axis = this._axes[dim]; - var origin = this._origin; - var proj = corners[0].dot(axis) + origin[dim]; - var min2 = proj; - var max2 = proj; - for (var i = 1; i < corners.length; i++) { - var proj_1 = corners[i].dot(axis) + origin[dim]; - min2 = Math.min(proj_1, min2); - max2 = Math.max(proj_1, max2); - } - out2[0] = min2; - out2[1] = max2; - }; - return OrientedBoundingRect2; -}(); -const OrientedBoundingRect$1 = OrientedBoundingRect; -var m = []; -var IncrementalDisplayable = function(_super) { - __extends(IncrementalDisplayable2, _super); - function IncrementalDisplayable2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.notClear = true; - _this.incremental = true; - _this._displayables = []; - _this._temporaryDisplayables = []; - _this._cursor = 0; - return _this; - } - IncrementalDisplayable2.prototype.traverse = function(cb, context) { - cb.call(context, this); - }; - IncrementalDisplayable2.prototype.useStyle = function() { - this.style = {}; - }; - IncrementalDisplayable2.prototype.getCursor = function() { - return this._cursor; - }; - IncrementalDisplayable2.prototype.innerAfterBrush = function() { - this._cursor = this._displayables.length; - }; - IncrementalDisplayable2.prototype.clearDisplaybles = function() { - this._displayables = []; - this._temporaryDisplayables = []; - this._cursor = 0; - this.markRedraw(); - this.notClear = false; - }; - IncrementalDisplayable2.prototype.clearTemporalDisplayables = function() { - this._temporaryDisplayables = []; - }; - IncrementalDisplayable2.prototype.addDisplayable = function(displayable, notPersistent) { - if (notPersistent) { - this._temporaryDisplayables.push(displayable); - } else { - this._displayables.push(displayable); - } - this.markRedraw(); - }; - IncrementalDisplayable2.prototype.addDisplayables = function(displayables, notPersistent) { - notPersistent = notPersistent || false; - for (var i = 0; i < displayables.length; i++) { - this.addDisplayable(displayables[i], notPersistent); - } - }; - IncrementalDisplayable2.prototype.getDisplayables = function() { - return this._displayables; - }; - IncrementalDisplayable2.prototype.getTemporalDisplayables = function() { - return this._temporaryDisplayables; - }; - IncrementalDisplayable2.prototype.eachPendingDisplayable = function(cb) { - for (var i = this._cursor; i < this._displayables.length; i++) { - cb && cb(this._displayables[i]); - } - for (var i = 0; i < this._temporaryDisplayables.length; i++) { - cb && cb(this._temporaryDisplayables[i]); - } - }; - IncrementalDisplayable2.prototype.update = function() { - this.updateTransform(); - for (var i = this._cursor; i < this._displayables.length; i++) { - var displayable = this._displayables[i]; - displayable.parent = this; - displayable.update(); - displayable.parent = null; - } - for (var i = 0; i < this._temporaryDisplayables.length; i++) { - var displayable = this._temporaryDisplayables[i]; - displayable.parent = this; - displayable.update(); - displayable.parent = null; - } - }; - IncrementalDisplayable2.prototype.getBoundingRect = function() { - if (!this._rect) { - var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity); - for (var i = 0; i < this._displayables.length; i++) { - var displayable = this._displayables[i]; - var childRect = displayable.getBoundingRect().clone(); - if (displayable.needLocalTransform()) { - childRect.applyTransform(displayable.getLocalTransform(m)); - } - rect.union(childRect); - } - this._rect = rect; - } - return this._rect; - }; - IncrementalDisplayable2.prototype.contain = function(x, y) { - var localPos = this.transformCoordToLocal(x, y); - var rect = this.getBoundingRect(); - if (rect.contain(localPos[0], localPos[1])) { - for (var i = 0; i < this._displayables.length; i++) { - var displayable = this._displayables[i]; - if (displayable.contain(x, y)) { - return true; - } - } - } - return false; - }; - return IncrementalDisplayable2; -}(Displayable); -const IncrementalDisplayable$1 = IncrementalDisplayable; -var transitionStore = makeInner(); -function getAnimationConfig(animationType, animatableModel, dataIndex, extraOpts, extraDelayParams) { - var animationPayload; - if (animatableModel && animatableModel.ecModel) { - var updatePayload = animatableModel.ecModel.getUpdatePayload(); - animationPayload = updatePayload && updatePayload.animation; - } - var animationEnabled = animatableModel && animatableModel.isAnimationEnabled(); - var isUpdate = animationType === "update"; - if (animationEnabled) { - var duration = void 0; - var easing = void 0; - var delay = void 0; - if (extraOpts) { - duration = retrieve2(extraOpts.duration, 200); - easing = retrieve2(extraOpts.easing, "cubicOut"); - delay = 0; - } else { - duration = animatableModel.getShallow(isUpdate ? "animationDurationUpdate" : "animationDuration"); - easing = animatableModel.getShallow(isUpdate ? "animationEasingUpdate" : "animationEasing"); - delay = animatableModel.getShallow(isUpdate ? "animationDelayUpdate" : "animationDelay"); - } - if (animationPayload) { - animationPayload.duration != null && (duration = animationPayload.duration); - animationPayload.easing != null && (easing = animationPayload.easing); - animationPayload.delay != null && (delay = animationPayload.delay); - } - if (isFunction(delay)) { - delay = delay(dataIndex, extraDelayParams); - } - if (isFunction(duration)) { - duration = duration(dataIndex); - } - var config = { - duration: duration || 0, - delay, - easing - }; - return config; - } else { - return null; - } -} -function animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) { - var isFrom = false; - var removeOpt; - if (isFunction(dataIndex)) { - during = cb; - cb = dataIndex; - dataIndex = null; - } else if (isObject$2(dataIndex)) { - cb = dataIndex.cb; - during = dataIndex.during; - isFrom = dataIndex.isFrom; - removeOpt = dataIndex.removeOpt; - dataIndex = dataIndex.dataIndex; - } - var isRemove = animationType === "leave"; - if (!isRemove) { - el.stopAnimation("leave"); - } - var animationConfig = getAnimationConfig(animationType, animatableModel, dataIndex, isRemove ? removeOpt || {} : null, animatableModel && animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null); - if (animationConfig && animationConfig.duration > 0) { - var duration = animationConfig.duration; - var animationDelay = animationConfig.delay; - var animationEasing = animationConfig.easing; - var animateConfig = { - duration, - delay: animationDelay || 0, - easing: animationEasing, - done: cb, - force: !!cb || !!during, - // Set to final state in update/init animation. - // So the post processing based on the path shape can be done correctly. - setToFinal: !isRemove, - scope: animationType, - during - }; - isFrom ? el.animateFrom(props, animateConfig) : el.animateTo(props, animateConfig); - } else { - el.stopAnimation(); - !isFrom && el.attr(props); - during && during(1); - cb && cb(); - } -} -function updateProps(el, props, animatableModel, dataIndex, cb, during) { - animateOrSetProps("update", el, props, animatableModel, dataIndex, cb, during); -} -function initProps(el, props, animatableModel, dataIndex, cb, during) { - animateOrSetProps("enter", el, props, animatableModel, dataIndex, cb, during); -} -function isElementRemoved(el) { - if (!el.__zr) { - return true; - } - for (var i = 0; i < el.animators.length; i++) { - var animator = el.animators[i]; - if (animator.scope === "leave") { - return true; - } - } - return false; -} -function removeElement(el, props, animatableModel, dataIndex, cb, during) { - if (isElementRemoved(el)) { - return; - } - animateOrSetProps("leave", el, props, animatableModel, dataIndex, cb, during); -} -function fadeOutDisplayable(el, animatableModel, dataIndex, done) { - el.removeTextContent(); - el.removeTextGuideLine(); - removeElement(el, { - style: { - opacity: 0 - } - }, animatableModel, dataIndex, done); -} -function removeElementWithFadeOut(el, animatableModel, dataIndex) { - function doRemove() { - el.parent && el.parent.remove(el); - } - if (!el.isGroup) { - fadeOutDisplayable(el, animatableModel, dataIndex, doRemove); - } else { - el.traverse(function(disp) { - if (!disp.isGroup) { - fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove); - } - }); - } -} -function saveOldStyle(el) { - transitionStore(el).oldStyle = el.style; -} -var mathMax = Math.max; -var mathMin = Math.min; -var _customShapeMap = {}; -function extendShape(opts) { - return Path.extend(opts); -} -var extendPathFromString = extendFromString; -function extendPath(pathData, opts) { - return extendPathFromString(pathData, opts); -} -function registerShape(name, ShapeClass) { - _customShapeMap[name] = ShapeClass; -} -function getShapeClass(name) { - if (_customShapeMap.hasOwnProperty(name)) { - return _customShapeMap[name]; - } -} -function makePath(pathData, opts, rect, layout2) { - var path = createFromString(pathData, opts); - if (rect) { - if (layout2 === "center") { - rect = centerGraphic(rect, path.getBoundingRect()); - } - resizePath(path, rect); - } - return path; -} -function makeImage(imageUrl, rect, layout2) { - var zrImg = new ZRImage({ - style: { - image: imageUrl, - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height - }, - onload: function(img) { - if (layout2 === "center") { - var boundingRect = { - width: img.width, - height: img.height - }; - zrImg.setStyle(centerGraphic(rect, boundingRect)); - } - } - }); - return zrImg; -} -function centerGraphic(rect, boundingRect) { - var aspect = boundingRect.width / boundingRect.height; - var width = rect.height * aspect; - var height; - if (width <= rect.width) { - height = rect.height; - } else { - width = rect.width; - height = width / aspect; - } - var cx = rect.x + rect.width / 2; - var cy = rect.y + rect.height / 2; - return { - x: cx - width / 2, - y: cy - height / 2, - width, - height - }; -} -var mergePath = mergePath$1; -function resizePath(path, rect) { - if (!path.applyTransform) { - return; - } - var pathRect = path.getBoundingRect(); - var m2 = pathRect.calculateTransform(rect); - path.applyTransform(m2); -} -function subPixelOptimizeLine(shape, lineWidth) { - subPixelOptimizeLine$1(shape, shape, { - lineWidth - }); - return shape; -} -function subPixelOptimizeRect(param) { - subPixelOptimizeRect$1(param.shape, param.shape, param.style); - return param; -} -var subPixelOptimize = subPixelOptimize$1; -function getTransform(target, ancestor) { - var mat = identity([]); - while (target && target !== ancestor) { - mul(mat, target.getLocalTransform(), mat); - target = target.parent; - } - return mat; -} -function applyTransform(target, transform, invert$1) { - if (transform && !isArrayLike(transform)) { - transform = Transformable.getLocalTransform(transform); - } - if (invert$1) { - transform = invert([], transform); - } - return applyTransform$1([], target, transform); -} -function transformDirection(direction, transform, invert2) { - var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]); - var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]); - var vertex = [direction === "left" ? -hBase : direction === "right" ? hBase : 0, direction === "top" ? -vBase : direction === "bottom" ? vBase : 0]; - vertex = applyTransform(vertex, transform, invert2); - return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? "right" : "left" : vertex[1] > 0 ? "bottom" : "top"; -} -function isNotGroup(el) { - return !el.isGroup; -} -function isPath(el) { - return el.shape != null; -} -function groupTransition(g1, g2, animatableModel) { - if (!g1 || !g2) { - return; - } - function getElMap(g) { - var elMap = {}; - g.traverse(function(el) { - if (isNotGroup(el) && el.anid) { - elMap[el.anid] = el; - } - }); - return elMap; - } - function getAnimatableProps(el) { - var obj = { - x: el.x, - y: el.y, - rotation: el.rotation - }; - if (isPath(el)) { - obj.shape = extend({}, el.shape); - } - return obj; - } - var elMap1 = getElMap(g1); - g2.traverse(function(el) { - if (isNotGroup(el) && el.anid) { - var oldEl = elMap1[el.anid]; - if (oldEl) { - var newProp = getAnimatableProps(el); - el.attr(getAnimatableProps(oldEl)); - updateProps(el, newProp, animatableModel, getECData(el).dataIndex); - } - } - }); -} -function clipPointsByRect(points2, rect) { - return map$1(points2, function(point) { - var x = point[0]; - x = mathMax(x, rect.x); - x = mathMin(x, rect.x + rect.width); - var y = point[1]; - y = mathMax(y, rect.y); - y = mathMin(y, rect.y + rect.height); - return [x, y]; - }); -} -function clipRectByRect(targetRect, rect) { - var x = mathMax(targetRect.x, rect.x); - var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width); - var y = mathMax(targetRect.y, rect.y); - var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height); - if (x2 >= x && y2 >= y) { - return { - x, - y, - width: x2 - x, - height: y2 - y - }; - } -} -function createIcon(iconStr, opt, rect) { - var innerOpts = extend({ - rectHover: true - }, opt); - var style = innerOpts.style = { - strokeNoScale: true - }; - rect = rect || { - x: -1, - y: -1, - width: 2, - height: 2 - }; - if (iconStr) { - return iconStr.indexOf("image://") === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace("path://", ""), innerOpts, rect, "center"); - } -} -function linePolygonIntersect(a1x, a1y, a2x, a2y, points2) { - for (var i = 0, p2 = points2[points2.length - 1]; i < points2.length; i++) { - var p = points2[i]; - if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) { - return true; - } - p2 = p; - } -} -function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) { - var mx = a2x - a1x; - var my = a2y - a1y; - var nx = b2x - b1x; - var ny = b2y - b1y; - var nmCrossProduct = crossProduct2d(nx, ny, mx, my); - if (nearZero(nmCrossProduct)) { - return false; - } - var b1a1x = a1x - b1x; - var b1a1y = a1y - b1y; - var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct; - if (q < 0 || q > 1) { - return false; - } - var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct; - if (p < 0 || p > 1) { - return false; - } - return true; -} -function crossProduct2d(x1, y1, x2, y2) { - return x1 * y2 - x2 * y1; -} -function nearZero(val) { - return val <= 1e-6 && val >= -1e-6; -} -function setTooltipConfig(opt) { - var itemTooltipOption = opt.itemTooltipOption; - var componentModel = opt.componentModel; - var itemName = opt.itemName; - var itemTooltipOptionObj = isString(itemTooltipOption) ? { - formatter: itemTooltipOption - } : itemTooltipOption; - var mainType = componentModel.mainType; - var componentIndex = componentModel.componentIndex; - var formatterParams = { - componentType: mainType, - name: itemName, - $vars: ["name"] - }; - formatterParams[mainType + "Index"] = componentIndex; - var formatterParamsExtra = opt.formatterParamsExtra; - if (formatterParamsExtra) { - each$2(keys(formatterParamsExtra), function(key) { - if (!hasOwn(formatterParams, key)) { - formatterParams[key] = formatterParamsExtra[key]; - formatterParams.$vars.push(key); - } - }); - } - var ecData = getECData(opt.el); - ecData.componentMainType = mainType; - ecData.componentIndex = componentIndex; - ecData.tooltipConfig = { - name: itemName, - option: defaults({ - content: itemName, - formatterParams - }, itemTooltipOptionObj) - }; -} -function traverseElement(el, cb) { - var stopped; - if (el.isGroup) { - stopped = cb(el); - } - if (!stopped) { - el.traverse(cb); - } -} -function traverseElements(els, cb) { - if (els) { - if (isArray(els)) { - for (var i = 0; i < els.length; i++) { - traverseElement(els[i], cb); - } - } else { - traverseElement(els, cb); - } - } -} -registerShape("circle", Circle$1); -registerShape("ellipse", Ellipse$1); -registerShape("sector", Sector$1); -registerShape("ring", Ring$1); -registerShape("polygon", Polygon$1); -registerShape("polyline", Polyline$1); -registerShape("rect", Rect); -registerShape("line", Line$1); -registerShape("bezierCurve", BezierCurve$1); -registerShape("arc", Arc$1); -const graphic = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - Arc: Arc$1, - BezierCurve: BezierCurve$1, - BoundingRect, - Circle: Circle$1, - CompoundPath, - Ellipse: Ellipse$1, - Group: Group$1, - Image: ZRImage, - IncrementalDisplayable: IncrementalDisplayable$1, - Line: Line$1, - LinearGradient: LinearGradient$1, - OrientedBoundingRect: OrientedBoundingRect$1, - Path, - Point, - Polygon: Polygon$1, - Polyline: Polyline$1, - RadialGradient: RadialGradient$1, - Rect, - Ring: Ring$1, - Sector: Sector$1, - Text: ZRText, - applyTransform, - clipPointsByRect, - clipRectByRect, - createIcon, - extendPath, - extendShape, - getShapeClass, - getTransform, - groupTransition, - initProps, - isElementRemoved, - lineLineIntersect, - linePolygonIntersect, - makeImage, - makePath, - mergePath, - registerShape, - removeElement, - removeElementWithFadeOut, - resizePath, - setTooltipConfig, - subPixelOptimize, - subPixelOptimizeLine, - subPixelOptimizeRect, - transformDirection, - traverseElements, - updateProps -}, Symbol.toStringTag, { value: "Module" })); -var EMPTY_OBJ = {}; -function setLabelText(label, labelTexts) { - for (var i = 0; i < SPECIAL_STATES.length; i++) { - var stateName = SPECIAL_STATES[i]; - var text = labelTexts[stateName]; - var state = label.ensureState(stateName); - state.style = state.style || {}; - state.style.text = text; - } - var oldStates = label.currentStates.slice(); - label.clearStates(true); - label.setStyle({ - text: labelTexts.normal - }); - label.useStates(oldStates, true); -} -function getLabelText(opt, stateModels, interpolatedValue) { - var labelFetcher = opt.labelFetcher; - var labelDataIndex = opt.labelDataIndex; - var labelDimIndex = opt.labelDimIndex; - var normalModel = stateModels.normal; - var baseText; - if (labelFetcher) { - baseText = labelFetcher.getFormattedLabel(labelDataIndex, "normal", null, labelDimIndex, normalModel && normalModel.get("formatter"), interpolatedValue != null ? { - interpolatedValue - } : null); - } - if (baseText == null) { - baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText; - } - var statesText = { - normal: baseText - }; - for (var i = 0; i < SPECIAL_STATES.length; i++) { - var stateName = SPECIAL_STATES[i]; - var stateModel = stateModels[stateName]; - statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get("formatter")) : null, baseText); - } - return statesText; -} -function setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) { - opt = opt || EMPTY_OBJ; - var isSetOnText = targetEl instanceof ZRText; - var needsCreateText = false; - for (var i = 0; i < DISPLAY_STATES.length; i++) { - var stateModel = labelStatesModels[DISPLAY_STATES[i]]; - if (stateModel && stateModel.getShallow("show")) { - needsCreateText = true; - break; - } - } - var textContent = isSetOnText ? targetEl : targetEl.getTextContent(); - if (needsCreateText) { - if (!isSetOnText) { - if (!textContent) { - textContent = new ZRText(); - targetEl.setTextContent(textContent); - } - if (targetEl.stateProxy) { - textContent.stateProxy = targetEl.stateProxy; - } - } - var labelStatesTexts = getLabelText(opt, labelStatesModels); - var normalModel = labelStatesModels.normal; - var showNormal = !!normalModel.getShallow("show"); - var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText); - normalStyle.text = labelStatesTexts.normal; - if (!isSetOnText) { - targetEl.setTextConfig(createTextConfig(normalModel, opt, false)); - } - for (var i = 0; i < SPECIAL_STATES.length; i++) { - var stateName = SPECIAL_STATES[i]; - var stateModel = labelStatesModels[stateName]; - if (stateModel) { - var stateObj = textContent.ensureState(stateName); - var stateShow = !!retrieve2(stateModel.getShallow("show"), showNormal); - if (stateShow !== showNormal) { - stateObj.ignore = !stateShow; - } - stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText); - stateObj.style.text = labelStatesTexts[stateName]; - if (!isSetOnText) { - var targetElEmphasisState = targetEl.ensureState(stateName); - targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true); - } - } - } - textContent.silent = !!normalModel.getShallow("silent"); - if (textContent.style.x != null) { - normalStyle.x = textContent.style.x; - } - if (textContent.style.y != null) { - normalStyle.y = textContent.style.y; - } - textContent.ignore = !showNormal; - textContent.useStyle(normalStyle); - textContent.dirty(); - if (opt.enableTextSetter) { - labelInner(textContent).setLabelText = function(interpolatedValue) { - var labelStatesTexts2 = getLabelText(opt, labelStatesModels, interpolatedValue); - setLabelText(textContent, labelStatesTexts2); - }; - } - } else if (textContent) { - textContent.ignore = true; - } - targetEl.dirty(); -} -function getLabelStatesModels(itemModel, labelName) { - labelName = labelName || "label"; - var statesModels = { - normal: itemModel.getModel(labelName) - }; - for (var i = 0; i < SPECIAL_STATES.length; i++) { - var stateName = SPECIAL_STATES[i]; - statesModels[stateName] = itemModel.getModel([stateName, labelName]); - } - return statesModels; -} -function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) { - var textStyle = {}; - setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached); - specifiedTextStyle && extend(textStyle, specifiedTextStyle); - return textStyle; -} -function createTextConfig(textStyleModel, opt, isNotNormal) { - opt = opt || {}; - var textConfig = {}; - var labelPosition; - var labelRotate = textStyleModel.getShallow("rotate"); - var labelDistance = retrieve2(textStyleModel.getShallow("distance"), isNotNormal ? null : 5); - var labelOffset = textStyleModel.getShallow("offset"); - labelPosition = textStyleModel.getShallow("position") || (isNotNormal ? null : "inside"); - labelPosition === "outside" && (labelPosition = opt.defaultOutsidePosition || "top"); - if (labelPosition != null) { - textConfig.position = labelPosition; - } - if (labelOffset != null) { - textConfig.offset = labelOffset; - } - if (labelRotate != null) { - labelRotate *= Math.PI / 180; - textConfig.rotation = labelRotate; - } - if (labelDistance != null) { - textConfig.distance = labelDistance; - } - textConfig.outsideFill = textStyleModel.get("color") === "inherit" ? opt.inheritColor || null : "auto"; - return textConfig; -} -function setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) { - opt = opt || EMPTY_OBJ; - var ecModel = textStyleModel.ecModel; - var globalTextStyle = ecModel && ecModel.option.textStyle; - var richItemNames = getRichItemNames(textStyleModel); - var richResult; - if (richItemNames) { - richResult = {}; - for (var name_1 in richItemNames) { - if (richItemNames.hasOwnProperty(name_1)) { - var richTextStyle = textStyleModel.getModel(["rich", name_1]); - setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true); - } - } - } - if (richResult) { - textStyle.rich = richResult; - } - var overflow = textStyleModel.get("overflow"); - if (overflow) { - textStyle.overflow = overflow; - } - var margin = textStyleModel.get("minMargin"); - if (margin != null) { - textStyle.margin = margin; - } - setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false); -} -function getRichItemNames(textStyleModel) { - var richItemNameMap; - while (textStyleModel && textStyleModel !== textStyleModel.ecModel) { - var rich = (textStyleModel.option || EMPTY_OBJ).rich; - if (rich) { - richItemNameMap = richItemNameMap || {}; - var richKeys = keys(rich); - for (var i = 0; i < richKeys.length; i++) { - var richKey = richKeys[i]; - richItemNameMap[richKey] = 1; - } - } - textStyleModel = textStyleModel.parentModel; - } - return richItemNameMap; -} -var TEXT_PROPS_WITH_GLOBAL = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY"]; -var TEXT_PROPS_SELF = ["align", "lineHeight", "width", "height", "tag", "verticalAlign"]; -var TEXT_PROPS_BOX = ["padding", "borderWidth", "borderRadius", "borderDashOffset", "backgroundColor", "borderColor", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"]; -function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) { - globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ; - var inheritColor = opt && opt.inheritColor; - var fillColor = textStyleModel.getShallow("color"); - var strokeColor = textStyleModel.getShallow("textBorderColor"); - var opacity = retrieve2(textStyleModel.getShallow("opacity"), globalTextStyle.opacity); - if (fillColor === "inherit" || fillColor === "auto") { - if (inheritColor) { - fillColor = inheritColor; - } else { - fillColor = null; - } - } - if (strokeColor === "inherit" || strokeColor === "auto") { - if (inheritColor) { - strokeColor = inheritColor; - } else { - strokeColor = null; - } - } - if (!isAttached) { - fillColor = fillColor || globalTextStyle.color; - strokeColor = strokeColor || globalTextStyle.textBorderColor; - } - if (fillColor != null) { - textStyle.fill = fillColor; - } - if (strokeColor != null) { - textStyle.stroke = strokeColor; - } - var textBorderWidth = retrieve2(textStyleModel.getShallow("textBorderWidth"), globalTextStyle.textBorderWidth); - if (textBorderWidth != null) { - textStyle.lineWidth = textBorderWidth; - } - var textBorderType = retrieve2(textStyleModel.getShallow("textBorderType"), globalTextStyle.textBorderType); - if (textBorderType != null) { - textStyle.lineDash = textBorderType; - } - var textBorderDashOffset = retrieve2(textStyleModel.getShallow("textBorderDashOffset"), globalTextStyle.textBorderDashOffset); - if (textBorderDashOffset != null) { - textStyle.lineDashOffset = textBorderDashOffset; - } - if (!isNotNormal && opacity == null && !inRich) { - opacity = opt && opt.defaultOpacity; - } - if (opacity != null) { - textStyle.opacity = opacity; - } - if (!isNotNormal && !isAttached) { - if (textStyle.fill == null && opt.inheritColor) { - textStyle.fill = opt.inheritColor; - } - } - for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) { - var key = TEXT_PROPS_WITH_GLOBAL[i]; - var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]); - if (val != null) { - textStyle[key] = val; - } - } - for (var i = 0; i < TEXT_PROPS_SELF.length; i++) { - var key = TEXT_PROPS_SELF[i]; - var val = textStyleModel.getShallow(key); - if (val != null) { - textStyle[key] = val; - } - } - if (textStyle.verticalAlign == null) { - var baseline = textStyleModel.getShallow("baseline"); - if (baseline != null) { - textStyle.verticalAlign = baseline; - } - } - if (!isBlock || !opt.disableBox) { - for (var i = 0; i < TEXT_PROPS_BOX.length; i++) { - var key = TEXT_PROPS_BOX[i]; - var val = textStyleModel.getShallow(key); - if (val != null) { - textStyle[key] = val; - } - } - var borderType = textStyleModel.getShallow("borderType"); - if (borderType != null) { - textStyle.borderDash = borderType; - } - if ((textStyle.backgroundColor === "auto" || textStyle.backgroundColor === "inherit") && inheritColor) { - textStyle.backgroundColor = inheritColor; - } - if ((textStyle.borderColor === "auto" || textStyle.borderColor === "inherit") && inheritColor) { - textStyle.borderColor = inheritColor; - } - } -} -function getFont(opt, ecModel) { - var gTextStyleModel = ecModel && ecModel.getModel("textStyle"); - return trim([ - // FIXME in node-canvas fontWeight is before fontStyle - opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow("fontStyle") || "", - opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow("fontWeight") || "", - (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow("fontSize") || 12) + "px", - opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow("fontFamily") || "sans-serif" - ].join(" ")); -} -var labelInner = makeInner(); -function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) { - if (!label) { - return; - } - var obj = labelInner(label); - obj.prevValue = obj.value; - obj.value = value; - var normalLabelModel = labelStatesModels.normal; - obj.valueAnimation = normalLabelModel.get("valueAnimation"); - if (obj.valueAnimation) { - obj.precision = normalLabelModel.get("precision"); - obj.defaultInterpolatedText = getDefaultText; - obj.statesModels = labelStatesModels; - } -} -function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) { - var labelInnerStore = labelInner(textEl); - if (!labelInnerStore.valueAnimation || labelInnerStore.prevValue === labelInnerStore.value) { - return; - } - var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText; - var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue); - var targetValue = labelInnerStore.value; - function during(percent) { - var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent); - labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated; - var labelText = getLabelText({ - labelDataIndex: dataIndex, - labelFetcher, - defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + "" - }, labelInnerStore.statesModels, interpolated); - setLabelText(textEl, labelText); - } - textEl.percent = 0; - (labelInnerStore.prevValue == null ? initProps : updateProps)(textEl, { - // percent is used to prevent animation from being aborted #15916 - percent: 1 - }, animatableModel, dataIndex, null, during); -} -var PATH_COLOR = ["textStyle", "color"]; -var textStyleParams = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "padding", "lineHeight", "rich", "width", "height", "overflow"]; -var tmpText = new ZRText(); -var TextStyleMixin = ( - /** @class */ - function() { - function TextStyleMixin2() { - } - TextStyleMixin2.prototype.getTextColor = function(isEmphasis) { - var ecModel = this.ecModel; - return this.getShallow("color") || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null); - }; - TextStyleMixin2.prototype.getFont = function() { - return getFont({ - fontStyle: this.getShallow("fontStyle"), - fontWeight: this.getShallow("fontWeight"), - fontSize: this.getShallow("fontSize"), - fontFamily: this.getShallow("fontFamily") - }, this.ecModel); - }; - TextStyleMixin2.prototype.getTextRect = function(text) { - var style = { - text, - verticalAlign: this.getShallow("verticalAlign") || this.getShallow("baseline") - }; - for (var i = 0; i < textStyleParams.length; i++) { - style[textStyleParams[i]] = this.getShallow(textStyleParams[i]); - } - tmpText.useStyle(style); - tmpText.update(); - return tmpText.getBoundingRect(); - }; - return TextStyleMixin2; - }() -); -const TextStyleMixin$1 = TextStyleMixin; -var LINE_STYLE_KEY_MAP = [ - ["lineWidth", "width"], - ["stroke", "color"], - ["opacity"], - ["shadowBlur"], - ["shadowOffsetX"], - ["shadowOffsetY"], - ["shadowColor"], - ["lineDash", "type"], - ["lineDashOffset", "dashOffset"], - ["lineCap", "cap"], - ["lineJoin", "join"], - ["miterLimit"] - // Option decal is in `DecalObject` but style.decal is in `PatternObject`. - // So do not transfer decal directly. -]; -var getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP); -var LineStyleMixin = ( - /** @class */ - function() { - function LineStyleMixin2() { - } - LineStyleMixin2.prototype.getLineStyle = function(excludes) { - return getLineStyle(this, excludes); - }; - return LineStyleMixin2; - }() -); -var ITEM_STYLE_KEY_MAP = [ - ["fill", "color"], - ["stroke", "borderColor"], - ["lineWidth", "borderWidth"], - ["opacity"], - ["shadowBlur"], - ["shadowOffsetX"], - ["shadowOffsetY"], - ["shadowColor"], - ["lineDash", "borderType"], - ["lineDashOffset", "borderDashOffset"], - ["lineCap", "borderCap"], - ["lineJoin", "borderJoin"], - ["miterLimit", "borderMiterLimit"] - // Option decal is in `DecalObject` but style.decal is in `PatternObject`. - // So do not transfer decal directly. -]; -var getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP); -var ItemStyleMixin = ( - /** @class */ - function() { - function ItemStyleMixin2() { - } - ItemStyleMixin2.prototype.getItemStyle = function(excludes, includes) { - return getItemStyle(this, excludes, includes); - }; - return ItemStyleMixin2; - }() -); -var Model = ( - /** @class */ - function() { - function Model2(option, parentModel, ecModel) { - this.parentModel = parentModel; - this.ecModel = ecModel; - this.option = option; - } - Model2.prototype.init = function(option, parentModel, ecModel) { - }; - Model2.prototype.mergeOption = function(option, ecModel) { - merge(this.option, option, true); - }; - Model2.prototype.get = function(path, ignoreParent) { - if (path == null) { - return this.option; - } - return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel); - }; - Model2.prototype.getShallow = function(key, ignoreParent) { - var option = this.option; - var val = option == null ? option : option[key]; - if (val == null && !ignoreParent) { - var parentModel = this.parentModel; - if (parentModel) { - val = parentModel.getShallow(key); - } - } - return val; - }; - Model2.prototype.getModel = function(path, parentModel) { - var hasPath = path != null; - var pathFinal = hasPath ? this.parsePath(path) : null; - var obj = hasPath ? this._doGet(pathFinal) : this.option; - parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal)); - return new Model2(obj, parentModel, this.ecModel); - }; - Model2.prototype.isEmpty = function() { - return this.option == null; - }; - Model2.prototype.restoreData = function() { - }; - Model2.prototype.clone = function() { - var Ctor = this.constructor; - return new Ctor(clone$1(this.option)); - }; - Model2.prototype.parsePath = function(path) { - if (typeof path === "string") { - return path.split("."); - } - return path; - }; - Model2.prototype.resolveParentPath = function(path) { - return path; - }; - Model2.prototype.isAnimationEnabled = function() { - if (!env.node && this.option) { - if (this.option.animation != null) { - return !!this.option.animation; - } else if (this.parentModel) { - return this.parentModel.isAnimationEnabled(); - } - } - }; - Model2.prototype._doGet = function(pathArr, parentModel) { - var obj = this.option; - if (!pathArr) { - return obj; - } - for (var i = 0; i < pathArr.length; i++) { - if (!pathArr[i]) { - continue; - } - obj = obj && typeof obj === "object" ? obj[pathArr[i]] : null; - if (obj == null) { - break; - } - } - if (obj == null && parentModel) { - obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel); - } - return obj; - }; - return Model2; - }() -); -enableClassExtend(Model); -enableClassCheck(Model); -mixin(Model, LineStyleMixin); -mixin(Model, ItemStyleMixin); -mixin(Model, AreaStyleMixin); -mixin(Model, TextStyleMixin$1); -const Model$1 = Model; -var base = Math.round(Math.random() * 10); -function getUID(type) { - return [type || "", base++].join("_"); -} -function enableSubTypeDefaulter(target) { - var subTypeDefaulters = {}; - target.registerSubTypeDefaulter = function(componentType, defaulter) { - var componentTypeInfo = parseClassType(componentType); - subTypeDefaulters[componentTypeInfo.main] = defaulter; - }; - target.determineSubType = function(componentType, option) { - var type = option.type; - if (!type) { - var componentTypeMain = parseClassType(componentType).main; - if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) { - type = subTypeDefaulters[componentTypeMain](option); - } - } - return type; - }; -} -function enableTopologicalTravel(entity, dependencyGetter) { - entity.topologicalTravel = function(targetNameList, fullNameList, callback, context) { - if (!targetNameList.length) { - return; - } - var result = makeDepndencyGraph(fullNameList); - var graph = result.graph; - var noEntryList = result.noEntryList; - var targetNameSet = {}; - each$2(targetNameList, function(name) { - targetNameSet[name] = true; - }); - while (noEntryList.length) { - var currComponentType = noEntryList.pop(); - var currVertex = graph[currComponentType]; - var isInTargetNameSet = !!targetNameSet[currComponentType]; - if (isInTargetNameSet) { - callback.call(context, currComponentType, currVertex.originalDeps.slice()); - delete targetNameSet[currComponentType]; - } - each$2(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge); - } - each$2(targetNameSet, function() { - var errMsg = ""; - throw new Error(errMsg); - }); - function removeEdge(succComponentType) { - graph[succComponentType].entryCount--; - if (graph[succComponentType].entryCount === 0) { - noEntryList.push(succComponentType); - } - } - function removeEdgeAndAdd(succComponentType) { - targetNameSet[succComponentType] = true; - removeEdge(succComponentType); - } - }; - function makeDepndencyGraph(fullNameList) { - var graph = {}; - var noEntryList = []; - each$2(fullNameList, function(name) { - var thisItem = createDependencyGraphItem(graph, name); - var originalDeps = thisItem.originalDeps = dependencyGetter(name); - var availableDeps = getAvailableDependencies(originalDeps, fullNameList); - thisItem.entryCount = availableDeps.length; - if (thisItem.entryCount === 0) { - noEntryList.push(name); - } - each$2(availableDeps, function(dependentName) { - if (indexOf(thisItem.predecessor, dependentName) < 0) { - thisItem.predecessor.push(dependentName); - } - var thatItem = createDependencyGraphItem(graph, dependentName); - if (indexOf(thatItem.successor, dependentName) < 0) { - thatItem.successor.push(name); - } - }); - }); - return { - graph, - noEntryList - }; - } - function createDependencyGraphItem(graph, name) { - if (!graph[name]) { - graph[name] = { - predecessor: [], - successor: [] - }; - } - return graph[name]; - } - function getAvailableDependencies(originalDeps, fullNameList) { - var availableDeps = []; - each$2(originalDeps, function(dep) { - indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep); - }); - return availableDeps; - } -} -function inheritDefaultOption(superOption, subOption) { - return merge(merge({}, superOption, true), subOption, true); -} -const langEN = { - time: { - month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthAbbr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - dayOfWeekAbbr: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] - }, - legend: { - selector: { - all: "All", - inverse: "Inv" - } - }, - toolbox: { - brush: { - title: { - rect: "Box Select", - polygon: "Lasso Select", - lineX: "Horizontally Select", - lineY: "Vertically Select", - keep: "Keep Selections", - clear: "Clear Selections" - } - }, - dataView: { - title: "Data View", - lang: ["Data View", "Close", "Refresh"] - }, - dataZoom: { - title: { - zoom: "Zoom", - back: "Zoom Reset" - } - }, - magicType: { - title: { - line: "Switch to Line Chart", - bar: "Switch to Bar Chart", - stack: "Stack", - tiled: "Tile" - } - }, - restore: { - title: "Restore" - }, - saveAsImage: { - title: "Save as Image", - lang: ["Right Click to Save Image"] - } - }, - series: { - typeNames: { - pie: "Pie chart", - bar: "Bar chart", - line: "Line chart", - scatter: "Scatter plot", - effectScatter: "Ripple scatter plot", - radar: "Radar chart", - tree: "Tree", - treemap: "Treemap", - boxplot: "Boxplot", - candlestick: "Candlestick", - k: "K line chart", - heatmap: "Heat map", - map: "Map", - parallel: "Parallel coordinate map", - lines: "Line graph", - graph: "Relationship graph", - sankey: "Sankey diagram", - funnel: "Funnel chart", - gauge: "Gauge", - pictorialBar: "Pictorial bar", - themeRiver: "Theme River Map", - sunburst: "Sunburst" - } - }, - aria: { - general: { - withTitle: 'This is a chart about "{title}"', - withoutTitle: "This is a chart" - }, - series: { - single: { - prefix: "", - withName: " with type {seriesType} named {seriesName}.", - withoutName: " with type {seriesType}." - }, - multiple: { - prefix: ". It consists of {seriesCount} series count.", - withName: " The {seriesId} series is a {seriesType} representing {seriesName}.", - withoutName: " The {seriesId} series is a {seriesType}.", - separator: { - middle: "", - end: "" - } - } - }, - data: { - allData: "The data is as follows: ", - partialData: "The first {displayCnt} items are: ", - withName: "the data for {name} is {value}", - withoutName: "{value}", - separator: { - middle: ", ", - end: ". " - } - } - } -}; -const langZH = { - time: { - month: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], - monthAbbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], - dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], - dayOfWeekAbbr: ["日", "一", "二", "三", "四", "五", "六"] - }, - legend: { - selector: { - all: "全选", - inverse: "反选" - } - }, - toolbox: { - brush: { - title: { - rect: "矩形选择", - polygon: "圈选", - lineX: "横向选择", - lineY: "纵向选择", - keep: "保持选择", - clear: "清除选择" - } - }, - dataView: { - title: "数据视图", - lang: ["数据视图", "关闭", "刷新"] - }, - dataZoom: { - title: { - zoom: "区域缩放", - back: "区域缩放还原" - } - }, - magicType: { - title: { - line: "切换为折线图", - bar: "切换为柱状图", - stack: "切换为堆叠", - tiled: "切换为平铺" - } - }, - restore: { - title: "还原" - }, - saveAsImage: { - title: "保存为图片", - lang: ["右键另存为图片"] - } - }, - series: { - typeNames: { - pie: "饼图", - bar: "柱状图", - line: "折线图", - scatter: "散点图", - effectScatter: "涟漪散点图", - radar: "雷达图", - tree: "树图", - treemap: "矩形树图", - boxplot: "箱型图", - candlestick: "K线图", - k: "K线图", - heatmap: "热力图", - map: "地图", - parallel: "平行坐标图", - lines: "线图", - graph: "关系图", - sankey: "桑基图", - funnel: "漏斗图", - gauge: "仪表盘图", - pictorialBar: "象形柱图", - themeRiver: "主题河流图", - sunburst: "旭日图" - } - }, - aria: { - general: { - withTitle: "这是一个关于“{title}”的图表。", - withoutTitle: "这是一个图表," - }, - series: { - single: { - prefix: "", - withName: "图表类型是{seriesType},表示{seriesName}。", - withoutName: "图表类型是{seriesType}。" - }, - multiple: { - prefix: "它由{seriesCount}个图表系列组成。", - withName: "第{seriesId}个系列是一个表示{seriesName}的{seriesType},", - withoutName: "第{seriesId}个系列是一个{seriesType},", - separator: { - middle: ";", - end: "。" - } - } - }, - data: { - allData: "其数据是——", - partialData: "其中,前{displayCnt}项是——", - withName: "{name}的数据是{value}", - withoutName: "{value}", - separator: { - middle: ",", - end: "" - } - } - } -}; -var LOCALE_ZH = "ZH"; -var LOCALE_EN = "EN"; -var DEFAULT_LOCALE = LOCALE_EN; -var localeStorage = {}; -var localeModels = {}; -var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function() { - var langStr = ( - /* eslint-disable-next-line */ - (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase() - ); - return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE; -}(); -function registerLocale(locale, localeObj) { - locale = locale.toUpperCase(); - localeModels[locale] = new Model$1(localeObj); - localeStorage[locale] = localeObj; -} -function createLocaleObject(locale) { - if (isString(locale)) { - var localeObj = localeStorage[locale.toUpperCase()] || {}; - if (locale === LOCALE_ZH || locale === LOCALE_EN) { - return clone$1(localeObj); - } else { - return merge(clone$1(localeObj), clone$1(localeStorage[DEFAULT_LOCALE]), false); - } - } else { - return merge(clone$1(locale), clone$1(localeStorage[DEFAULT_LOCALE]), false); - } -} -function getLocaleModel(lang) { - return localeModels[lang]; -} -function getDefaultLocaleModel() { - return localeModels[DEFAULT_LOCALE]; -} -registerLocale(LOCALE_EN, langEN); -registerLocale(LOCALE_ZH, langZH); -var ONE_SECOND = 1e3; -var ONE_MINUTE = ONE_SECOND * 60; -var ONE_HOUR = ONE_MINUTE * 60; -var ONE_DAY = ONE_HOUR * 24; -var ONE_YEAR = ONE_DAY * 365; -var defaultLeveledFormatter = { - year: "{yyyy}", - month: "{MMM}", - day: "{d}", - hour: "{HH}:{mm}", - minute: "{HH}:{mm}", - second: "{HH}:{mm}:{ss}", - millisecond: "{HH}:{mm}:{ss} {SSS}", - none: "{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}" -}; -var fullDayFormatter = "{yyyy}-{MM}-{dd}"; -var fullLeveledFormatter = { - year: "{yyyy}", - month: "{yyyy}-{MM}", - day: fullDayFormatter, - hour: fullDayFormatter + " " + defaultLeveledFormatter.hour, - minute: fullDayFormatter + " " + defaultLeveledFormatter.minute, - second: fullDayFormatter + " " + defaultLeveledFormatter.second, - millisecond: defaultLeveledFormatter.none -}; -var primaryTimeUnits = ["year", "month", "day", "hour", "minute", "second", "millisecond"]; -var timeUnits = ["year", "half-year", "quarter", "month", "week", "half-week", "day", "half-day", "quarter-day", "hour", "minute", "second", "millisecond"]; -function pad(str, len) { - str += ""; - return "0000".substr(0, len - str.length) + str; -} -function getPrimaryTimeUnit(timeUnit) { - switch (timeUnit) { - case "half-year": - case "quarter": - return "month"; - case "week": - case "half-week": - return "day"; - case "half-day": - case "quarter-day": - return "hour"; - default: - return timeUnit; - } -} -function isPrimaryTimeUnit(timeUnit) { - return timeUnit === getPrimaryTimeUnit(timeUnit); -} -function getDefaultFormatPrecisionOfInterval(timeUnit) { - switch (timeUnit) { - case "year": - case "month": - return "day"; - case "millisecond": - return "millisecond"; - default: - return "second"; - } -} -function format(time, template, isUTC, lang) { - var date = parseDate(time); - var y = date[fullYearGetterName(isUTC)](); - var M = date[monthGetterName(isUTC)]() + 1; - var q = Math.floor((M - 1) / 3) + 1; - var d = date[dateGetterName(isUTC)](); - var e2 = date["get" + (isUTC ? "UTC" : "") + "Day"](); - var H = date[hoursGetterName(isUTC)](); - var h = (H - 1) % 12 + 1; - var m2 = date[minutesGetterName(isUTC)](); - var s = date[secondsGetterName(isUTC)](); - var S = date[millisecondsGetterName(isUTC)](); - var localeModel = lang instanceof Model$1 ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel(); - var timeModel = localeModel.getModel("time"); - var month = timeModel.get("month"); - var monthAbbr = timeModel.get("monthAbbr"); - var dayOfWeek = timeModel.get("dayOfWeek"); - var dayOfWeekAbbr = timeModel.get("dayOfWeekAbbr"); - return (template || "").replace(/{yyyy}/g, y + "").replace(/{yy}/g, y % 100 + "").replace(/{Q}/g, q + "").replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + "").replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + "").replace(/{eeee}/g, dayOfWeek[e2]).replace(/{ee}/g, dayOfWeekAbbr[e2]).replace(/{e}/g, e2 + "").replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + "").replace(/{hh}/g, pad(h + "", 2)).replace(/{h}/g, h + "").replace(/{mm}/g, pad(m2, 2)).replace(/{m}/g, m2 + "").replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + "").replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + ""); -} -function leveledFormat(tick, idx, formatter, lang, isUTC) { - var template = null; - if (isString(formatter)) { - template = formatter; - } else if (isFunction(formatter)) { - template = formatter(tick.value, idx, { - level: tick.level - }); - } else { - var defaults$1 = extend({}, defaultLeveledFormatter); - if (tick.level > 0) { - for (var i = 0; i < primaryTimeUnits.length; ++i) { - defaults$1[primaryTimeUnits[i]] = "{primary|" + defaults$1[primaryTimeUnits[i]] + "}"; - } - } - var mergedFormatter = formatter ? formatter.inherit === false ? formatter : defaults(formatter, defaults$1) : defaults$1; - var unit = getUnitFromValue(tick.value, isUTC); - if (mergedFormatter[unit]) { - template = mergedFormatter[unit]; - } else if (mergedFormatter.inherit) { - var targetId = timeUnits.indexOf(unit); - for (var i = targetId - 1; i >= 0; --i) { - if (mergedFormatter[unit]) { - template = mergedFormatter[unit]; - break; - } - } - template = template || defaults$1.none; - } - if (isArray(template)) { - var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level; - levelId = Math.min(levelId, template.length - 1); - template = template[levelId]; - } - } - return format(new Date(tick.value), template, isUTC, lang); -} -function getUnitFromValue(value, isUTC) { - var date = parseDate(value); - var M = date[monthGetterName(isUTC)]() + 1; - var d = date[dateGetterName(isUTC)](); - var h = date[hoursGetterName(isUTC)](); - var m2 = date[minutesGetterName(isUTC)](); - var s = date[secondsGetterName(isUTC)](); - var S = date[millisecondsGetterName(isUTC)](); - var isSecond = S === 0; - var isMinute = isSecond && s === 0; - var isHour = isMinute && m2 === 0; - var isDay = isHour && h === 0; - var isMonth = isDay && d === 1; - var isYear = isMonth && M === 1; - if (isYear) { - return "year"; - } else if (isMonth) { - return "month"; - } else if (isDay) { - return "day"; - } else if (isHour) { - return "hour"; - } else if (isMinute) { - return "minute"; - } else if (isSecond) { - return "second"; - } else { - return "millisecond"; - } -} -function getUnitValue(value, unit, isUTC) { - var date = isNumber(value) ? parseDate(value) : value; - unit = unit || getUnitFromValue(value, isUTC); - switch (unit) { - case "year": - return date[fullYearGetterName(isUTC)](); - case "half-year": - return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0; - case "quarter": - return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4); - case "month": - return date[monthGetterName(isUTC)](); - case "day": - return date[dateGetterName(isUTC)](); - case "half-day": - return date[hoursGetterName(isUTC)]() / 24; - case "hour": - return date[hoursGetterName(isUTC)](); - case "minute": - return date[minutesGetterName(isUTC)](); - case "second": - return date[secondsGetterName(isUTC)](); - case "millisecond": - return date[millisecondsGetterName(isUTC)](); - } -} -function fullYearGetterName(isUTC) { - return isUTC ? "getUTCFullYear" : "getFullYear"; -} -function monthGetterName(isUTC) { - return isUTC ? "getUTCMonth" : "getMonth"; -} -function dateGetterName(isUTC) { - return isUTC ? "getUTCDate" : "getDate"; -} -function hoursGetterName(isUTC) { - return isUTC ? "getUTCHours" : "getHours"; -} -function minutesGetterName(isUTC) { - return isUTC ? "getUTCMinutes" : "getMinutes"; -} -function secondsGetterName(isUTC) { - return isUTC ? "getUTCSeconds" : "getSeconds"; -} -function millisecondsGetterName(isUTC) { - return isUTC ? "getUTCMilliseconds" : "getMilliseconds"; -} -function fullYearSetterName(isUTC) { - return isUTC ? "setUTCFullYear" : "setFullYear"; -} -function monthSetterName(isUTC) { - return isUTC ? "setUTCMonth" : "setMonth"; -} -function dateSetterName(isUTC) { - return isUTC ? "setUTCDate" : "setDate"; -} -function hoursSetterName(isUTC) { - return isUTC ? "setUTCHours" : "setHours"; -} -function minutesSetterName(isUTC) { - return isUTC ? "setUTCMinutes" : "setMinutes"; -} -function secondsSetterName(isUTC) { - return isUTC ? "setUTCSeconds" : "setSeconds"; -} -function millisecondsSetterName(isUTC) { - return isUTC ? "setUTCMilliseconds" : "setMilliseconds"; -} -function addCommas(x) { - if (!isNumeric(x)) { - return isString(x) ? x : "-"; - } - var parts = (x + "").split("."); - return parts[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (parts.length > 1 ? "." + parts[1] : ""); -} -function toCamelCase(str, upperCaseFirst) { - str = (str || "").toLowerCase().replace(/-(.)/g, function(match, group1) { - return group1.toUpperCase(); - }); - if (upperCaseFirst && str) { - str = str.charAt(0).toUpperCase() + str.slice(1); - } - return str; -} -var normalizeCssArray = normalizeCssArray$1; -function makeValueReadable(value, valueType, useUTC) { - var USER_READABLE_DEFUALT_TIME_PATTERN = "{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}"; - function stringToUserReadable(str) { - return str && trim(str) ? str : "-"; - } - function isNumberUserReadable(num) { - return !!(num != null && !isNaN(num) && isFinite(num)); - } - var isTypeTime = valueType === "time"; - var isValueDate = value instanceof Date; - if (isTypeTime || isValueDate) { - var date = isTypeTime ? parseDate(value) : value; - if (!isNaN(+date)) { - return format(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC); - } else if (isValueDate) { - return "-"; - } - } - if (valueType === "ordinal") { - return isStringSafe(value) ? stringToUserReadable(value) : isNumber(value) ? isNumberUserReadable(value) ? value + "" : "-" : "-"; - } - var numericResult = numericToNumber(value); - return isNumberUserReadable(numericResult) ? addCommas(numericResult) : isStringSafe(value) ? stringToUserReadable(value) : typeof value === "boolean" ? value + "" : "-"; -} -var TPL_VAR_ALIAS = ["a", "b", "c", "d", "e", "f", "g"]; -var wrapVar = function(varName, seriesIdx) { - return "{" + varName + (seriesIdx == null ? "" : seriesIdx) + "}"; -}; -function formatTpl(tpl, paramsList, encode) { - if (!isArray(paramsList)) { - paramsList = [paramsList]; - } - var seriesLen = paramsList.length; - if (!seriesLen) { - return ""; - } - var $vars = paramsList[0].$vars || []; - for (var i = 0; i < $vars.length; i++) { - var alias = TPL_VAR_ALIAS[i]; - tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0)); - } - for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) { - for (var k = 0; k < $vars.length; k++) { - var val = paramsList[seriesIdx][$vars[k]]; - tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val); - } - } - return tpl; -} -function formatTplSimple(tpl, param, encode) { - each$2(param, function(value, key) { - tpl = tpl.replace("{" + key + "}", encode ? encodeHTML(value) : value); - }); - return tpl; -} -function getTooltipMarker(inOpt, extraCssText) { - var opt = isString(inOpt) ? { - color: inOpt, - extraCssText - } : inOpt || {}; - var color = opt.color; - var type = opt.type; - extraCssText = opt.extraCssText; - var renderMode = opt.renderMode || "html"; - if (!color) { - return ""; - } - if (renderMode === "html") { - return type === "subItem" ? '' : ''; - } else { - var markerId = opt.markerId || "markerX"; - return { - renderMode, - content: "{" + markerId + "|} ", - style: type === "subItem" ? { - width: 4, - height: 4, - borderRadius: 2, - backgroundColor: color - } : { - width: 10, - height: 10, - borderRadius: 5, - backgroundColor: color - } - }; - } -} -function formatTime(tpl, value, isUTC) { - if (tpl === "week" || tpl === "month" || tpl === "quarter" || tpl === "half-year" || tpl === "year") { - tpl = "MM-dd\nyyyy"; - } - var date = parseDate(value); - var getUTC = isUTC ? "getUTC" : "get"; - var y = date[getUTC + "FullYear"](); - var M = date[getUTC + "Month"]() + 1; - var d = date[getUTC + "Date"](); - var h = date[getUTC + "Hours"](); - var m2 = date[getUTC + "Minutes"](); - var s = date[getUTC + "Seconds"](); - var S = date[getUTC + "Milliseconds"](); - tpl = tpl.replace("MM", pad(M, 2)).replace("M", M).replace("yyyy", y).replace("yy", pad(y % 100 + "", 2)).replace("dd", pad(d, 2)).replace("d", d).replace("hh", pad(h, 2)).replace("h", h).replace("mm", pad(m2, 2)).replace("m", m2).replace("ss", pad(s, 2)).replace("s", s).replace("SSS", pad(S, 3)); - return tpl; -} -function capitalFirst(str) { - return str ? str.charAt(0).toUpperCase() + str.substr(1) : str; -} -function convertToColorString(color, defaultColor) { - defaultColor = defaultColor || "transparent"; - return isString(color) ? color : isObject$2(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor; -} -function windowOpen(link, target) { - if (target === "_blank" || target === "blank") { - var blank = window.open(); - blank.opener = null; - blank.location.href = link; - } else { - window.open(link, target); - } -} -var each$1 = each$2; -var LOCATION_PARAMS = ["left", "right", "top", "bottom", "width", "height"]; -var HV_NAMES = [["width", "left", "right"], ["height", "top", "bottom"]]; -function boxLayout(orient, group, gap, maxWidth, maxHeight) { - var x = 0; - var y = 0; - if (maxWidth == null) { - maxWidth = Infinity; - } - if (maxHeight == null) { - maxHeight = Infinity; - } - var currentLineMaxSize = 0; - group.eachChild(function(child, idx) { - var rect = child.getBoundingRect(); - var nextChild = group.childAt(idx + 1); - var nextChildRect = nextChild && nextChild.getBoundingRect(); - var nextX; - var nextY; - if (orient === "horizontal") { - var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0); - nextX = x + moveX; - if (nextX > maxWidth || child.newline) { - x = 0; - nextX = moveX; - y += currentLineMaxSize + gap; - currentLineMaxSize = rect.height; - } else { - currentLineMaxSize = Math.max(currentLineMaxSize, rect.height); - } - } else { - var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0); - nextY = y + moveY; - if (nextY > maxHeight || child.newline) { - x += currentLineMaxSize + gap; - y = 0; - nextY = moveY; - currentLineMaxSize = rect.width; - } else { - currentLineMaxSize = Math.max(currentLineMaxSize, rect.width); - } - } - if (child.newline) { - return; - } - child.x = x; - child.y = y; - child.markRedraw(); - orient === "horizontal" ? x = nextX + gap : y = nextY + gap; - }); -} -var box = boxLayout; -curry(boxLayout, "vertical"); -curry(boxLayout, "horizontal"); -function getAvailableSize(positionInfo, containerRect, margin) { - var containerWidth = containerRect.width; - var containerHeight = containerRect.height; - var x = parsePercent(positionInfo.left, containerWidth); - var y = parsePercent(positionInfo.top, containerHeight); - var x2 = parsePercent(positionInfo.right, containerWidth); - var y2 = parsePercent(positionInfo.bottom, containerHeight); - (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0); - (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth); - (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0); - (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight); - margin = normalizeCssArray(margin || 0); - return { - width: Math.max(x2 - x - margin[1] - margin[3], 0), - height: Math.max(y2 - y - margin[0] - margin[2], 0) - }; -} -function getLayoutRect(positionInfo, containerRect, margin) { - margin = normalizeCssArray(margin || 0); - var containerWidth = containerRect.width; - var containerHeight = containerRect.height; - var left = parsePercent(positionInfo.left, containerWidth); - var top = parsePercent(positionInfo.top, containerHeight); - var right = parsePercent(positionInfo.right, containerWidth); - var bottom = parsePercent(positionInfo.bottom, containerHeight); - var width = parsePercent(positionInfo.width, containerWidth); - var height = parsePercent(positionInfo.height, containerHeight); - var verticalMargin = margin[2] + margin[0]; - var horizontalMargin = margin[1] + margin[3]; - var aspect = positionInfo.aspect; - if (isNaN(width)) { - width = containerWidth - right - horizontalMargin - left; - } - if (isNaN(height)) { - height = containerHeight - bottom - verticalMargin - top; - } - if (aspect != null) { - if (isNaN(width) && isNaN(height)) { - if (aspect > containerWidth / containerHeight) { - width = containerWidth * 0.8; - } else { - height = containerHeight * 0.8; - } - } - if (isNaN(width)) { - width = aspect * height; - } - if (isNaN(height)) { - height = width / aspect; - } - } - if (isNaN(left)) { - left = containerWidth - right - width - horizontalMargin; - } - if (isNaN(top)) { - top = containerHeight - bottom - height - verticalMargin; - } - switch (positionInfo.left || positionInfo.right) { - case "center": - left = containerWidth / 2 - width / 2 - margin[3]; - break; - case "right": - left = containerWidth - width - horizontalMargin; - break; - } - switch (positionInfo.top || positionInfo.bottom) { - case "middle": - case "center": - top = containerHeight / 2 - height / 2 - margin[0]; - break; - case "bottom": - top = containerHeight - height - verticalMargin; - break; - } - left = left || 0; - top = top || 0; - if (isNaN(width)) { - width = containerWidth - horizontalMargin - left - (right || 0); - } - if (isNaN(height)) { - height = containerHeight - verticalMargin - top - (bottom || 0); - } - var rect = new BoundingRect(left + margin[3], top + margin[0], width, height); - rect.margin = margin; - return rect; -} -function positionElement(el, positionInfo, containerRect, margin, opt, out2) { - var h = !opt || !opt.hv || opt.hv[0]; - var v = !opt || !opt.hv || opt.hv[1]; - var boundingMode = opt && opt.boundingMode || "all"; - out2 = out2 || el; - out2.x = el.x; - out2.y = el.y; - if (!h && !v) { - return false; - } - var rect; - if (boundingMode === "raw") { - rect = el.type === "group" ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect(); - } else { - rect = el.getBoundingRect(); - if (el.needLocalTransform()) { - var transform = el.getLocalTransform(); - rect = rect.clone(); - rect.applyTransform(transform); - } - } - var layoutRect = getLayoutRect(defaults({ - width: rect.width, - height: rect.height - }, positionInfo), containerRect, margin); - var dx = h ? layoutRect.x - rect.x : 0; - var dy = v ? layoutRect.y - rect.y : 0; - if (boundingMode === "raw") { - out2.x = dx; - out2.y = dy; - } else { - out2.x += dx; - out2.y += dy; - } - if (out2 === el) { - el.markRedraw(); - } - return true; -} -function sizeCalculable(option, hvIdx) { - return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null; -} -function fetchLayoutMode(ins) { - var layoutMode = ins.layoutMode || ins.constructor.layoutMode; - return isObject$2(layoutMode) ? layoutMode : layoutMode ? { - type: layoutMode - } : null; -} -function mergeLayoutParam(targetOption, newOption, opt) { - var ignoreSize = opt && opt.ignoreSize; - !isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]); - var hResult = merge2(HV_NAMES[0], 0); - var vResult = merge2(HV_NAMES[1], 1); - copy(HV_NAMES[0], targetOption, hResult); - copy(HV_NAMES[1], targetOption, vResult); - function merge2(names, hvIdx) { - var newParams = {}; - var newValueCount = 0; - var merged = {}; - var mergedValueCount = 0; - var enoughParamNumber = 2; - each$1(names, function(name) { - merged[name] = targetOption[name]; - }); - each$1(names, function(name) { - hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]); - hasValue(newParams, name) && newValueCount++; - hasValue(merged, name) && mergedValueCount++; - }); - if (ignoreSize[hvIdx]) { - if (hasValue(newOption, names[1])) { - merged[names[2]] = null; - } else if (hasValue(newOption, names[2])) { - merged[names[1]] = null; - } - return merged; - } - if (mergedValueCount === enoughParamNumber || !newValueCount) { - return merged; - } else if (newValueCount >= enoughParamNumber) { - return newParams; - } else { - for (var i = 0; i < names.length; i++) { - var name_1 = names[i]; - if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) { - newParams[name_1] = targetOption[name_1]; - break; - } - } - return newParams; - } - } - function hasProp(obj, name) { - return obj.hasOwnProperty(name); - } - function hasValue(obj, name) { - return obj[name] != null && obj[name] !== "auto"; - } - function copy(names, target, source) { - each$1(names, function(name) { - target[name] = source[name]; - }); - } -} -function getLayoutParams(source) { - return copyLayoutParams({}, source); -} -function copyLayoutParams(target, source) { - source && target && each$1(LOCATION_PARAMS, function(name) { - source.hasOwnProperty(name) && (target[name] = source[name]); - }); - return target; -} -var inner$5 = makeInner(); -var ComponentModel = ( - /** @class */ - function(_super) { - __extends(ComponentModel2, _super); - function ComponentModel2(option, parentModel, ecModel) { - var _this = _super.call(this, option, parentModel, ecModel) || this; - _this.uid = getUID("ec_cpt_model"); - return _this; - } - ComponentModel2.prototype.init = function(option, parentModel, ecModel) { - this.mergeDefaultAndTheme(option, ecModel); - }; - ComponentModel2.prototype.mergeDefaultAndTheme = function(option, ecModel) { - var layoutMode = fetchLayoutMode(this); - var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; - var themeModel = ecModel.getTheme(); - merge(option, themeModel.get(this.mainType)); - merge(option, this.getDefaultOption()); - if (layoutMode) { - mergeLayoutParam(option, inputPositionParams, layoutMode); - } - }; - ComponentModel2.prototype.mergeOption = function(option, ecModel) { - merge(this.option, option, true); - var layoutMode = fetchLayoutMode(this); - if (layoutMode) { - mergeLayoutParam(this.option, option, layoutMode); - } - }; - ComponentModel2.prototype.optionUpdated = function(newCptOption, isInit) { - }; - ComponentModel2.prototype.getDefaultOption = function() { - var ctor = this.constructor; - if (!isExtendedClass(ctor)) { - return ctor.defaultOption; - } - var fields = inner$5(this); - if (!fields.defaultOption) { - var optList = []; - var clz = ctor; - while (clz) { - var opt = clz.prototype.defaultOption; - opt && optList.push(opt); - clz = clz.superClass; - } - var defaultOption = {}; - for (var i = optList.length - 1; i >= 0; i--) { - defaultOption = merge(defaultOption, optList[i], true); - } - fields.defaultOption = defaultOption; - } - return fields.defaultOption; - }; - ComponentModel2.prototype.getReferringComponents = function(mainType, opt) { - var indexKey = mainType + "Index"; - var idKey = mainType + "Id"; - return queryReferringComponents(this.ecModel, mainType, { - index: this.get(indexKey, true), - id: this.get(idKey, true) - }, opt); - }; - ComponentModel2.prototype.getBoxLayoutParams = function() { - var boxLayoutModel = this; - return { - left: boxLayoutModel.get("left"), - top: boxLayoutModel.get("top"), - right: boxLayoutModel.get("right"), - bottom: boxLayoutModel.get("bottom"), - width: boxLayoutModel.get("width"), - height: boxLayoutModel.get("height") - }; - }; - ComponentModel2.prototype.getZLevelKey = function() { - return ""; - }; - ComponentModel2.prototype.setZLevel = function(zlevel) { - this.option.zlevel = zlevel; - }; - ComponentModel2.protoInitialize = function() { - var proto2 = ComponentModel2.prototype; - proto2.type = "component"; - proto2.id = ""; - proto2.name = ""; - proto2.mainType = ""; - proto2.subType = ""; - proto2.componentIndex = 0; - }(); - return ComponentModel2; - }(Model$1) -); -mountExtend(ComponentModel, Model$1); -enableClassManagement(ComponentModel); -enableSubTypeDefaulter(ComponentModel); -enableTopologicalTravel(ComponentModel, getDependencies); -function getDependencies(componentType) { - var deps = []; - each$2(ComponentModel.getClassesByMainType(componentType), function(clz) { - deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []); - }); - deps = map$1(deps, function(type) { - return parseClassType(type).main; - }); - if (componentType !== "dataset" && indexOf(deps, "dataset") <= 0) { - deps.unshift("dataset"); - } - return deps; -} -const ComponentModel$1 = ComponentModel; -var platform = ""; -if (typeof navigator !== "undefined") { - platform = navigator.platform || ""; -} -var decalColor = "rgba(0, 0, 0, 0.2)"; -const globalDefault = { - darkMode: "auto", - // backgroundColor: 'rgba(0,0,0,0)', - colorBy: "series", - color: ["#5470c6", "#91cc75", "#fac858", "#ee6666", "#73c0de", "#3ba272", "#fc8452", "#9a60b4", "#ea7ccc"], - gradientColor: ["#f6efa6", "#d88273", "#bf444c"], - aria: { - decal: { - decals: [{ - color: decalColor, - dashArrayX: [1, 0], - dashArrayY: [2, 5], - symbolSize: 1, - rotation: Math.PI / 6 - }, { - color: decalColor, - symbol: "circle", - dashArrayX: [[8, 8], [0, 8, 8, 0]], - dashArrayY: [6, 0], - symbolSize: 0.8 - }, { - color: decalColor, - dashArrayX: [1, 0], - dashArrayY: [4, 3], - rotation: -Math.PI / 4 - }, { - color: decalColor, - dashArrayX: [[6, 6], [0, 6, 6, 0]], - dashArrayY: [6, 0] - }, { - color: decalColor, - dashArrayX: [[1, 0], [1, 6]], - dashArrayY: [1, 0, 6, 0], - rotation: Math.PI / 4 - }, { - color: decalColor, - symbol: "triangle", - dashArrayX: [[9, 9], [0, 9, 9, 0]], - dashArrayY: [7, 2], - symbolSize: 0.75 - }] - } - }, - // If xAxis and yAxis declared, grid is created by default. - // grid: {}, - textStyle: { - // color: '#000', - // decoration: 'none', - // PENDING - fontFamily: platform.match(/^Win/) ? "Microsoft YaHei" : "sans-serif", - // fontFamily: 'Arial, Verdana, sans-serif', - fontSize: 12, - fontStyle: "normal", - fontWeight: "normal" - }, - // http://blogs.adobe.com/webplatform/2014/02/24/using-blend-modes-in-html-canvas/ - // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation - // Default is source-over - blendMode: null, - stateAnimation: { - duration: 300, - easing: "cubicOut" - }, - animation: "auto", - animationDuration: 1e3, - animationDurationUpdate: 500, - animationEasing: "cubicInOut", - animationEasingUpdate: "cubicInOut", - animationThreshold: 2e3, - // Configuration for progressive/incremental rendering - progressiveThreshold: 3e3, - progressive: 400, - // Threshold of if use single hover layer to optimize. - // It is recommended that `hoverLayerThreshold` is equivalent to or less than - // `progressiveThreshold`, otherwise hover will cause restart of progressive, - // which is unexpected. - // see example . - hoverLayerThreshold: 3e3, - // See: module:echarts/scale/Time - useUTC: false -}; -var VISUAL_DIMENSIONS = createHashMap(["tooltip", "label", "itemName", "itemId", "itemGroupId", "seriesName"]); -var SOURCE_FORMAT_ORIGINAL = "original"; -var SOURCE_FORMAT_ARRAY_ROWS = "arrayRows"; -var SOURCE_FORMAT_OBJECT_ROWS = "objectRows"; -var SOURCE_FORMAT_KEYED_COLUMNS = "keyedColumns"; -var SOURCE_FORMAT_TYPED_ARRAY = "typedArray"; -var SOURCE_FORMAT_UNKNOWN = "unknown"; -var SERIES_LAYOUT_BY_COLUMN = "column"; -var SERIES_LAYOUT_BY_ROW = "row"; -var BE_ORDINAL = { - Must: 1, - Might: 2, - Not: 3 - // Other cases -}; -var innerGlobalModel = makeInner(); -function resetSourceDefaulter(ecModel) { - innerGlobalModel(ecModel).datasetMap = createHashMap(); -} -function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) { - var encode = {}; - var datasetModel = querySeriesUpstreamDatasetModel(seriesModel); - if (!datasetModel || !coordDimensions) { - return encode; - } - var encodeItemName = []; - var encodeSeriesName = []; - var ecModel = seriesModel.ecModel; - var datasetMap = innerGlobalModel(ecModel).datasetMap; - var key = datasetModel.uid + "_" + source.seriesLayoutBy; - var baseCategoryDimIndex; - var categoryWayValueDimStart; - coordDimensions = coordDimensions.slice(); - each$2(coordDimensions, function(coordDimInfoLoose, coordDimIdx) { - var coordDimInfo = isObject$2(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = { - name: coordDimInfoLoose - }; - if (coordDimInfo.type === "ordinal" && baseCategoryDimIndex == null) { - baseCategoryDimIndex = coordDimIdx; - categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo); - } - encode[coordDimInfo.name] = []; - }); - var datasetRecord = datasetMap.get(key) || datasetMap.set(key, { - categoryWayDim: categoryWayValueDimStart, - valueWayDim: 0 - }); - each$2(coordDimensions, function(coordDimInfo, coordDimIdx) { - var coordDimName = coordDimInfo.name; - var count = getDataDimCountOnCoordDim(coordDimInfo); - if (baseCategoryDimIndex == null) { - var start = datasetRecord.valueWayDim; - pushDim(encode[coordDimName], start, count); - pushDim(encodeSeriesName, start, count); - datasetRecord.valueWayDim += count; - } else if (baseCategoryDimIndex === coordDimIdx) { - pushDim(encode[coordDimName], 0, count); - pushDim(encodeItemName, 0, count); - } else { - var start = datasetRecord.categoryWayDim; - pushDim(encode[coordDimName], start, count); - pushDim(encodeSeriesName, start, count); - datasetRecord.categoryWayDim += count; - } - }); - function pushDim(dimIdxArr, idxFrom, idxCount) { - for (var i = 0; i < idxCount; i++) { - dimIdxArr.push(idxFrom + i); - } - } - function getDataDimCountOnCoordDim(coordDimInfo) { - var dimsDef = coordDimInfo.dimsDef; - return dimsDef ? dimsDef.length : 1; - } - encodeItemName.length && (encode.itemName = encodeItemName); - encodeSeriesName.length && (encode.seriesName = encodeSeriesName); - return encode; -} -function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) { - var encode = {}; - var datasetModel = querySeriesUpstreamDatasetModel(seriesModel); - if (!datasetModel) { - return encode; - } - var sourceFormat = source.sourceFormat; - var dimensionsDefine = source.dimensionsDefine; - var potentialNameDimIndex; - if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) { - each$2(dimensionsDefine, function(dim, idx) { - if ((isObject$2(dim) ? dim.name : dim) === "name") { - potentialNameDimIndex = idx; - } - }); - } - var idxResult = function() { - var idxRes0 = {}; - var idxRes1 = {}; - var guessRecords = []; - for (var i = 0, len = Math.min(5, dimCount); i < len; i++) { - var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i); - guessRecords.push(guessResult); - var isPureNumber = guessResult === BE_ORDINAL.Not; - if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) { - idxRes0.v = i; - } - if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) { - idxRes0.n = i; - } - if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) { - return idxRes0; - } - if (!isPureNumber) { - if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) { - idxRes1.v = i; - } - if (idxRes1.n == null || idxRes1.n === idxRes1.v) { - idxRes1.n = i; - } - } - } - function fulfilled(idxResult2) { - return idxResult2.v != null && idxResult2.n != null; - } - return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null; - }(); - if (idxResult) { - encode.value = [idxResult.v]; - var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n; - encode.itemName = [nameDimIndex]; - encode.seriesName = [nameDimIndex]; - } - return encode; -} -function querySeriesUpstreamDatasetModel(seriesModel) { - var thisData = seriesModel.get("data", true); - if (!thisData) { - return queryReferringComponents(seriesModel.ecModel, "dataset", { - index: seriesModel.get("datasetIndex", true), - id: seriesModel.get("datasetId", true) - }, SINGLE_REFERRING).models[0]; - } -} -function queryDatasetUpstreamDatasetModels(datasetModel) { - if (!datasetModel.get("transform", true) && !datasetModel.get("fromTransformResult", true)) { - return []; - } - return queryReferringComponents(datasetModel.ecModel, "dataset", { - index: datasetModel.get("fromDatasetIndex", true), - id: datasetModel.get("fromDatasetId", true) - }, SINGLE_REFERRING).models; -} -function guessOrdinal(source, dimIndex) { - return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex); -} -function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) { - var result; - var maxLoop = 5; - if (isTypedArray(data)) { - return BE_ORDINAL.Not; - } - var dimName; - var dimType; - if (dimensionsDefine) { - var dimDefItem = dimensionsDefine[dimIndex]; - if (isObject$2(dimDefItem)) { - dimName = dimDefItem.name; - dimType = dimDefItem.type; - } else if (isString(dimDefItem)) { - dimName = dimDefItem; - } - } - if (dimType != null) { - return dimType === "ordinal" ? BE_ORDINAL.Must : BE_ORDINAL.Not; - } - if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) { - var dataArrayRows = data; - if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) { - var sample = dataArrayRows[dimIndex]; - for (var i = 0; i < (sample || []).length && i < maxLoop; i++) { - if ((result = detectValue(sample[startIndex + i])) != null) { - return result; - } - } - } else { - for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) { - var row = dataArrayRows[startIndex + i]; - if (row && (result = detectValue(row[dimIndex])) != null) { - return result; - } - } - } - } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) { - var dataObjectRows = data; - if (!dimName) { - return BE_ORDINAL.Not; - } - for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) { - var item = dataObjectRows[i]; - if (item && (result = detectValue(item[dimName])) != null) { - return result; - } - } - } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) { - var dataKeyedColumns = data; - if (!dimName) { - return BE_ORDINAL.Not; - } - var sample = dataKeyedColumns[dimName]; - if (!sample || isTypedArray(sample)) { - return BE_ORDINAL.Not; - } - for (var i = 0; i < sample.length && i < maxLoop; i++) { - if ((result = detectValue(sample[i])) != null) { - return result; - } - } - } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) { - var dataOriginal = data; - for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) { - var item = dataOriginal[i]; - var val = getDataItemValue(item); - if (!isArray(val)) { - return BE_ORDINAL.Not; - } - if ((result = detectValue(val[dimIndex])) != null) { - return result; - } - } - } - function detectValue(val2) { - var beStr = isString(val2); - if (val2 != null && isFinite(val2) && val2 !== "") { - return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not; - } else if (beStr && val2 !== "-") { - return BE_ORDINAL.Must; - } - } - return BE_ORDINAL.Not; -} -var internalOptionCreatorMap = createHashMap(); -function registerInternalOptionCreator(mainType, creator) { - assert(internalOptionCreatorMap.get(mainType) == null && creator); - internalOptionCreatorMap.set(mainType, creator); -} -function concatInternalOptions(ecModel, mainType, newCmptOptionList) { - var internalOptionCreator = internalOptionCreatorMap.get(mainType); - if (!internalOptionCreator) { - return newCmptOptionList; - } - var internalOptions = internalOptionCreator(ecModel); - if (!internalOptions) { - return newCmptOptionList; - } - return newCmptOptionList.concat(internalOptions); -} -var innerColor = makeInner(); -var innerDecal = makeInner(); -var PaletteMixin = ( - /** @class */ - function() { - function PaletteMixin2() { - } - PaletteMixin2.prototype.getColorFromPalette = function(name, scope, requestNum) { - var defaultPalette = normalizeToArray(this.get("color", true)); - var layeredPalette = this.get("colorLayer", true); - return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum); - }; - PaletteMixin2.prototype.clearColorPalette = function() { - clearPalette(this, innerColor); - }; - return PaletteMixin2; - }() -); -function getDecalFromPalette(ecModel, name, scope, requestNum) { - var defaultDecals = normalizeToArray(ecModel.get(["aria", "decal", "decals"])); - return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum); -} -function getNearestPalette(palettes, requestColorNum) { - var paletteNum = palettes.length; - for (var i = 0; i < paletteNum; i++) { - if (palettes[i].length > requestColorNum) { - return palettes[i]; - } - } - return palettes[paletteNum - 1]; -} -function getFromPalette(that, inner2, defaultPalette, layeredPalette, name, scope, requestNum) { - scope = scope || that; - var scopeFields = inner2(scope); - var paletteIdx = scopeFields.paletteIdx || 0; - var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {}; - if (paletteNameMap.hasOwnProperty(name)) { - return paletteNameMap[name]; - } - var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum); - palette = palette || defaultPalette; - if (!palette || !palette.length) { - return; - } - var pickedPaletteItem = palette[paletteIdx]; - if (name) { - paletteNameMap[name] = pickedPaletteItem; - } - scopeFields.paletteIdx = (paletteIdx + 1) % palette.length; - return pickedPaletteItem; -} -function clearPalette(that, inner2) { - inner2(that).paletteIdx = 0; - inner2(that).paletteNameMap = {}; -} -var reCreateSeriesIndices; -var assertSeriesInitialized; -var initBase; -var OPTION_INNER_KEY = "\0_ec_inner"; -var OPTION_INNER_VALUE = 1; -var GlobalModel = ( - /** @class */ - function(_super) { - __extends(GlobalModel2, _super); - function GlobalModel2() { - return _super !== null && _super.apply(this, arguments) || this; - } - GlobalModel2.prototype.init = function(option, parentModel, ecModel, theme2, locale, optionManager) { - theme2 = theme2 || {}; - this.option = null; - this._theme = new Model$1(theme2); - this._locale = new Model$1(locale); - this._optionManager = optionManager; - }; - GlobalModel2.prototype.setOption = function(option, opts, optionPreprocessorFuncs2) { - var innerOpt = normalizeSetOptionInput(opts); - this._optionManager.setOption(option, optionPreprocessorFuncs2, innerOpt); - this._resetOption(null, innerOpt); - }; - GlobalModel2.prototype.resetOption = function(type, opt) { - return this._resetOption(type, normalizeSetOptionInput(opt)); - }; - GlobalModel2.prototype._resetOption = function(type, opt) { - var optionChanged = false; - var optionManager = this._optionManager; - if (!type || type === "recreate") { - var baseOption = optionManager.mountOption(type === "recreate"); - if (!this.option || type === "recreate") { - initBase(this, baseOption); - } else { - this.restoreData(); - this._mergeOption(baseOption, opt); - } - optionChanged = true; - } - if (type === "timeline" || type === "media") { - this.restoreData(); - } - if (!type || type === "recreate" || type === "timeline") { - var timelineOption = optionManager.getTimelineOption(this); - if (timelineOption) { - optionChanged = true; - this._mergeOption(timelineOption, opt); - } - } - if (!type || type === "recreate" || type === "media") { - var mediaOptions = optionManager.getMediaOption(this); - if (mediaOptions.length) { - each$2(mediaOptions, function(mediaOption) { - optionChanged = true; - this._mergeOption(mediaOption, opt); - }, this); - } - } - return optionChanged; - }; - GlobalModel2.prototype.mergeOption = function(option) { - this._mergeOption(option, null); - }; - GlobalModel2.prototype._mergeOption = function(newOption, opt) { - var option = this.option; - var componentsMap = this._componentsMap; - var componentsCount = this._componentsCount; - var newCmptTypes = []; - var newCmptTypeMap = createHashMap(); - var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap; - resetSourceDefaulter(this); - each$2(newOption, function(componentOption, mainType) { - if (componentOption == null) { - return; - } - if (!ComponentModel$1.hasClass(mainType)) { - option[mainType] = option[mainType] == null ? clone$1(componentOption) : merge(option[mainType], componentOption, true); - } else if (mainType) { - newCmptTypes.push(mainType); - newCmptTypeMap.set(mainType, true); - } - }); - if (replaceMergeMainTypeMap) { - replaceMergeMainTypeMap.each(function(val, mainTypeInReplaceMerge) { - if (ComponentModel$1.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) { - newCmptTypes.push(mainTypeInReplaceMerge); - newCmptTypeMap.set(mainTypeInReplaceMerge, true); - } - }); - } - ComponentModel$1.topologicalTravel(newCmptTypes, ComponentModel$1.getAllClassMainTypes(), visitComponent, this); - function visitComponent(mainType) { - var newCmptOptionList = concatInternalOptions(this, mainType, normalizeToArray(newOption[mainType])); - var oldCmptList = componentsMap.get(mainType); - var mergeMode = ( - // `!oldCmptList` means init. See the comment in `mappingToExists` - !oldCmptList ? "replaceAll" : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? "replaceMerge" : "normalMerge" - ); - var mappingResult = mappingToExists(oldCmptList, newCmptOptionList, mergeMode); - setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel$1); - option[mainType] = null; - componentsMap.set(mainType, null); - componentsCount.set(mainType, 0); - var optionsByMainType = []; - var cmptsByMainType = []; - var cmptsCountByMainType = 0; - var tooltipExists; - each$2(mappingResult, function(resultItem, index) { - var componentModel = resultItem.existing; - var newCmptOption = resultItem.newOption; - if (!newCmptOption) { - if (componentModel) { - componentModel.mergeOption({}, this); - componentModel.optionUpdated({}, false); - } - } else { - var isSeriesType = mainType === "series"; - var ComponentModelClass = ComponentModel$1.getClass( - mainType, - resultItem.keyInfo.subType, - !isSeriesType - // Give a more detailed warn later if series don't exists - ); - if (!ComponentModelClass) { - return; - } - if (mainType === "tooltip") { - if (tooltipExists) { - return; - } - tooltipExists = true; - } - if (componentModel && componentModel.constructor === ComponentModelClass) { - componentModel.name = resultItem.keyInfo.name; - componentModel.mergeOption(newCmptOption, this); - componentModel.optionUpdated(newCmptOption, false); - } else { - var extraOpt = extend({ - componentIndex: index - }, resultItem.keyInfo); - componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt); - extend(componentModel, extraOpt); - if (resultItem.brandNew) { - componentModel.__requireNewView = true; - } - componentModel.init(newCmptOption, this, this); - componentModel.optionUpdated(null, true); - } - } - if (componentModel) { - optionsByMainType.push(componentModel.option); - cmptsByMainType.push(componentModel); - cmptsCountByMainType++; - } else { - optionsByMainType.push(void 0); - cmptsByMainType.push(void 0); - } - }, this); - option[mainType] = optionsByMainType; - componentsMap.set(mainType, cmptsByMainType); - componentsCount.set(mainType, cmptsCountByMainType); - if (mainType === "series") { - reCreateSeriesIndices(this); - } - } - if (!this._seriesIndices) { - reCreateSeriesIndices(this); - } - }; - GlobalModel2.prototype.getOption = function() { - var option = clone$1(this.option); - each$2(option, function(optInMainType, mainType) { - if (ComponentModel$1.hasClass(mainType)) { - var opts = normalizeToArray(optInMainType); - var realLen = opts.length; - var metNonInner = false; - for (var i = realLen - 1; i >= 0; i--) { - if (opts[i] && !isComponentIdInternal(opts[i])) { - metNonInner = true; - } else { - opts[i] = null; - !metNonInner && realLen--; - } - } - opts.length = realLen; - option[mainType] = opts; - } - }); - delete option[OPTION_INNER_KEY]; - return option; - }; - GlobalModel2.prototype.getTheme = function() { - return this._theme; - }; - GlobalModel2.prototype.getLocaleModel = function() { - return this._locale; - }; - GlobalModel2.prototype.setUpdatePayload = function(payload) { - this._payload = payload; - }; - GlobalModel2.prototype.getUpdatePayload = function() { - return this._payload; - }; - GlobalModel2.prototype.getComponent = function(mainType, idx) { - var list = this._componentsMap.get(mainType); - if (list) { - var cmpt = list[idx || 0]; - if (cmpt) { - return cmpt; - } else if (idx == null) { - for (var i = 0; i < list.length; i++) { - if (list[i]) { - return list[i]; - } - } - } - } - }; - GlobalModel2.prototype.queryComponents = function(condition) { - var mainType = condition.mainType; - if (!mainType) { - return []; - } - var index = condition.index; - var id = condition.id; - var name = condition.name; - var cmpts = this._componentsMap.get(mainType); - if (!cmpts || !cmpts.length) { - return []; - } - var result; - if (index != null) { - result = []; - each$2(normalizeToArray(index), function(idx) { - cmpts[idx] && result.push(cmpts[idx]); - }); - } else if (id != null) { - result = queryByIdOrName("id", id, cmpts); - } else if (name != null) { - result = queryByIdOrName("name", name, cmpts); - } else { - result = filter(cmpts, function(cmpt) { - return !!cmpt; - }); - } - return filterBySubType(result, condition); - }; - GlobalModel2.prototype.findComponents = function(condition) { - var query = condition.query; - var mainType = condition.mainType; - var queryCond = getQueryCond(query); - var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function(cmpt) { - return !!cmpt; - }); - return doFilter(filterBySubType(result, condition)); - function getQueryCond(q) { - var indexAttr = mainType + "Index"; - var idAttr = mainType + "Id"; - var nameAttr = mainType + "Name"; - return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? { - mainType, - // subType will be filtered finally. - index: q[indexAttr], - id: q[idAttr], - name: q[nameAttr] - } : null; - } - function doFilter(res) { - return condition.filter ? filter(res, condition.filter) : res; - } - }; - GlobalModel2.prototype.eachComponent = function(mainType, cb, context) { - var componentsMap = this._componentsMap; - if (isFunction(mainType)) { - var ctxForAll_1 = cb; - var cbForAll_1 = mainType; - componentsMap.each(function(cmpts2, componentType) { - for (var i2 = 0; cmpts2 && i2 < cmpts2.length; i2++) { - var cmpt2 = cmpts2[i2]; - cmpt2 && cbForAll_1.call(ctxForAll_1, componentType, cmpt2, cmpt2.componentIndex); - } - }); - } else { - var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject$2(mainType) ? this.findComponents(mainType) : null; - for (var i = 0; cmpts && i < cmpts.length; i++) { - var cmpt = cmpts[i]; - cmpt && cb.call(context, cmpt, cmpt.componentIndex); - } - } - }; - GlobalModel2.prototype.getSeriesByName = function(name) { - var nameStr = convertOptionIdName(name, null); - return filter(this._componentsMap.get("series"), function(oneSeries) { - return !!oneSeries && nameStr != null && oneSeries.name === nameStr; - }); - }; - GlobalModel2.prototype.getSeriesByIndex = function(seriesIndex) { - return this._componentsMap.get("series")[seriesIndex]; - }; - GlobalModel2.prototype.getSeriesByType = function(subType) { - return filter(this._componentsMap.get("series"), function(oneSeries) { - return !!oneSeries && oneSeries.subType === subType; - }); - }; - GlobalModel2.prototype.getSeries = function() { - return filter(this._componentsMap.get("series"), function(oneSeries) { - return !!oneSeries; - }); - }; - GlobalModel2.prototype.getSeriesCount = function() { - return this._componentsCount.get("series"); - }; - GlobalModel2.prototype.eachSeries = function(cb, context) { - assertSeriesInitialized(this); - each$2(this._seriesIndices, function(rawSeriesIndex) { - var series = this._componentsMap.get("series")[rawSeriesIndex]; - cb.call(context, series, rawSeriesIndex); - }, this); - }; - GlobalModel2.prototype.eachRawSeries = function(cb, context) { - each$2(this._componentsMap.get("series"), function(series) { - series && cb.call(context, series, series.componentIndex); - }); - }; - GlobalModel2.prototype.eachSeriesByType = function(subType, cb, context) { - assertSeriesInitialized(this); - each$2(this._seriesIndices, function(rawSeriesIndex) { - var series = this._componentsMap.get("series")[rawSeriesIndex]; - if (series.subType === subType) { - cb.call(context, series, rawSeriesIndex); - } - }, this); - }; - GlobalModel2.prototype.eachRawSeriesByType = function(subType, cb, context) { - return each$2(this.getSeriesByType(subType), cb, context); - }; - GlobalModel2.prototype.isSeriesFiltered = function(seriesModel) { - assertSeriesInitialized(this); - return this._seriesIndicesMap.get(seriesModel.componentIndex) == null; - }; - GlobalModel2.prototype.getCurrentSeriesIndices = function() { - return (this._seriesIndices || []).slice(); - }; - GlobalModel2.prototype.filterSeries = function(cb, context) { - assertSeriesInitialized(this); - var newSeriesIndices = []; - each$2(this._seriesIndices, function(seriesRawIdx) { - var series = this._componentsMap.get("series")[seriesRawIdx]; - cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx); - }, this); - this._seriesIndices = newSeriesIndices; - this._seriesIndicesMap = createHashMap(newSeriesIndices); - }; - GlobalModel2.prototype.restoreData = function(payload) { - reCreateSeriesIndices(this); - var componentsMap = this._componentsMap; - var componentTypes = []; - componentsMap.each(function(components, componentType) { - if (ComponentModel$1.hasClass(componentType)) { - componentTypes.push(componentType); - } - }); - ComponentModel$1.topologicalTravel(componentTypes, ComponentModel$1.getAllClassMainTypes(), function(componentType) { - each$2(componentsMap.get(componentType), function(component) { - if (component && (componentType !== "series" || !isNotTargetSeries(component, payload))) { - component.restoreData(); - } - }); - }); - }; - GlobalModel2.internalField = function() { - reCreateSeriesIndices = function(ecModel) { - var seriesIndices = ecModel._seriesIndices = []; - each$2(ecModel._componentsMap.get("series"), function(series) { - series && seriesIndices.push(series.componentIndex); - }); - ecModel._seriesIndicesMap = createHashMap(seriesIndices); - }; - assertSeriesInitialized = function(ecModel) { - }; - initBase = function(ecModel, baseOption) { - ecModel.option = {}; - ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE; - ecModel._componentsMap = createHashMap({ - series: [] - }); - ecModel._componentsCount = createHashMap(); - var airaOption = baseOption.aria; - if (isObject$2(airaOption) && airaOption.enabled == null) { - airaOption.enabled = true; - } - mergeTheme(baseOption, ecModel._theme.option); - merge(baseOption, globalDefault, false); - ecModel._mergeOption(baseOption, null); - }; - }(); - return GlobalModel2; - }(Model$1) -); -function isNotTargetSeries(seriesModel, payload) { - if (payload) { - var index = payload.seriesIndex; - var id = payload.seriesId; - var name_1 = payload.seriesName; - return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1; - } -} -function mergeTheme(option, theme2) { - var notMergeColorLayer = option.color && !option.colorLayer; - each$2(theme2, function(themeItem, name) { - if (name === "colorLayer" && notMergeColorLayer) { - return; - } - if (!ComponentModel$1.hasClass(name)) { - if (typeof themeItem === "object") { - option[name] = !option[name] ? clone$1(themeItem) : merge(option[name], themeItem, false); - } else { - if (option[name] == null) { - option[name] = themeItem; - } - } - } - }); -} -function queryByIdOrName(attr, idOrName, cmpts) { - if (isArray(idOrName)) { - var keyMap_1 = createHashMap(); - each$2(idOrName, function(idOrNameItem) { - if (idOrNameItem != null) { - var idName = convertOptionIdName(idOrNameItem, null); - idName != null && keyMap_1.set(idOrNameItem, true); - } - }); - return filter(cmpts, function(cmpt) { - return cmpt && keyMap_1.get(cmpt[attr]); - }); - } else { - var idName_1 = convertOptionIdName(idOrName, null); - return filter(cmpts, function(cmpt) { - return cmpt && idName_1 != null && cmpt[attr] === idName_1; - }); - } -} -function filterBySubType(components, condition) { - return condition.hasOwnProperty("subType") ? filter(components, function(cmpt) { - return cmpt && cmpt.subType === condition.subType; - }) : components; -} -function normalizeSetOptionInput(opts) { - var replaceMergeMainTypeMap = createHashMap(); - opts && each$2(normalizeToArray(opts.replaceMerge), function(mainType) { - replaceMergeMainTypeMap.set(mainType, true); - }); - return { - replaceMergeMainTypeMap - }; -} -mixin(GlobalModel, PaletteMixin); -const GlobalModel$1 = GlobalModel; -var availableMethods = [ - "getDom", - "getZr", - "getWidth", - "getHeight", - "getDevicePixelRatio", - "dispatchAction", - "isSSR", - "isDisposed", - "on", - "off", - "getDataURL", - "getConnectedDataURL", - // 'getModel', - "getOption", - // 'getViewOfComponentModel', - // 'getViewOfSeriesModel', - "getId", - "updateLabelLayout" -]; -var ExtensionAPI = ( - /** @class */ - function() { - function ExtensionAPI2(ecInstance) { - each$2(availableMethods, function(methodName) { - this[methodName] = bind(ecInstance[methodName], ecInstance); - }, this); - } - return ExtensionAPI2; - }() -); -const ExtensionAPI$1 = ExtensionAPI; -var coordinateSystemCreators = {}; -var CoordinateSystemManager = ( - /** @class */ - function() { - function CoordinateSystemManager2() { - this._coordinateSystems = []; - } - CoordinateSystemManager2.prototype.create = function(ecModel, api) { - var coordinateSystems = []; - each$2(coordinateSystemCreators, function(creator, type) { - var list = creator.create(ecModel, api); - coordinateSystems = coordinateSystems.concat(list || []); - }); - this._coordinateSystems = coordinateSystems; - }; - CoordinateSystemManager2.prototype.update = function(ecModel, api) { - each$2(this._coordinateSystems, function(coordSys) { - coordSys.update && coordSys.update(ecModel, api); - }); - }; - CoordinateSystemManager2.prototype.getCoordinateSystems = function() { - return this._coordinateSystems.slice(); - }; - CoordinateSystemManager2.register = function(type, creator) { - coordinateSystemCreators[type] = creator; - }; - CoordinateSystemManager2.get = function(type) { - return coordinateSystemCreators[type]; - }; - return CoordinateSystemManager2; - }() -); -const CoordinateSystem = CoordinateSystemManager; -var QUERY_REG = /^(min|max)?(.+)$/; -var OptionManager = ( - /** @class */ - function() { - function OptionManager2(api) { - this._timelineOptions = []; - this._mediaList = []; - this._currentMediaIndices = []; - this._api = api; - } - OptionManager2.prototype.setOption = function(rawOption, optionPreprocessorFuncs2, opt) { - if (rawOption) { - each$2(normalizeToArray(rawOption.series), function(series) { - series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data); - }); - each$2(normalizeToArray(rawOption.dataset), function(dataset) { - dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source); - }); - } - rawOption = clone$1(rawOption); - var optionBackup = this._optionBackup; - var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs2, !optionBackup); - this._newBaseOption = newParsedOption.baseOption; - if (optionBackup) { - if (newParsedOption.timelineOptions.length) { - optionBackup.timelineOptions = newParsedOption.timelineOptions; - } - if (newParsedOption.mediaList.length) { - optionBackup.mediaList = newParsedOption.mediaList; - } - if (newParsedOption.mediaDefault) { - optionBackup.mediaDefault = newParsedOption.mediaDefault; - } - } else { - this._optionBackup = newParsedOption; - } - }; - OptionManager2.prototype.mountOption = function(isRecreate) { - var optionBackup = this._optionBackup; - this._timelineOptions = optionBackup.timelineOptions; - this._mediaList = optionBackup.mediaList; - this._mediaDefault = optionBackup.mediaDefault; - this._currentMediaIndices = []; - return clone$1(isRecreate ? optionBackup.baseOption : this._newBaseOption); - }; - OptionManager2.prototype.getTimelineOption = function(ecModel) { - var option; - var timelineOptions = this._timelineOptions; - if (timelineOptions.length) { - var timelineModel = ecModel.getComponent("timeline"); - if (timelineModel) { - option = clone$1( - // FIXME:TS as TimelineModel or quivlant interface - timelineOptions[timelineModel.getCurrentIndex()] - ); - } - } - return option; - }; - OptionManager2.prototype.getMediaOption = function(ecModel) { - var ecWidth = this._api.getWidth(); - var ecHeight = this._api.getHeight(); - var mediaList = this._mediaList; - var mediaDefault = this._mediaDefault; - var indices = []; - var result = []; - if (!mediaList.length && !mediaDefault) { - return result; - } - for (var i = 0, len = mediaList.length; i < len; i++) { - if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) { - indices.push(i); - } - } - if (!indices.length && mediaDefault) { - indices = [-1]; - } - if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) { - result = map$1(indices, function(index) { - return clone$1(index === -1 ? mediaDefault.option : mediaList[index].option); - }); - } - this._currentMediaIndices = indices; - return result; - }; - return OptionManager2; - }() -); -function parseRawOption(rawOption, optionPreprocessorFuncs2, isNew) { - var mediaList = []; - var mediaDefault; - var baseOption; - var declaredBaseOption = rawOption.baseOption; - var timelineOnRoot = rawOption.timeline; - var timelineOptionsOnRoot = rawOption.options; - var mediaOnRoot = rawOption.media; - var hasMedia = !!rawOption.media; - var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline); - if (declaredBaseOption) { - baseOption = declaredBaseOption; - if (!baseOption.timeline) { - baseOption.timeline = timelineOnRoot; - } - } else { - if (hasTimeline || hasMedia) { - rawOption.options = rawOption.media = null; - } - baseOption = rawOption; - } - if (hasMedia) { - if (isArray(mediaOnRoot)) { - each$2(mediaOnRoot, function(singleMedia) { - if (singleMedia && singleMedia.option) { - if (singleMedia.query) { - mediaList.push(singleMedia); - } else if (!mediaDefault) { - mediaDefault = singleMedia; - } - } - }); - } - } - doPreprocess(baseOption); - each$2(timelineOptionsOnRoot, function(option) { - return doPreprocess(option); - }); - each$2(mediaList, function(media) { - return doPreprocess(media.option); - }); - function doPreprocess(option) { - each$2(optionPreprocessorFuncs2, function(preProcess) { - preProcess(option, isNew); - }); - } - return { - baseOption, - timelineOptions: timelineOptionsOnRoot || [], - mediaDefault, - mediaList - }; -} -function applyMediaQuery(query, ecWidth, ecHeight) { - var realMap = { - width: ecWidth, - height: ecHeight, - aspectratio: ecWidth / ecHeight - // lower case for convenience. - }; - var applicable = true; - each$2(query, function(value, attr) { - var matched = attr.match(QUERY_REG); - if (!matched || !matched[1] || !matched[2]) { - return; - } - var operator = matched[1]; - var realAttr = matched[2].toLowerCase(); - if (!compare(realMap[realAttr], value, operator)) { - applicable = false; - } - }); - return applicable; -} -function compare(real, expect, operator) { - if (operator === "min") { - return real >= expect; - } else if (operator === "max") { - return real <= expect; - } else { - return real === expect; - } -} -function indicesEquals(indices1, indices2) { - return indices1.join(",") === indices2.join(","); -} -const OptionManager$1 = OptionManager; -var each = each$2; -var isObject$1 = isObject$2; -var POSSIBLE_STYLES = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"]; -function compatEC2ItemStyle(opt) { - var itemStyleOpt = opt && opt.itemStyle; - if (!itemStyleOpt) { - return; - } - for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) { - var styleName = POSSIBLE_STYLES[i]; - var normalItemStyleOpt = itemStyleOpt.normal; - var emphasisItemStyleOpt = itemStyleOpt.emphasis; - if (normalItemStyleOpt && normalItemStyleOpt[styleName]) { - opt[styleName] = opt[styleName] || {}; - if (!opt[styleName].normal) { - opt[styleName].normal = normalItemStyleOpt[styleName]; - } else { - merge(opt[styleName].normal, normalItemStyleOpt[styleName]); - } - normalItemStyleOpt[styleName] = null; - } - if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) { - opt[styleName] = opt[styleName] || {}; - if (!opt[styleName].emphasis) { - opt[styleName].emphasis = emphasisItemStyleOpt[styleName]; - } else { - merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]); - } - emphasisItemStyleOpt[styleName] = null; - } - } -} -function convertNormalEmphasis(opt, optType, useExtend) { - if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) { - var normalOpt = opt[optType].normal; - var emphasisOpt = opt[optType].emphasis; - if (normalOpt) { - if (useExtend) { - opt[optType].normal = opt[optType].emphasis = null; - defaults(opt[optType], normalOpt); - } else { - opt[optType] = normalOpt; - } - } - if (emphasisOpt) { - opt.emphasis = opt.emphasis || {}; - opt.emphasis[optType] = emphasisOpt; - if (emphasisOpt.focus) { - opt.emphasis.focus = emphasisOpt.focus; - } - if (emphasisOpt.blurScope) { - opt.emphasis.blurScope = emphasisOpt.blurScope; - } - } - } -} -function removeEC3NormalStatus(opt) { - convertNormalEmphasis(opt, "itemStyle"); - convertNormalEmphasis(opt, "lineStyle"); - convertNormalEmphasis(opt, "areaStyle"); - convertNormalEmphasis(opt, "label"); - convertNormalEmphasis(opt, "labelLine"); - convertNormalEmphasis(opt, "upperLabel"); - convertNormalEmphasis(opt, "edgeLabel"); -} -function compatTextStyle(opt, propName) { - var labelOptSingle = isObject$1(opt) && opt[propName]; - var textStyle = isObject$1(labelOptSingle) && labelOptSingle.textStyle; - if (textStyle) { - for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) { - var textPropName = TEXT_STYLE_OPTIONS[i]; - if (textStyle.hasOwnProperty(textPropName)) { - labelOptSingle[textPropName] = textStyle[textPropName]; - } - } - } -} -function compatEC3CommonStyles(opt) { - if (opt) { - removeEC3NormalStatus(opt); - compatTextStyle(opt, "label"); - opt.emphasis && compatTextStyle(opt.emphasis, "label"); - } -} -function processSeries(seriesOpt) { - if (!isObject$1(seriesOpt)) { - return; - } - compatEC2ItemStyle(seriesOpt); - removeEC3NormalStatus(seriesOpt); - compatTextStyle(seriesOpt, "label"); - compatTextStyle(seriesOpt, "upperLabel"); - compatTextStyle(seriesOpt, "edgeLabel"); - if (seriesOpt.emphasis) { - compatTextStyle(seriesOpt.emphasis, "label"); - compatTextStyle(seriesOpt.emphasis, "upperLabel"); - compatTextStyle(seriesOpt.emphasis, "edgeLabel"); - } - var markPoint = seriesOpt.markPoint; - if (markPoint) { - compatEC2ItemStyle(markPoint); - compatEC3CommonStyles(markPoint); - } - var markLine = seriesOpt.markLine; - if (markLine) { - compatEC2ItemStyle(markLine); - compatEC3CommonStyles(markLine); - } - var markArea = seriesOpt.markArea; - if (markArea) { - compatEC3CommonStyles(markArea); - } - var data = seriesOpt.data; - if (seriesOpt.type === "graph") { - data = data || seriesOpt.nodes; - var edgeData = seriesOpt.links || seriesOpt.edges; - if (edgeData && !isTypedArray(edgeData)) { - for (var i = 0; i < edgeData.length; i++) { - compatEC3CommonStyles(edgeData[i]); - } - } - each$2(seriesOpt.categories, function(opt) { - removeEC3NormalStatus(opt); - }); - } - if (data && !isTypedArray(data)) { - for (var i = 0; i < data.length; i++) { - compatEC3CommonStyles(data[i]); - } - } - markPoint = seriesOpt.markPoint; - if (markPoint && markPoint.data) { - var mpData = markPoint.data; - for (var i = 0; i < mpData.length; i++) { - compatEC3CommonStyles(mpData[i]); - } - } - markLine = seriesOpt.markLine; - if (markLine && markLine.data) { - var mlData = markLine.data; - for (var i = 0; i < mlData.length; i++) { - if (isArray(mlData[i])) { - compatEC3CommonStyles(mlData[i][0]); - compatEC3CommonStyles(mlData[i][1]); - } else { - compatEC3CommonStyles(mlData[i]); - } - } - } - if (seriesOpt.type === "gauge") { - compatTextStyle(seriesOpt, "axisLabel"); - compatTextStyle(seriesOpt, "title"); - compatTextStyle(seriesOpt, "detail"); - } else if (seriesOpt.type === "treemap") { - convertNormalEmphasis(seriesOpt.breadcrumb, "itemStyle"); - each$2(seriesOpt.levels, function(opt) { - removeEC3NormalStatus(opt); - }); - } else if (seriesOpt.type === "tree") { - removeEC3NormalStatus(seriesOpt.leaves); - } -} -function toArr(o) { - return isArray(o) ? o : o ? [o] : []; -} -function toObj(o) { - return (isArray(o) ? o[0] : o) || {}; -} -function globalCompatStyle(option, isTheme) { - each(toArr(option.series), function(seriesOpt) { - isObject$1(seriesOpt) && processSeries(seriesOpt); - }); - var axes = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"]; - isTheme && axes.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"); - each(axes, function(axisName) { - each(toArr(option[axisName]), function(axisOpt) { - if (axisOpt) { - compatTextStyle(axisOpt, "axisLabel"); - compatTextStyle(axisOpt.axisPointer, "label"); - } - }); - }); - each(toArr(option.parallel), function(parallelOpt) { - var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault; - compatTextStyle(parallelAxisDefault, "axisLabel"); - compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, "label"); - }); - each(toArr(option.calendar), function(calendarOpt) { - convertNormalEmphasis(calendarOpt, "itemStyle"); - compatTextStyle(calendarOpt, "dayLabel"); - compatTextStyle(calendarOpt, "monthLabel"); - compatTextStyle(calendarOpt, "yearLabel"); - }); - each(toArr(option.radar), function(radarOpt) { - compatTextStyle(radarOpt, "name"); - if (radarOpt.name && radarOpt.axisName == null) { - radarOpt.axisName = radarOpt.name; - delete radarOpt.name; - } - if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) { - radarOpt.axisNameGap = radarOpt.nameGap; - delete radarOpt.nameGap; - } - }); - each(toArr(option.geo), function(geoOpt) { - if (isObject$1(geoOpt)) { - compatEC3CommonStyles(geoOpt); - each(toArr(geoOpt.regions), function(regionObj) { - compatEC3CommonStyles(regionObj); - }); - } - }); - each(toArr(option.timeline), function(timelineOpt) { - compatEC3CommonStyles(timelineOpt); - convertNormalEmphasis(timelineOpt, "label"); - convertNormalEmphasis(timelineOpt, "itemStyle"); - convertNormalEmphasis(timelineOpt, "controlStyle", true); - var data = timelineOpt.data; - isArray(data) && each$2(data, function(item) { - if (isObject$2(item)) { - convertNormalEmphasis(item, "label"); - convertNormalEmphasis(item, "itemStyle"); - } - }); - }); - each(toArr(option.toolbox), function(toolboxOpt) { - convertNormalEmphasis(toolboxOpt, "iconStyle"); - each(toolboxOpt.feature, function(featureOpt) { - convertNormalEmphasis(featureOpt, "iconStyle"); - }); - }); - compatTextStyle(toObj(option.axisPointer), "label"); - compatTextStyle(toObj(option.tooltip).axisPointer, "label"); -} -function get(opt, path) { - var pathArr = path.split(","); - var obj = opt; - for (var i = 0; i < pathArr.length; i++) { - obj = obj && obj[pathArr[i]]; - if (obj == null) { - break; - } - } - return obj; -} -function set(opt, path, val, overwrite) { - var pathArr = path.split(","); - var obj = opt; - var key; - var i = 0; - for (; i < pathArr.length - 1; i++) { - key = pathArr[i]; - if (obj[key] == null) { - obj[key] = {}; - } - obj = obj[key]; - } - if (overwrite || obj[pathArr[i]] == null) { - obj[pathArr[i]] = val; - } -} -function compatLayoutProperties(option) { - option && each$2(LAYOUT_PROPERTIES, function(prop) { - if (prop[0] in option && !(prop[1] in option)) { - option[prop[1]] = option[prop[0]]; - } - }); -} -var LAYOUT_PROPERTIES = [["x", "left"], ["y", "top"], ["x2", "right"], ["y2", "bottom"]]; -var COMPATITABLE_COMPONENTS = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"]; -var BAR_ITEM_STYLE_MAP = [["borderRadius", "barBorderRadius"], ["borderColor", "barBorderColor"], ["borderWidth", "barBorderWidth"]]; -function compatBarItemStyle(option) { - var itemStyle = option && option.itemStyle; - if (itemStyle) { - for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) { - var oldName = BAR_ITEM_STYLE_MAP[i][1]; - var newName = BAR_ITEM_STYLE_MAP[i][0]; - if (itemStyle[oldName] != null) { - itemStyle[newName] = itemStyle[oldName]; - } - } - } -} -function compatPieLabel(option) { - if (!option) { - return; - } - if (option.alignTo === "edge" && option.margin != null && option.edgeDistance == null) { - option.edgeDistance = option.margin; - } -} -function compatSunburstState(option) { - if (!option) { - return; - } - if (option.downplay && !option.blur) { - option.blur = option.downplay; - } -} -function compatGraphFocus(option) { - if (!option) { - return; - } - if (option.focusNodeAdjacency != null) { - option.emphasis = option.emphasis || {}; - if (option.emphasis.focus == null) { - option.emphasis.focus = "adjacency"; - } - } -} -function traverseTree(data, cb) { - if (data) { - for (var i = 0; i < data.length; i++) { - cb(data[i]); - data[i] && traverseTree(data[i].children, cb); - } - } -} -function globalBackwardCompat(option, isTheme) { - globalCompatStyle(option, isTheme); - option.series = normalizeToArray(option.series); - each$2(option.series, function(seriesOpt) { - if (!isObject$2(seriesOpt)) { - return; - } - var seriesType2 = seriesOpt.type; - if (seriesType2 === "line") { - if (seriesOpt.clipOverflow != null) { - seriesOpt.clip = seriesOpt.clipOverflow; - } - } else if (seriesType2 === "pie" || seriesType2 === "gauge") { - if (seriesOpt.clockWise != null) { - seriesOpt.clockwise = seriesOpt.clockWise; - } - compatPieLabel(seriesOpt.label); - var data = seriesOpt.data; - if (data && !isTypedArray(data)) { - for (var i = 0; i < data.length; i++) { - compatPieLabel(data[i]); - } - } - if (seriesOpt.hoverOffset != null) { - seriesOpt.emphasis = seriesOpt.emphasis || {}; - if (seriesOpt.emphasis.scaleSize = null) { - seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset; - } - } - } else if (seriesType2 === "gauge") { - var pointerColor = get(seriesOpt, "pointer.color"); - pointerColor != null && set(seriesOpt, "itemStyle.color", pointerColor); - } else if (seriesType2 === "bar") { - compatBarItemStyle(seriesOpt); - compatBarItemStyle(seriesOpt.backgroundStyle); - compatBarItemStyle(seriesOpt.emphasis); - var data = seriesOpt.data; - if (data && !isTypedArray(data)) { - for (var i = 0; i < data.length; i++) { - if (typeof data[i] === "object") { - compatBarItemStyle(data[i]); - compatBarItemStyle(data[i] && data[i].emphasis); - } - } - } - } else if (seriesType2 === "sunburst") { - var highlightPolicy = seriesOpt.highlightPolicy; - if (highlightPolicy) { - seriesOpt.emphasis = seriesOpt.emphasis || {}; - if (!seriesOpt.emphasis.focus) { - seriesOpt.emphasis.focus = highlightPolicy; - } - } - compatSunburstState(seriesOpt); - traverseTree(seriesOpt.data, compatSunburstState); - } else if (seriesType2 === "graph" || seriesType2 === "sankey") { - compatGraphFocus(seriesOpt); - } else if (seriesType2 === "map") { - if (seriesOpt.mapType && !seriesOpt.map) { - seriesOpt.map = seriesOpt.mapType; - } - if (seriesOpt.mapLocation) { - defaults(seriesOpt, seriesOpt.mapLocation); - } - } - if (seriesOpt.hoverAnimation != null) { - seriesOpt.emphasis = seriesOpt.emphasis || {}; - if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) { - seriesOpt.emphasis.scale = seriesOpt.hoverAnimation; - } - } - compatLayoutProperties(seriesOpt); - }); - if (option.dataRange) { - option.visualMap = option.dataRange; - } - each$2(COMPATITABLE_COMPONENTS, function(componentName) { - var options = option[componentName]; - if (options) { - if (!isArray(options)) { - options = [options]; - } - each$2(options, function(option2) { - compatLayoutProperties(option2); - }); - } - }); -} -function dataStack(ecModel) { - var stackInfoMap = createHashMap(); - ecModel.eachSeries(function(seriesModel) { - var stack = seriesModel.get("stack"); - if (stack) { - var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []); - var data = seriesModel.getData(); - var stackInfo = { - // Used for calculate axis extent automatically. - // TODO: Type getCalculationInfo return more specific type? - stackResultDimension: data.getCalculationInfo("stackResultDimension"), - stackedOverDimension: data.getCalculationInfo("stackedOverDimension"), - stackedDimension: data.getCalculationInfo("stackedDimension"), - stackedByDimension: data.getCalculationInfo("stackedByDimension"), - isStackedByIndex: data.getCalculationInfo("isStackedByIndex"), - data, - seriesModel - }; - if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) { - return; - } - stackInfoList.length && data.setCalculationInfo("stackedOnSeries", stackInfoList[stackInfoList.length - 1].seriesModel); - stackInfoList.push(stackInfo); - } - }); - stackInfoMap.each(calculateStack); -} -function calculateStack(stackInfoList) { - each$2(stackInfoList, function(targetStackInfo, idxInStack) { - var resultVal = []; - var resultNaN = [NaN, NaN]; - var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension]; - var targetData = targetStackInfo.data; - var isStackedByIndex = targetStackInfo.isStackedByIndex; - var stackStrategy = targetStackInfo.seriesModel.get("stackStrategy") || "samesign"; - targetData.modify(dims, function(v0, v1, dataIndex) { - var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex); - if (isNaN(sum)) { - return resultNaN; - } - var byValue; - var stackedDataRawIndex; - if (isStackedByIndex) { - stackedDataRawIndex = targetData.getRawIndex(dataIndex); - } else { - byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex); - } - var stackedOver = NaN; - for (var j = idxInStack - 1; j >= 0; j--) { - var stackInfo = stackInfoList[j]; - if (!isStackedByIndex) { - stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue); - } - if (stackedDataRawIndex >= 0) { - var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex); - if (stackStrategy === "all" || stackStrategy === "positive" && val > 0 || stackStrategy === "negative" && val < 0 || stackStrategy === "samesign" && sum >= 0 && val > 0 || stackStrategy === "samesign" && sum <= 0 && val < 0) { - sum = addSafe(sum, val); - stackedOver = val; - break; - } - } - } - resultVal[0] = sum; - resultVal[1] = stackedOver; - return resultVal; - }); - }); -} -var SourceImpl = ( - /** @class */ - function() { - function SourceImpl2(fields) { - this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []); - this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN; - this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN; - this.startIndex = fields.startIndex || 0; - this.dimensionsDetectedCount = fields.dimensionsDetectedCount; - this.metaRawOption = fields.metaRawOption; - var dimensionsDefine = this.dimensionsDefine = fields.dimensionsDefine; - if (dimensionsDefine) { - for (var i = 0; i < dimensionsDefine.length; i++) { - var dim = dimensionsDefine[i]; - if (dim.type == null) { - if (guessOrdinal(this, i) === BE_ORDINAL.Must) { - dim.type = "ordinal"; - } - } - } - } - } - return SourceImpl2; - }() -); -function isSourceInstance(val) { - return val instanceof SourceImpl; -} -function createSource(sourceData, thisMetaRawOption, sourceFormat) { - sourceFormat = sourceFormat || detectSourceFormat(sourceData); - var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy; - var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions); - var source = new SourceImpl({ - data: sourceData, - sourceFormat, - seriesLayoutBy, - dimensionsDefine: determined.dimensionsDefine, - startIndex: determined.startIndex, - dimensionsDetectedCount: determined.dimensionsDetectedCount, - metaRawOption: clone$1(thisMetaRawOption) - }); - return source; -} -function createSourceFromSeriesDataOption(data) { - return new SourceImpl({ - data, - sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL - }); -} -function cloneSourceShallow(source) { - return new SourceImpl({ - data: source.data, - sourceFormat: source.sourceFormat, - seriesLayoutBy: source.seriesLayoutBy, - dimensionsDefine: clone$1(source.dimensionsDefine), - startIndex: source.startIndex, - dimensionsDetectedCount: source.dimensionsDetectedCount - }); -} -function detectSourceFormat(data) { - var sourceFormat = SOURCE_FORMAT_UNKNOWN; - if (isTypedArray(data)) { - sourceFormat = SOURCE_FORMAT_TYPED_ARRAY; - } else if (isArray(data)) { - if (data.length === 0) { - sourceFormat = SOURCE_FORMAT_ARRAY_ROWS; - } - for (var i = 0, len = data.length; i < len; i++) { - var item = data[i]; - if (item == null) { - continue; - } else if (isArray(item)) { - sourceFormat = SOURCE_FORMAT_ARRAY_ROWS; - break; - } else if (isObject$2(item)) { - sourceFormat = SOURCE_FORMAT_OBJECT_ROWS; - break; - } - } - } else if (isObject$2(data)) { - for (var key in data) { - if (hasOwn(data, key) && isArrayLike(data[key])) { - sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS; - break; - } - } - } - return sourceFormat; -} -function determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) { - var dimensionsDetectedCount; - var startIndex; - if (!data) { - return { - dimensionsDefine: normalizeDimensionsOption(dimensionsDefine), - startIndex, - dimensionsDetectedCount - }; - } - if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) { - var dataArrayRows = data; - if (sourceHeader === "auto" || sourceHeader == null) { - arrayRowsTravelFirst(function(val) { - if (val != null && val !== "-") { - if (isString(val)) { - startIndex == null && (startIndex = 1); - } else { - startIndex = 0; - } - } - }, seriesLayoutBy, dataArrayRows, 10); - } else { - startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0; - } - if (!dimensionsDefine && startIndex === 1) { - dimensionsDefine = []; - arrayRowsTravelFirst(function(val, index) { - dimensionsDefine[index] = val != null ? val + "" : ""; - }, seriesLayoutBy, dataArrayRows, Infinity); - } - dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null; - } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) { - if (!dimensionsDefine) { - dimensionsDefine = objectRowsCollectDimensions(data); - } - } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) { - if (!dimensionsDefine) { - dimensionsDefine = []; - each$2(data, function(colArr, key) { - dimensionsDefine.push(key); - }); - } - } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) { - var value0 = getDataItemValue(data[0]); - dimensionsDetectedCount = isArray(value0) && value0.length || 1; - } else - ; - return { - startIndex, - dimensionsDefine: normalizeDimensionsOption(dimensionsDefine), - dimensionsDetectedCount - }; -} -function objectRowsCollectDimensions(data) { - var firstIndex = 0; - var obj; - while (firstIndex < data.length && !(obj = data[firstIndex++])) { - } - if (obj) { - return keys(obj); - } -} -function normalizeDimensionsOption(dimensionsDefine) { - if (!dimensionsDefine) { - return; - } - var nameMap = createHashMap(); - return map$1(dimensionsDefine, function(rawItem, index) { - rawItem = isObject$2(rawItem) ? rawItem : { - name: rawItem - }; - var item = { - name: rawItem.name, - displayName: rawItem.displayName, - type: rawItem.type - }; - if (item.name == null) { - return item; - } - item.name += ""; - if (item.displayName == null) { - item.displayName = item.name; - } - var exist = nameMap.get(item.name); - if (!exist) { - nameMap.set(item.name, { - count: 1 - }); - } else { - item.name += "-" + exist.count++; - } - return item; - }); -} -function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) { - if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) { - for (var i = 0; i < data.length && i < maxLoop; i++) { - cb(data[i] ? data[i][0] : null, i); - } - } else { - var value0 = data[0] || []; - for (var i = 0; i < value0.length && i < maxLoop; i++) { - cb(value0[i], i); - } - } -} -function shouldRetrieveDataByName(source) { - var sourceFormat = source.sourceFormat; - return sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS; -} -var _a, _b, _c; -var providerMethods; -var mountMethods; -var DefaultDataProvider = ( - /** @class */ - function() { - function DefaultDataProvider2(sourceParam, dimSize) { - var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam; - this._source = source; - var data = this._data = source.data; - if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) { - this._offset = 0; - this._dimSize = dimSize; - this._data = data; - } - mountMethods(this, data, source); - } - DefaultDataProvider2.prototype.getSource = function() { - return this._source; - }; - DefaultDataProvider2.prototype.count = function() { - return 0; - }; - DefaultDataProvider2.prototype.getItem = function(idx, out2) { - return; - }; - DefaultDataProvider2.prototype.appendData = function(newData) { - }; - DefaultDataProvider2.prototype.clean = function() { - }; - DefaultDataProvider2.protoInitialize = function() { - var proto2 = DefaultDataProvider2.prototype; - proto2.pure = false; - proto2.persistent = true; - }(); - DefaultDataProvider2.internalField = function() { - var _a2; - mountMethods = function(provider, data, source) { - var sourceFormat = source.sourceFormat; - var seriesLayoutBy = source.seriesLayoutBy; - var startIndex = source.startIndex; - var dimsDef = source.dimensionsDefine; - var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)]; - extend(provider, methods); - if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) { - provider.getItem = getItemForTypedArray; - provider.count = countForTypedArray; - provider.fillStorage = fillStorageForTypedArray; - } else { - var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy); - provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef); - var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy); - provider.count = bind(rawCounter, null, data, startIndex, dimsDef); - } - }; - var getItemForTypedArray = function(idx, out2) { - idx = idx - this._offset; - out2 = out2 || []; - var data = this._data; - var dimSize = this._dimSize; - var offset = dimSize * idx; - for (var i = 0; i < dimSize; i++) { - out2[i] = data[offset + i]; - } - return out2; - }; - var fillStorageForTypedArray = function(start, end, storage, extent3) { - var data = this._data; - var dimSize = this._dimSize; - for (var dim = 0; dim < dimSize; dim++) { - var dimExtent = extent3[dim]; - var min2 = dimExtent[0] == null ? Infinity : dimExtent[0]; - var max2 = dimExtent[1] == null ? -Infinity : dimExtent[1]; - var count = end - start; - var arr = storage[dim]; - for (var i = 0; i < count; i++) { - var val = data[i * dimSize + dim]; - arr[start + i] = val; - val < min2 && (min2 = val); - val > max2 && (max2 = val); - } - dimExtent[0] = min2; - dimExtent[1] = max2; - } - }; - var countForTypedArray = function() { - return this._data ? this._data.length / this._dimSize : 0; - }; - providerMethods = (_a2 = {}, _a2[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_COLUMN] = { - pure: true, - appendData: appendDataSimply - }, _a2[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_ROW] = { - pure: true, - appendData: function() { - throw new Error('Do not support appendData when set seriesLayoutBy: "row".'); - } - }, _a2[SOURCE_FORMAT_OBJECT_ROWS] = { - pure: true, - appendData: appendDataSimply - }, _a2[SOURCE_FORMAT_KEYED_COLUMNS] = { - pure: true, - appendData: function(newData) { - var data = this._data; - each$2(newData, function(newCol, key) { - var oldCol = data[key] || (data[key] = []); - for (var i = 0; i < (newCol || []).length; i++) { - oldCol.push(newCol[i]); - } - }); - } - }, _a2[SOURCE_FORMAT_ORIGINAL] = { - appendData: appendDataSimply - }, _a2[SOURCE_FORMAT_TYPED_ARRAY] = { - persistent: false, - pure: true, - appendData: function(newData) { - this._data = newData; - }, - // Clean self if data is already used. - clean: function() { - this._offset += this.count(); - this._data = null; - } - }, _a2); - function appendDataSimply(newData) { - for (var i = 0; i < newData.length; i++) { - this._data.push(newData[i]); - } - } - }(); - return DefaultDataProvider2; - }() -); -var getItemSimply = function(rawData, startIndex, dimsDef, idx) { - return rawData[idx]; -}; -var rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_COLUMN] = function(rawData, startIndex, dimsDef, idx) { - return rawData[idx + startIndex]; -}, _a[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_ROW] = function(rawData, startIndex, dimsDef, idx, out2) { - idx += startIndex; - var item = out2 || []; - var data = rawData; - for (var i = 0; i < data.length; i++) { - var row = data[i]; - item[i] = row ? row[idx] : null; - } - return item; -}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function(rawData, startIndex, dimsDef, idx, out2) { - var item = out2 || []; - for (var i = 0; i < dimsDef.length; i++) { - var dimName = dimsDef[i].name; - var col = rawData[dimName]; - item[i] = col ? col[idx] : null; - } - return item; -}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a); -function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) { - var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)]; - return method; -} -var countSimply = function(rawData, startIndex, dimsDef) { - return rawData.length; -}; -var rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_COLUMN] = function(rawData, startIndex, dimsDef) { - return Math.max(0, rawData.length - startIndex); -}, _b[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_ROW] = function(rawData, startIndex, dimsDef) { - var row = rawData[0]; - return row ? Math.max(0, row.length - startIndex) : 0; -}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function(rawData, startIndex, dimsDef) { - var dimName = dimsDef[0].name; - var col = rawData[dimName]; - return col ? col.length : 0; -}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b); -function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) { - var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)]; - return method; -} -var getRawValueSimply = function(dataItem, dimIndex, property) { - return dataItem[dimIndex]; -}; -var rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function(dataItem, dimIndex, property) { - return dataItem[property]; -}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function(dataItem, dimIndex, property) { - var value = getDataItemValue(dataItem); - return !(value instanceof Array) ? value : value[dimIndex]; -}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c); -function getRawSourceValueGetter(sourceFormat) { - var method = rawSourceValueGetterMap[sourceFormat]; - return method; -} -function getMethodMapKey(sourceFormat, seriesLayoutBy) { - return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + "_" + seriesLayoutBy : sourceFormat; -} -function retrieveRawValue(data, dataIndex, dim) { - if (!data) { - return; - } - var dataItem = data.getRawDataItem(dataIndex); - if (dataItem == null) { - return; - } - var store = data.getStore(); - var sourceFormat = store.getSource().sourceFormat; - if (dim != null) { - var dimIndex = data.getDimensionIndex(dim); - var property = store.getDimensionProperty(dimIndex); - return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, property); - } else { - var result = dataItem; - if (sourceFormat === SOURCE_FORMAT_ORIGINAL) { - result = getDataItemValue(dataItem); - } - return result; - } -} -var DIMENSION_LABEL_REG = /\{@(.+?)\}/g; -var DataFormatMixin = ( - /** @class */ - function() { - function DataFormatMixin2() { - } - DataFormatMixin2.prototype.getDataParams = function(dataIndex, dataType) { - var data = this.getData(dataType); - var rawValue = this.getRawValue(dataIndex, dataType); - var rawDataIndex = data.getRawIndex(dataIndex); - var name = data.getName(dataIndex); - var itemOpt = data.getRawDataItem(dataIndex); - var style = data.getItemVisual(dataIndex, "style"); - var color = style && style[data.getItemVisual(dataIndex, "drawType") || "fill"]; - var borderColor = style && style.stroke; - var mainType = this.mainType; - var isSeries2 = mainType === "series"; - var userOutput = data.userOutput && data.userOutput.get(); - return { - componentType: mainType, - componentSubType: this.subType, - componentIndex: this.componentIndex, - seriesType: isSeries2 ? this.subType : null, - seriesIndex: this.seriesIndex, - seriesId: isSeries2 ? this.id : null, - seriesName: isSeries2 ? this.name : null, - name, - dataIndex: rawDataIndex, - data: itemOpt, - dataType, - value: rawValue, - color, - borderColor, - dimensionNames: userOutput ? userOutput.fullDimensions : null, - encode: userOutput ? userOutput.encode : null, - // Param name list for mapping `a`, `b`, `c`, `d`, `e` - $vars: ["seriesName", "name", "value"] - }; - }; - DataFormatMixin2.prototype.getFormattedLabel = function(dataIndex, status, dataType, labelDimIndex, formatter, extendParams) { - status = status || "normal"; - var data = this.getData(dataType); - var params = this.getDataParams(dataIndex, dataType); - if (extendParams) { - params.value = extendParams.interpolatedValue; - } - if (labelDimIndex != null && isArray(params.value)) { - params.value = params.value[labelDimIndex]; - } - if (!formatter) { - var itemModel = data.getItemModel(dataIndex); - formatter = itemModel.get(status === "normal" ? ["label", "formatter"] : [status, "label", "formatter"]); - } - if (isFunction(formatter)) { - params.status = status; - params.dimensionIndex = labelDimIndex; - return formatter(params); - } else if (isString(formatter)) { - var str = formatTpl(formatter, params); - return str.replace(DIMENSION_LABEL_REG, function(origin, dimStr) { - var len = dimStr.length; - var dimLoose = dimStr; - if (dimLoose.charAt(0) === "[" && dimLoose.charAt(len - 1) === "]") { - dimLoose = +dimLoose.slice(1, len - 1); - } - var val = retrieveRawValue(data, dataIndex, dimLoose); - if (extendParams && isArray(extendParams.interpolatedValue)) { - var dimIndex = data.getDimensionIndex(dimLoose); - if (dimIndex >= 0) { - val = extendParams.interpolatedValue[dimIndex]; - } - } - return val != null ? val + "" : ""; - }); - } - }; - DataFormatMixin2.prototype.getRawValue = function(idx, dataType) { - return retrieveRawValue(this.getData(dataType), idx); - }; - DataFormatMixin2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - return; - }; - return DataFormatMixin2; - }() -); -function normalizeTooltipFormatResult(result) { - var markupText; - var markupFragment; - if (isObject$2(result)) { - if (result.type) { - markupFragment = result; - } - } else { - markupText = result; - } - return { - text: markupText, - // markers: markers || markersExisting, - frag: markupFragment - }; -} -function createTask(define) { - return new Task(define); -} -var Task = ( - /** @class */ - function() { - function Task2(define) { - define = define || {}; - this._reset = define.reset; - this._plan = define.plan; - this._count = define.count; - this._onDirty = define.onDirty; - this._dirty = true; - } - Task2.prototype.perform = function(performArgs) { - var upTask = this._upstream; - var skip = performArgs && performArgs.skip; - if (this._dirty && upTask) { - var context = this.context; - context.data = context.outputData = upTask.context.outputData; - } - if (this.__pipeline) { - this.__pipeline.currentTask = this; - } - var planResult; - if (this._plan && !skip) { - planResult = this._plan(this.context); - } - var lastModBy = normalizeModBy(this._modBy); - var lastModDataCount = this._modDataCount || 0; - var modBy = normalizeModBy(performArgs && performArgs.modBy); - var modDataCount = performArgs && performArgs.modDataCount || 0; - if (lastModBy !== modBy || lastModDataCount !== modDataCount) { - planResult = "reset"; - } - function normalizeModBy(val) { - !(val >= 1) && (val = 1); - return val; - } - var forceFirstProgress; - if (this._dirty || planResult === "reset") { - this._dirty = false; - forceFirstProgress = this._doReset(skip); - } - this._modBy = modBy; - this._modDataCount = modDataCount; - var step = performArgs && performArgs.step; - if (upTask) { - this._dueEnd = upTask._outputDueEnd; - } else { - this._dueEnd = this._count ? this._count(this.context) : Infinity; - } - if (this._progress) { - var start = this._dueIndex; - var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd); - if (!skip && (forceFirstProgress || start < end)) { - var progress = this._progress; - if (isArray(progress)) { - for (var i = 0; i < progress.length; i++) { - this._doProgress(progress[i], start, end, modBy, modDataCount); - } - } else { - this._doProgress(progress, start, end, modBy, modDataCount); - } - } - this._dueIndex = end; - var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end; - this._outputDueEnd = outputDueEnd; - } else { - this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd; - } - return this.unfinished(); - }; - Task2.prototype.dirty = function() { - this._dirty = true; - this._onDirty && this._onDirty(this.context); - }; - Task2.prototype._doProgress = function(progress, start, end, modBy, modDataCount) { - iterator.reset(start, end, modBy, modDataCount); - this._callingProgress = progress; - this._callingProgress({ - start, - end, - count: end - start, - next: iterator.next - }, this.context); - }; - Task2.prototype._doReset = function(skip) { - this._dueIndex = this._outputDueEnd = this._dueEnd = 0; - this._settedOutputEnd = null; - var progress; - var forceFirstProgress; - if (!skip && this._reset) { - progress = this._reset(this.context); - if (progress && progress.progress) { - forceFirstProgress = progress.forceFirstProgress; - progress = progress.progress; - } - if (isArray(progress) && !progress.length) { - progress = null; - } - } - this._progress = progress; - this._modBy = this._modDataCount = null; - var downstream = this._downstream; - downstream && downstream.dirty(); - return forceFirstProgress; - }; - Task2.prototype.unfinished = function() { - return this._progress && this._dueIndex < this._dueEnd; - }; - Task2.prototype.pipe = function(downTask) { - if (this._downstream !== downTask || this._dirty) { - this._downstream = downTask; - downTask._upstream = this; - downTask.dirty(); - } - }; - Task2.prototype.dispose = function() { - if (this._disposed) { - return; - } - this._upstream && (this._upstream._downstream = null); - this._downstream && (this._downstream._upstream = null); - this._dirty = false; - this._disposed = true; - }; - Task2.prototype.getUpstream = function() { - return this._upstream; - }; - Task2.prototype.getDownstream = function() { - return this._downstream; - }; - Task2.prototype.setOutputEnd = function(end) { - this._outputDueEnd = this._settedOutputEnd = end; - }; - return Task2; - }() -); -var iterator = function() { - var end; - var current; - var modBy; - var modDataCount; - var winCount; - var it = { - reset: function(s, e2, sStep, sCount) { - current = s; - end = e2; - modBy = sStep; - modDataCount = sCount; - winCount = Math.ceil(modDataCount / modBy); - it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext; - } - }; - return it; - function sequentialNext() { - return current < end ? current++ : null; - } - function modNext() { - var dataIndex = current % winCount * modBy + Math.ceil(current / winCount); - var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current; - current++; - return result; - } -}(); -function parseDataValue(value, opt) { - var dimType = opt && opt.type; - if (dimType === "ordinal") { - return value; - } - if (dimType === "time" && !isNumber(value) && value != null && value !== "-") { - value = +parseDate(value); - } - return value == null || value === "" ? NaN : +value; -} -var valueParserMap = createHashMap({ - "number": function(val) { - return parseFloat(val); - }, - "time": function(val) { - return +parseDate(val); - }, - "trim": function(val) { - return isString(val) ? trim(val) : val; - } -}); -function getRawValueParser(type) { - return valueParserMap.get(type); -} -var ORDER_COMPARISON_OP_MAP = { - lt: function(lval, rval) { - return lval < rval; - }, - lte: function(lval, rval) { - return lval <= rval; - }, - gt: function(lval, rval) { - return lval > rval; - }, - gte: function(lval, rval) { - return lval >= rval; - } -}; -var FilterOrderComparator = ( - /** @class */ - function() { - function FilterOrderComparator2(op, rval) { - if (!isNumber(rval)) { - var errMsg = ""; - throwError(errMsg); - } - this._opFn = ORDER_COMPARISON_OP_MAP[op]; - this._rvalFloat = numericToNumber(rval); - } - FilterOrderComparator2.prototype.evaluate = function(lval) { - return isNumber(lval) ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat); - }; - return FilterOrderComparator2; - }() -); -var SortOrderComparator = ( - /** @class */ - function() { - function SortOrderComparator2(order, incomparable) { - var isDesc = order === "desc"; - this._resultLT = isDesc ? 1 : -1; - if (incomparable == null) { - incomparable = isDesc ? "min" : "max"; - } - this._incomparable = incomparable === "min" ? -Infinity : Infinity; - } - SortOrderComparator2.prototype.evaluate = function(lval, rval) { - var lvalFloat = isNumber(lval) ? lval : numericToNumber(lval); - var rvalFloat = isNumber(rval) ? rval : numericToNumber(rval); - var lvalNotNumeric = isNaN(lvalFloat); - var rvalNotNumeric = isNaN(rvalFloat); - if (lvalNotNumeric) { - lvalFloat = this._incomparable; - } - if (rvalNotNumeric) { - rvalFloat = this._incomparable; - } - if (lvalNotNumeric && rvalNotNumeric) { - var lvalIsStr = isString(lval); - var rvalIsStr = isString(rval); - if (lvalIsStr) { - lvalFloat = rvalIsStr ? lval : 0; - } - if (rvalIsStr) { - rvalFloat = lvalIsStr ? rval : 0; - } - } - return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0; - }; - return SortOrderComparator2; - }() -); -var FilterEqualityComparator = ( - /** @class */ - function() { - function FilterEqualityComparator2(isEq, rval) { - this._rval = rval; - this._isEQ = isEq; - this._rvalTypeof = typeof rval; - this._rvalFloat = numericToNumber(rval); - } - FilterEqualityComparator2.prototype.evaluate = function(lval) { - var eqResult = lval === this._rval; - if (!eqResult) { - var lvalTypeof = typeof lval; - if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === "number" || this._rvalTypeof === "number")) { - eqResult = numericToNumber(lval) === this._rvalFloat; - } - } - return this._isEQ ? eqResult : !eqResult; - }; - return FilterEqualityComparator2; - }() -); -function createFilterComparator(op, rval) { - return op === "eq" || op === "ne" ? new FilterEqualityComparator(op === "eq", rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null; -} -var ExternalSource = ( - /** @class */ - function() { - function ExternalSource2() { - } - ExternalSource2.prototype.getRawData = function() { - throw new Error("not supported"); - }; - ExternalSource2.prototype.getRawDataItem = function(dataIndex) { - throw new Error("not supported"); - }; - ExternalSource2.prototype.cloneRawData = function() { - return; - }; - ExternalSource2.prototype.getDimensionInfo = function(dim) { - return; - }; - ExternalSource2.prototype.cloneAllDimensionInfo = function() { - return; - }; - ExternalSource2.prototype.count = function() { - return; - }; - ExternalSource2.prototype.retrieveValue = function(dataIndex, dimIndex) { - return; - }; - ExternalSource2.prototype.retrieveValueFromItem = function(dataItem, dimIndex) { - return; - }; - ExternalSource2.prototype.convertValue = function(rawVal, dimInfo) { - return parseDataValue(rawVal, dimInfo); - }; - return ExternalSource2; - }() -); -function createExternalSource(internalSource, externalTransform) { - var extSource = new ExternalSource(); - var data = internalSource.data; - var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat; - var sourceHeaderCount = internalSource.startIndex; - var errMsg = ""; - if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) { - throwError(errMsg); - } - var dimensions = []; - var dimsByName = {}; - var dimsDef = internalSource.dimensionsDefine; - if (dimsDef) { - each$2(dimsDef, function(dimDef, idx) { - var name = dimDef.name; - var dimDefExt = { - index: idx, - name, - displayName: dimDef.displayName - }; - dimensions.push(dimDefExt); - if (name != null) { - var errMsg_1 = ""; - if (hasOwn(dimsByName, name)) { - throwError(errMsg_1); - } - dimsByName[name] = dimDefExt; - } - }); - } else { - for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) { - dimensions.push({ - index: i - }); - } - } - var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN); - if (externalTransform.__isBuiltIn) { - extSource.getRawDataItem = function(dataIndex) { - return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex); - }; - extSource.getRawData = bind(getRawData, null, internalSource); - } - extSource.cloneRawData = bind(cloneRawData, null, internalSource); - var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN); - extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions); - var rawValueGetter = getRawSourceValueGetter(sourceFormat); - extSource.retrieveValue = function(dataIndex, dimIndex) { - var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex); - return retrieveValueFromItem(rawItem, dimIndex); - }; - var retrieveValueFromItem = extSource.retrieveValueFromItem = function(dataItem, dimIndex) { - if (dataItem == null) { - return; - } - var dimDef = dimensions[dimIndex]; - if (dimDef) { - return rawValueGetter(dataItem, dimIndex, dimDef.name); - } - }; - extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName); - extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions); - return extSource; -} -function getRawData(upstream) { - var sourceFormat = upstream.sourceFormat; - if (!isSupportedSourceFormat(sourceFormat)) { - var errMsg = ""; - throwError(errMsg); - } - return upstream.data; -} -function cloneRawData(upstream) { - var sourceFormat = upstream.sourceFormat; - var data = upstream.data; - if (!isSupportedSourceFormat(sourceFormat)) { - var errMsg = ""; - throwError(errMsg); - } - if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) { - var result = []; - for (var i = 0, len = data.length; i < len; i++) { - result.push(data[i].slice()); - } - return result; - } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) { - var result = []; - for (var i = 0, len = data.length; i < len; i++) { - result.push(extend({}, data[i])); - } - return result; - } -} -function getDimensionInfo(dimensions, dimsByName, dim) { - if (dim == null) { - return; - } - if (isNumber(dim) || !isNaN(dim) && !hasOwn(dimsByName, dim)) { - return dimensions[dim]; - } else if (hasOwn(dimsByName, dim)) { - return dimsByName[dim]; - } -} -function cloneAllDimensionInfo(dimensions) { - return clone$1(dimensions); -} -var externalTransformMap = createHashMap(); -function registerExternalTransform(externalTransform) { - externalTransform = clone$1(externalTransform); - var type = externalTransform.type; - var errMsg = ""; - if (!type) { - throwError(errMsg); - } - var typeParsed = type.split(":"); - if (typeParsed.length !== 2) { - throwError(errMsg); - } - var isBuiltIn = false; - if (typeParsed[0] === "echarts") { - type = typeParsed[1]; - isBuiltIn = true; - } - externalTransform.__isBuiltIn = isBuiltIn; - externalTransformMap.set(type, externalTransform); -} -function applyDataTransform(rawTransOption, sourceList, infoForPrint) { - var pipedTransOption = normalizeToArray(rawTransOption); - var pipeLen = pipedTransOption.length; - var errMsg = ""; - if (!pipeLen) { - throwError(errMsg); - } - for (var i = 0, len = pipeLen; i < len; i++) { - var transOption = pipedTransOption[i]; - sourceList = applySingleDataTransform(transOption, sourceList); - if (i !== len - 1) { - sourceList.length = Math.max(sourceList.length, 1); - } - } - return sourceList; -} -function applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) { - var errMsg = ""; - if (!upSourceList.length) { - throwError(errMsg); - } - if (!isObject$2(transOption)) { - throwError(errMsg); - } - var transType = transOption.type; - var externalTransform = externalTransformMap.get(transType); - if (!externalTransform) { - throwError(errMsg); - } - var extUpSourceList = map$1(upSourceList, function(upSource) { - return createExternalSource(upSource, externalTransform); - }); - var resultList = normalizeToArray(externalTransform.transform({ - upstream: extUpSourceList[0], - upstreamList: extUpSourceList, - config: clone$1(transOption.config) - })); - return map$1(resultList, function(result, resultIndex) { - var errMsg2 = ""; - if (!isObject$2(result)) { - throwError(errMsg2); - } - if (!result.data) { - throwError(errMsg2); - } - var sourceFormat = detectSourceFormat(result.data); - if (!isSupportedSourceFormat(sourceFormat)) { - throwError(errMsg2); - } - var resultMetaRawOption; - var firstUpSource = upSourceList[0]; - if (firstUpSource && resultIndex === 0 && !result.dimensions) { - var startIndex = firstUpSource.startIndex; - if (startIndex) { - result.data = firstUpSource.data.slice(0, startIndex).concat(result.data); - } - resultMetaRawOption = { - seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN, - sourceHeader: startIndex, - dimensions: firstUpSource.metaRawOption.dimensions - }; - } else { - resultMetaRawOption = { - seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN, - sourceHeader: 0, - dimensions: result.dimensions - }; - } - return createSource(result.data, resultMetaRawOption, null); - }); -} -function isSupportedSourceFormat(sourceFormat) { - return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS; -} -var UNDEFINED = "undefined"; -var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array; -var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array; -var CtorInt32Array$1 = typeof Int32Array === UNDEFINED ? Array : Int32Array; -var CtorFloat64Array = typeof Float64Array === UNDEFINED ? Array : Float64Array; -var dataCtors = { - "float": CtorFloat64Array, - "int": CtorInt32Array$1, - // Ordinal data type can be string or int - "ordinal": Array, - "number": Array, - "time": CtorFloat64Array -}; -var defaultDimValueGetters; -function getIndicesCtor(rawCount) { - return rawCount > 65535 ? CtorUint32Array : CtorUint16Array; -} -function getInitialExtent() { - return [Infinity, -Infinity]; -} -function cloneChunk(originalChunk) { - var Ctor = originalChunk.constructor; - return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk); -} -function prepareStore(store, dimIdx, dimType, end, append) { - var DataCtor = dataCtors[dimType || "float"]; - if (append) { - var oldStore = store[dimIdx]; - var oldLen = oldStore && oldStore.length; - if (!(oldLen === end)) { - var newStore = new DataCtor(end); - for (var j = 0; j < oldLen; j++) { - newStore[j] = oldStore[j]; - } - store[dimIdx] = newStore; - } - } else { - store[dimIdx] = new DataCtor(end); - } -} -var DataStore = ( - /** @class */ - function() { - function DataStore2() { - this._chunks = []; - this._rawExtent = []; - this._extent = []; - this._count = 0; - this._rawCount = 0; - this._calcDimNameToIdx = createHashMap(); - } - DataStore2.prototype.initData = function(provider, inputDimensions, dimValueGetter) { - this._provider = provider; - this._chunks = []; - this._indices = null; - this.getRawIndex = this._getRawIdxIdentity; - var source = provider.getSource(); - var defaultGetter = this.defaultDimValueGetter = defaultDimValueGetters[source.sourceFormat]; - this._dimValueGetter = dimValueGetter || defaultGetter; - this._rawExtent = []; - shouldRetrieveDataByName(source); - this._dimensions = map$1(inputDimensions, function(dim) { - return { - // Only pick these two props. Not leak other properties like orderMeta. - type: dim.type, - property: dim.property - }; - }); - this._initDataFromProvider(0, provider.count()); - }; - DataStore2.prototype.getProvider = function() { - return this._provider; - }; - DataStore2.prototype.getSource = function() { - return this._provider.getSource(); - }; - DataStore2.prototype.ensureCalculationDimension = function(dimName, type) { - var calcDimNameToIdx = this._calcDimNameToIdx; - var dimensions = this._dimensions; - var calcDimIdx = calcDimNameToIdx.get(dimName); - if (calcDimIdx != null) { - if (dimensions[calcDimIdx].type === type) { - return calcDimIdx; - } - } else { - calcDimIdx = dimensions.length; - } - dimensions[calcDimIdx] = { - type - }; - calcDimNameToIdx.set(dimName, calcDimIdx); - this._chunks[calcDimIdx] = new dataCtors[type || "float"](this._rawCount); - this._rawExtent[calcDimIdx] = getInitialExtent(); - return calcDimIdx; - }; - DataStore2.prototype.collectOrdinalMeta = function(dimIdx, ordinalMeta) { - var chunk = this._chunks[dimIdx]; - var dim = this._dimensions[dimIdx]; - var rawExtents = this._rawExtent; - var offset = dim.ordinalOffset || 0; - var len = chunk.length; - if (offset === 0) { - rawExtents[dimIdx] = getInitialExtent(); - } - var dimRawExtent = rawExtents[dimIdx]; - for (var i = offset; i < len; i++) { - var val = chunk[i] = ordinalMeta.parseAndCollect(chunk[i]); - if (!isNaN(val)) { - dimRawExtent[0] = Math.min(val, dimRawExtent[0]); - dimRawExtent[1] = Math.max(val, dimRawExtent[1]); - } - } - dim.ordinalMeta = ordinalMeta; - dim.ordinalOffset = len; - dim.type = "ordinal"; - }; - DataStore2.prototype.getOrdinalMeta = function(dimIdx) { - var dimInfo = this._dimensions[dimIdx]; - var ordinalMeta = dimInfo.ordinalMeta; - return ordinalMeta; - }; - DataStore2.prototype.getDimensionProperty = function(dimIndex) { - var item = this._dimensions[dimIndex]; - return item && item.property; - }; - DataStore2.prototype.appendData = function(data) { - var provider = this._provider; - var start = this.count(); - provider.appendData(data); - var end = provider.count(); - if (!provider.persistent) { - end += start; - } - if (start < end) { - this._initDataFromProvider(start, end, true); - } - return [start, end]; - }; - DataStore2.prototype.appendValues = function(values, minFillLen) { - var chunks = this._chunks; - var dimensions = this._dimensions; - var dimLen = dimensions.length; - var rawExtent = this._rawExtent; - var start = this.count(); - var end = start + Math.max(values.length, minFillLen || 0); - for (var i = 0; i < dimLen; i++) { - var dim = dimensions[i]; - prepareStore(chunks, i, dim.type, end, true); - } - var emptyDataItem = []; - for (var idx = start; idx < end; idx++) { - var sourceIdx = idx - start; - for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) { - var dim = dimensions[dimIdx]; - var val = defaultDimValueGetters.arrayRows.call(this, values[sourceIdx] || emptyDataItem, dim.property, sourceIdx, dimIdx); - chunks[dimIdx][idx] = val; - var dimRawExtent = rawExtent[dimIdx]; - val < dimRawExtent[0] && (dimRawExtent[0] = val); - val > dimRawExtent[1] && (dimRawExtent[1] = val); - } - } - this._rawCount = this._count = end; - return { - start, - end - }; - }; - DataStore2.prototype._initDataFromProvider = function(start, end, append) { - var provider = this._provider; - var chunks = this._chunks; - var dimensions = this._dimensions; - var dimLen = dimensions.length; - var rawExtent = this._rawExtent; - var dimNames = map$1(dimensions, function(dim2) { - return dim2.property; - }); - for (var i = 0; i < dimLen; i++) { - var dim = dimensions[i]; - if (!rawExtent[i]) { - rawExtent[i] = getInitialExtent(); - } - prepareStore(chunks, i, dim.type, end, append); - } - if (provider.fillStorage) { - provider.fillStorage(start, end, chunks, rawExtent); - } else { - var dataItem = []; - for (var idx = start; idx < end; idx++) { - dataItem = provider.getItem(idx, dataItem); - for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) { - var dimStorage = chunks[dimIdx]; - var val = this._dimValueGetter(dataItem, dimNames[dimIdx], idx, dimIdx); - dimStorage[idx] = val; - var dimRawExtent = rawExtent[dimIdx]; - val < dimRawExtent[0] && (dimRawExtent[0] = val); - val > dimRawExtent[1] && (dimRawExtent[1] = val); - } - } - } - if (!provider.persistent && provider.clean) { - provider.clean(); - } - this._rawCount = this._count = end; - this._extent = []; - }; - DataStore2.prototype.count = function() { - return this._count; - }; - DataStore2.prototype.get = function(dim, idx) { - if (!(idx >= 0 && idx < this._count)) { - return NaN; - } - var dimStore = this._chunks[dim]; - return dimStore ? dimStore[this.getRawIndex(idx)] : NaN; - }; - DataStore2.prototype.getValues = function(dimensions, idx) { - var values = []; - var dimArr = []; - if (idx == null) { - idx = dimensions; - dimensions = []; - for (var i = 0; i < this._dimensions.length; i++) { - dimArr.push(i); - } - } else { - dimArr = dimensions; - } - for (var i = 0, len = dimArr.length; i < len; i++) { - values.push(this.get(dimArr[i], idx)); - } - return values; - }; - DataStore2.prototype.getByRawIndex = function(dim, rawIdx) { - if (!(rawIdx >= 0 && rawIdx < this._rawCount)) { - return NaN; - } - var dimStore = this._chunks[dim]; - return dimStore ? dimStore[rawIdx] : NaN; - }; - DataStore2.prototype.getSum = function(dim) { - var dimData = this._chunks[dim]; - var sum = 0; - if (dimData) { - for (var i = 0, len = this.count(); i < len; i++) { - var value = this.get(dim, i); - if (!isNaN(value)) { - sum += value; - } - } - } - return sum; - }; - DataStore2.prototype.getMedian = function(dim) { - var dimDataArray = []; - this.each([dim], function(val) { - if (!isNaN(val)) { - dimDataArray.push(val); - } - }); - var sortedDimDataArray = dimDataArray.sort(function(a, b) { - return a - b; - }); - var len = this.count(); - return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2; - }; - DataStore2.prototype.indexOfRawIndex = function(rawIndex) { - if (rawIndex >= this._rawCount || rawIndex < 0) { - return -1; - } - if (!this._indices) { - return rawIndex; - } - var indices = this._indices; - var rawDataIndex = indices[rawIndex]; - if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) { - return rawIndex; - } - var left = 0; - var right = this._count - 1; - while (left <= right) { - var mid = (left + right) / 2 | 0; - if (indices[mid] < rawIndex) { - left = mid + 1; - } else if (indices[mid] > rawIndex) { - right = mid - 1; - } else { - return mid; - } - } - return -1; - }; - DataStore2.prototype.indicesOfNearest = function(dim, value, maxDistance) { - var chunks = this._chunks; - var dimData = chunks[dim]; - var nearestIndices = []; - if (!dimData) { - return nearestIndices; - } - if (maxDistance == null) { - maxDistance = Infinity; - } - var minDist = Infinity; - var minDiff = -1; - var nearestIndicesLen = 0; - for (var i = 0, len = this.count(); i < len; i++) { - var dataIndex = this.getRawIndex(i); - var diff = value - dimData[dataIndex]; - var dist2 = Math.abs(diff); - if (dist2 <= maxDistance) { - if (dist2 < minDist || dist2 === minDist && diff >= 0 && minDiff < 0) { - minDist = dist2; - minDiff = diff; - nearestIndicesLen = 0; - } - if (diff === minDiff) { - nearestIndices[nearestIndicesLen++] = i; - } - } - } - nearestIndices.length = nearestIndicesLen; - return nearestIndices; - }; - DataStore2.prototype.getIndices = function() { - var newIndices; - var indices = this._indices; - if (indices) { - var Ctor = indices.constructor; - var thisCount = this._count; - if (Ctor === Array) { - newIndices = new Ctor(thisCount); - for (var i = 0; i < thisCount; i++) { - newIndices[i] = indices[i]; - } - } else { - newIndices = new Ctor(indices.buffer, 0, thisCount); - } - } else { - var Ctor = getIndicesCtor(this._rawCount); - newIndices = new Ctor(this.count()); - for (var i = 0; i < newIndices.length; i++) { - newIndices[i] = i; - } - } - return newIndices; - }; - DataStore2.prototype.filter = function(dims, cb) { - if (!this._count) { - return this; - } - var newStore = this.clone(); - var count = newStore.count(); - var Ctor = getIndicesCtor(newStore._rawCount); - var newIndices = new Ctor(count); - var value = []; - var dimSize = dims.length; - var offset = 0; - var dim0 = dims[0]; - var chunks = newStore._chunks; - for (var i = 0; i < count; i++) { - var keep = void 0; - var rawIdx = newStore.getRawIndex(i); - if (dimSize === 0) { - keep = cb(i); - } else if (dimSize === 1) { - var val = chunks[dim0][rawIdx]; - keep = cb(val, i); - } else { - var k = 0; - for (; k < dimSize; k++) { - value[k] = chunks[dims[k]][rawIdx]; - } - value[k] = i; - keep = cb.apply(null, value); - } - if (keep) { - newIndices[offset++] = rawIdx; - } - } - if (offset < count) { - newStore._indices = newIndices; - } - newStore._count = offset; - newStore._extent = []; - newStore._updateGetRawIdx(); - return newStore; - }; - DataStore2.prototype.selectRange = function(range) { - var newStore = this.clone(); - var len = newStore._count; - if (!len) { - return this; - } - var dims = keys(range); - var dimSize = dims.length; - if (!dimSize) { - return this; - } - var originalCount = newStore.count(); - var Ctor = getIndicesCtor(newStore._rawCount); - var newIndices = new Ctor(originalCount); - var offset = 0; - var dim0 = dims[0]; - var min2 = range[dim0][0]; - var max2 = range[dim0][1]; - var storeArr = newStore._chunks; - var quickFinished = false; - if (!newStore._indices) { - var idx = 0; - if (dimSize === 1) { - var dimStorage = storeArr[dims[0]]; - for (var i = 0; i < len; i++) { - var val = dimStorage[i]; - if (val >= min2 && val <= max2 || isNaN(val)) { - newIndices[offset++] = idx; - } - idx++; - } - quickFinished = true; - } else if (dimSize === 2) { - var dimStorage = storeArr[dims[0]]; - var dimStorage2 = storeArr[dims[1]]; - var min22 = range[dims[1]][0]; - var max22 = range[dims[1]][1]; - for (var i = 0; i < len; i++) { - var val = dimStorage[i]; - var val2 = dimStorage2[i]; - if ((val >= min2 && val <= max2 || isNaN(val)) && (val2 >= min22 && val2 <= max22 || isNaN(val2))) { - newIndices[offset++] = idx; - } - idx++; - } - quickFinished = true; - } - } - if (!quickFinished) { - if (dimSize === 1) { - for (var i = 0; i < originalCount; i++) { - var rawIndex = newStore.getRawIndex(i); - var val = storeArr[dims[0]][rawIndex]; - if (val >= min2 && val <= max2 || isNaN(val)) { - newIndices[offset++] = rawIndex; - } - } - } else { - for (var i = 0; i < originalCount; i++) { - var keep = true; - var rawIndex = newStore.getRawIndex(i); - for (var k = 0; k < dimSize; k++) { - var dimk = dims[k]; - var val = storeArr[dimk][rawIndex]; - if (val < range[dimk][0] || val > range[dimk][1]) { - keep = false; - } - } - if (keep) { - newIndices[offset++] = newStore.getRawIndex(i); - } - } - } - } - if (offset < originalCount) { - newStore._indices = newIndices; - } - newStore._count = offset; - newStore._extent = []; - newStore._updateGetRawIdx(); - return newStore; - }; - DataStore2.prototype.map = function(dims, cb) { - var target = this.clone(dims); - this._updateDims(target, dims, cb); - return target; - }; - DataStore2.prototype.modify = function(dims, cb) { - this._updateDims(this, dims, cb); - }; - DataStore2.prototype._updateDims = function(target, dims, cb) { - var targetChunks = target._chunks; - var tmpRetValue = []; - var dimSize = dims.length; - var dataCount = target.count(); - var values = []; - var rawExtent = target._rawExtent; - for (var i = 0; i < dims.length; i++) { - rawExtent[dims[i]] = getInitialExtent(); - } - for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) { - var rawIndex = target.getRawIndex(dataIndex); - for (var k = 0; k < dimSize; k++) { - values[k] = targetChunks[dims[k]][rawIndex]; - } - values[dimSize] = dataIndex; - var retValue = cb && cb.apply(null, values); - if (retValue != null) { - if (typeof retValue !== "object") { - tmpRetValue[0] = retValue; - retValue = tmpRetValue; - } - for (var i = 0; i < retValue.length; i++) { - var dim = dims[i]; - var val = retValue[i]; - var rawExtentOnDim = rawExtent[dim]; - var dimStore = targetChunks[dim]; - if (dimStore) { - dimStore[rawIndex] = val; - } - if (val < rawExtentOnDim[0]) { - rawExtentOnDim[0] = val; - } - if (val > rawExtentOnDim[1]) { - rawExtentOnDim[1] = val; - } - } - } - } - }; - DataStore2.prototype.lttbDownSample = function(valueDimension, rate) { - var target = this.clone([valueDimension], true); - var targetStorage = target._chunks; - var dimStore = targetStorage[valueDimension]; - var len = this.count(); - var sampledIndex = 0; - var frameSize = Math.floor(1 / rate); - var currentRawIndex = this.getRawIndex(0); - var maxArea; - var area; - var nextRawIndex; - var newIndices = new (getIndicesCtor(this._rawCount))(Math.min((Math.ceil(len / frameSize) + 2) * 2, len)); - newIndices[sampledIndex++] = currentRawIndex; - for (var i = 1; i < len - 1; i += frameSize) { - var nextFrameStart = Math.min(i + frameSize, len - 1); - var nextFrameEnd = Math.min(i + frameSize * 2, len); - var avgX = (nextFrameEnd + nextFrameStart) / 2; - var avgY = 0; - for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) { - var rawIndex = this.getRawIndex(idx); - var y = dimStore[rawIndex]; - if (isNaN(y)) { - continue; - } - avgY += y; - } - avgY /= nextFrameEnd - nextFrameStart; - var frameStart = i; - var frameEnd = Math.min(i + frameSize, len); - var pointAX = i - 1; - var pointAY = dimStore[currentRawIndex]; - maxArea = -1; - nextRawIndex = frameStart; - var firstNaNIndex = -1; - var countNaN = 0; - for (var idx = frameStart; idx < frameEnd; idx++) { - var rawIndex = this.getRawIndex(idx); - var y = dimStore[rawIndex]; - if (isNaN(y)) { - countNaN++; - if (firstNaNIndex < 0) { - firstNaNIndex = rawIndex; - } - continue; - } - area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY)); - if (area > maxArea) { - maxArea = area; - nextRawIndex = rawIndex; - } - } - if (countNaN > 0 && countNaN < frameEnd - frameStart) { - newIndices[sampledIndex++] = Math.min(firstNaNIndex, nextRawIndex); - nextRawIndex = Math.max(firstNaNIndex, nextRawIndex); - } - newIndices[sampledIndex++] = nextRawIndex; - currentRawIndex = nextRawIndex; - } - newIndices[sampledIndex++] = this.getRawIndex(len - 1); - target._count = sampledIndex; - target._indices = newIndices; - target.getRawIndex = this._getRawIdx; - return target; - }; - DataStore2.prototype.downSample = function(dimension, rate, sampleValue, sampleIndex) { - var target = this.clone([dimension], true); - var targetStorage = target._chunks; - var frameValues = []; - var frameSize = Math.floor(1 / rate); - var dimStore = targetStorage[dimension]; - var len = this.count(); - var rawExtentOnDim = target._rawExtent[dimension] = getInitialExtent(); - var newIndices = new (getIndicesCtor(this._rawCount))(Math.ceil(len / frameSize)); - var offset = 0; - for (var i = 0; i < len; i += frameSize) { - if (frameSize > len - i) { - frameSize = len - i; - frameValues.length = frameSize; - } - for (var k = 0; k < frameSize; k++) { - var dataIdx = this.getRawIndex(i + k); - frameValues[k] = dimStore[dataIdx]; - } - var value = sampleValue(frameValues); - var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1)); - dimStore[sampleFrameIdx] = value; - if (value < rawExtentOnDim[0]) { - rawExtentOnDim[0] = value; - } - if (value > rawExtentOnDim[1]) { - rawExtentOnDim[1] = value; - } - newIndices[offset++] = sampleFrameIdx; - } - target._count = offset; - target._indices = newIndices; - target._updateGetRawIdx(); - return target; - }; - DataStore2.prototype.each = function(dims, cb) { - if (!this._count) { - return; - } - var dimSize = dims.length; - var chunks = this._chunks; - for (var i = 0, len = this.count(); i < len; i++) { - var rawIdx = this.getRawIndex(i); - switch (dimSize) { - case 0: - cb(i); - break; - case 1: - cb(chunks[dims[0]][rawIdx], i); - break; - case 2: - cb(chunks[dims[0]][rawIdx], chunks[dims[1]][rawIdx], i); - break; - default: - var k = 0; - var value = []; - for (; k < dimSize; k++) { - value[k] = chunks[dims[k]][rawIdx]; - } - value[k] = i; - cb.apply(null, value); - } - } - }; - DataStore2.prototype.getDataExtent = function(dim) { - var dimData = this._chunks[dim]; - var initialExtent = getInitialExtent(); - if (!dimData) { - return initialExtent; - } - var currEnd = this.count(); - var useRaw = !this._indices; - var dimExtent; - if (useRaw) { - return this._rawExtent[dim].slice(); - } - dimExtent = this._extent[dim]; - if (dimExtent) { - return dimExtent.slice(); - } - dimExtent = initialExtent; - var min2 = dimExtent[0]; - var max2 = dimExtent[1]; - for (var i = 0; i < currEnd; i++) { - var rawIdx = this.getRawIndex(i); - var value = dimData[rawIdx]; - value < min2 && (min2 = value); - value > max2 && (max2 = value); - } - dimExtent = [min2, max2]; - this._extent[dim] = dimExtent; - return dimExtent; - }; - DataStore2.prototype.getRawDataItem = function(idx) { - var rawIdx = this.getRawIndex(idx); - if (!this._provider.persistent) { - var val = []; - var chunks = this._chunks; - for (var i = 0; i < chunks.length; i++) { - val.push(chunks[i][rawIdx]); - } - return val; - } else { - return this._provider.getItem(rawIdx); - } - }; - DataStore2.prototype.clone = function(clonedDims, ignoreIndices) { - var target = new DataStore2(); - var chunks = this._chunks; - var clonedDimsMap = clonedDims && reduce(clonedDims, function(obj, dimIdx) { - obj[dimIdx] = true; - return obj; - }, {}); - if (clonedDimsMap) { - for (var i = 0; i < chunks.length; i++) { - target._chunks[i] = !clonedDimsMap[i] ? chunks[i] : cloneChunk(chunks[i]); - } - } else { - target._chunks = chunks; - } - this._copyCommonProps(target); - if (!ignoreIndices) { - target._indices = this._cloneIndices(); - } - target._updateGetRawIdx(); - return target; - }; - DataStore2.prototype._copyCommonProps = function(target) { - target._count = this._count; - target._rawCount = this._rawCount; - target._provider = this._provider; - target._dimensions = this._dimensions; - target._extent = clone$1(this._extent); - target._rawExtent = clone$1(this._rawExtent); - }; - DataStore2.prototype._cloneIndices = function() { - if (this._indices) { - var Ctor = this._indices.constructor; - var indices = void 0; - if (Ctor === Array) { - var thisCount = this._indices.length; - indices = new Ctor(thisCount); - for (var i = 0; i < thisCount; i++) { - indices[i] = this._indices[i]; - } - } else { - indices = new Ctor(this._indices); - } - return indices; - } - return null; - }; - DataStore2.prototype._getRawIdxIdentity = function(idx) { - return idx; - }; - DataStore2.prototype._getRawIdx = function(idx) { - if (idx < this._count && idx >= 0) { - return this._indices[idx]; - } - return -1; - }; - DataStore2.prototype._updateGetRawIdx = function() { - this.getRawIndex = this._indices ? this._getRawIdx : this._getRawIdxIdentity; - }; - DataStore2.internalField = function() { - function getDimValueSimply(dataItem, property, dataIndex, dimIndex) { - return parseDataValue(dataItem[dimIndex], this._dimensions[dimIndex]); - } - defaultDimValueGetters = { - arrayRows: getDimValueSimply, - objectRows: function(dataItem, property, dataIndex, dimIndex) { - return parseDataValue(dataItem[property], this._dimensions[dimIndex]); - }, - keyedColumns: getDimValueSimply, - original: function(dataItem, property, dataIndex, dimIndex) { - var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value); - return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensions[dimIndex]); - }, - typedArray: function(dataItem, property, dataIndex, dimIndex) { - return dataItem[dimIndex]; - } - }; - }(); - return DataStore2; - }() -); -const DataStore$1 = DataStore; -var SourceManager = ( - /** @class */ - function() { - function SourceManager2(sourceHost) { - this._sourceList = []; - this._storeList = []; - this._upstreamSignList = []; - this._versionSignBase = 0; - this._dirty = true; - this._sourceHost = sourceHost; - } - SourceManager2.prototype.dirty = function() { - this._setLocalSource([], []); - this._storeList = []; - this._dirty = true; - }; - SourceManager2.prototype._setLocalSource = function(sourceList, upstreamSignList) { - this._sourceList = sourceList; - this._upstreamSignList = upstreamSignList; - this._versionSignBase++; - if (this._versionSignBase > 9e10) { - this._versionSignBase = 0; - } - }; - SourceManager2.prototype._getVersionSign = function() { - return this._sourceHost.uid + "_" + this._versionSignBase; - }; - SourceManager2.prototype.prepareSource = function() { - if (this._isDirty()) { - this._createSource(); - this._dirty = false; - } - }; - SourceManager2.prototype._createSource = function() { - this._setLocalSource([], []); - var sourceHost = this._sourceHost; - var upSourceMgrList = this._getUpstreamSourceManagers(); - var hasUpstream = !!upSourceMgrList.length; - var resultSourceList; - var upstreamSignList; - if (isSeries(sourceHost)) { - var seriesModel = sourceHost; - var data = void 0; - var sourceFormat = void 0; - var upSource = void 0; - if (hasUpstream) { - var upSourceMgr = upSourceMgrList[0]; - upSourceMgr.prepareSource(); - upSource = upSourceMgr.getSource(); - data = upSource.data; - sourceFormat = upSource.sourceFormat; - upstreamSignList = [upSourceMgr._getVersionSign()]; - } else { - data = seriesModel.get("data", true); - sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL; - upstreamSignList = []; - } - var newMetaRawOption = this._getSourceMetaRawOption() || {}; - var upMetaRawOption = upSource && upSource.metaRawOption || {}; - var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption.seriesLayoutBy) || null; - var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption.sourceHeader); - var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption.dimensions); - var needsCreateSource = seriesLayoutBy !== upMetaRawOption.seriesLayoutBy || !!sourceHeader !== !!upMetaRawOption.sourceHeader || dimensions; - resultSourceList = needsCreateSource ? [createSource(data, { - seriesLayoutBy, - sourceHeader, - dimensions - }, sourceFormat)] : []; - } else { - var datasetModel = sourceHost; - if (hasUpstream) { - var result = this._applyTransform(upSourceMgrList); - resultSourceList = result.sourceList; - upstreamSignList = result.upstreamSignList; - } else { - var sourceData = datasetModel.get("source", true); - resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null)]; - upstreamSignList = []; - } - } - this._setLocalSource(resultSourceList, upstreamSignList); - }; - SourceManager2.prototype._applyTransform = function(upMgrList) { - var datasetModel = this._sourceHost; - var transformOption = datasetModel.get("transform", true); - var fromTransformResult = datasetModel.get("fromTransformResult", true); - if (fromTransformResult != null) { - var errMsg = ""; - if (upMgrList.length !== 1) { - doThrow(errMsg); - } - } - var sourceList; - var upSourceList = []; - var upstreamSignList = []; - each$2(upMgrList, function(upMgr) { - upMgr.prepareSource(); - var upSource = upMgr.getSource(fromTransformResult || 0); - var errMsg2 = ""; - if (fromTransformResult != null && !upSource) { - doThrow(errMsg2); - } - upSourceList.push(upSource); - upstreamSignList.push(upMgr._getVersionSign()); - }); - if (transformOption) { - sourceList = applyDataTransform(transformOption, upSourceList, { - datasetIndex: datasetModel.componentIndex - }); - } else if (fromTransformResult != null) { - sourceList = [cloneSourceShallow(upSourceList[0])]; - } - return { - sourceList, - upstreamSignList - }; - }; - SourceManager2.prototype._isDirty = function() { - if (this._dirty) { - return true; - } - var upSourceMgrList = this._getUpstreamSourceManagers(); - for (var i = 0; i < upSourceMgrList.length; i++) { - var upSrcMgr = upSourceMgrList[i]; - if ( - // Consider the case that there is ancestor diry, call it recursively. - // The performance is probably not an issue because usually the chain is not long. - upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign() - ) { - return true; - } - } - }; - SourceManager2.prototype.getSource = function(sourceIndex) { - sourceIndex = sourceIndex || 0; - var source = this._sourceList[sourceIndex]; - if (!source) { - var upSourceMgrList = this._getUpstreamSourceManagers(); - return upSourceMgrList[0] && upSourceMgrList[0].getSource(sourceIndex); - } - return source; - }; - SourceManager2.prototype.getSharedDataStore = function(seriesDimRequest) { - var schema = seriesDimRequest.makeStoreSchema(); - return this._innerGetDataStore(schema.dimensions, seriesDimRequest.source, schema.hash); - }; - SourceManager2.prototype._innerGetDataStore = function(storeDims, seriesSource, sourceReadKey) { - var sourceIndex = 0; - var storeList = this._storeList; - var cachedStoreMap = storeList[sourceIndex]; - if (!cachedStoreMap) { - cachedStoreMap = storeList[sourceIndex] = {}; - } - var cachedStore = cachedStoreMap[sourceReadKey]; - if (!cachedStore) { - var upSourceMgr = this._getUpstreamSourceManagers()[0]; - if (isSeries(this._sourceHost) && upSourceMgr) { - cachedStore = upSourceMgr._innerGetDataStore(storeDims, seriesSource, sourceReadKey); - } else { - cachedStore = new DataStore$1(); - cachedStore.initData(new DefaultDataProvider(seriesSource, storeDims.length), storeDims); - } - cachedStoreMap[sourceReadKey] = cachedStore; - } - return cachedStore; - }; - SourceManager2.prototype._getUpstreamSourceManagers = function() { - var sourceHost = this._sourceHost; - if (isSeries(sourceHost)) { - var datasetModel = querySeriesUpstreamDatasetModel(sourceHost); - return !datasetModel ? [] : [datasetModel.getSourceManager()]; - } else { - return map$1(queryDatasetUpstreamDatasetModels(sourceHost), function(datasetModel2) { - return datasetModel2.getSourceManager(); - }); - } - }; - SourceManager2.prototype._getSourceMetaRawOption = function() { - var sourceHost = this._sourceHost; - var seriesLayoutBy; - var sourceHeader; - var dimensions; - if (isSeries(sourceHost)) { - seriesLayoutBy = sourceHost.get("seriesLayoutBy", true); - sourceHeader = sourceHost.get("sourceHeader", true); - dimensions = sourceHost.get("dimensions", true); - } else if (!this._getUpstreamSourceManagers().length) { - var model = sourceHost; - seriesLayoutBy = model.get("seriesLayoutBy", true); - sourceHeader = model.get("sourceHeader", true); - dimensions = model.get("dimensions", true); - } - return { - seriesLayoutBy, - sourceHeader, - dimensions - }; - }; - return SourceManager2; - }() -); -function disableTransformOptionMerge(datasetModel) { - var transformOption = datasetModel.option.transform; - transformOption && setAsPrimitive(datasetModel.option.transform); -} -function isSeries(sourceHost) { - return sourceHost.mainType === "series"; -} -function doThrow(errMsg) { - throw new Error(errMsg); -} -var TOOLTIP_LINE_HEIGHT_CSS = "line-height:1"; -function getTooltipTextStyle(textStyle, renderMode) { - var nameFontColor = textStyle.color || "#6e7079"; - var nameFontSize = textStyle.fontSize || 12; - var nameFontWeight = textStyle.fontWeight || "400"; - var valueFontColor = textStyle.color || "#464646"; - var valueFontSize = textStyle.fontSize || 14; - var valueFontWeight = textStyle.fontWeight || "900"; - if (renderMode === "html") { - return { - // eslint-disable-next-line max-len - nameStyle: "font-size:" + encodeHTML(nameFontSize + "") + "px;color:" + encodeHTML(nameFontColor) + ";font-weight:" + encodeHTML(nameFontWeight + ""), - // eslint-disable-next-line max-len - valueStyle: "font-size:" + encodeHTML(valueFontSize + "") + "px;color:" + encodeHTML(valueFontColor) + ";font-weight:" + encodeHTML(valueFontWeight + "") - }; - } else { - return { - nameStyle: { - fontSize: nameFontSize, - fill: nameFontColor, - fontWeight: nameFontWeight - }, - valueStyle: { - fontSize: valueFontSize, - fill: valueFontColor, - fontWeight: valueFontWeight - } - }; - } -} -var HTML_GAPS = [0, 10, 20, 30]; -var RICH_TEXT_GAPS = ["", "\n", "\n\n", "\n\n\n"]; -function createTooltipMarkup(type, option) { - option.type = type; - return option; -} -function isSectionFragment(frag) { - return frag.type === "section"; -} -function getBuilder(frag) { - return isSectionFragment(frag) ? buildSection : buildNameValue; -} -function getBlockGapLevel(frag) { - if (isSectionFragment(frag)) { - var gapLevel_1 = 0; - var subBlockLen = frag.blocks.length; - var hasInnerGap_1 = subBlockLen > 1 || subBlockLen > 0 && !frag.noHeader; - each$2(frag.blocks, function(subBlock) { - var subGapLevel = getBlockGapLevel(subBlock); - if (subGapLevel >= gapLevel_1) { - gapLevel_1 = subGapLevel + +(hasInnerGap_1 && // 0 always can not be readable gap level. - (!subGapLevel || isSectionFragment(subBlock) && !subBlock.noHeader)); - } - }); - return gapLevel_1; - } - return 0; -} -function buildSection(ctx, fragment, topMarginForOuterGap, toolTipTextStyle) { - var noHeader = fragment.noHeader; - var gaps = getGap(getBlockGapLevel(fragment)); - var subMarkupTextList = []; - var subBlocks = fragment.blocks || []; - assert(!subBlocks || isArray(subBlocks)); - subBlocks = subBlocks || []; - var orderMode = ctx.orderMode; - if (fragment.sortBlocks && orderMode) { - subBlocks = subBlocks.slice(); - var orderMap = { - valueAsc: "asc", - valueDesc: "desc" - }; - if (hasOwn(orderMap, orderMode)) { - var comparator_1 = new SortOrderComparator(orderMap[orderMode], null); - subBlocks.sort(function(a, b) { - return comparator_1.evaluate(a.sortParam, b.sortParam); - }); - } else if (orderMode === "seriesDesc") { - subBlocks.reverse(); - } - } - each$2(subBlocks, function(subBlock, idx) { - var valueFormatter = fragment.valueFormatter; - var subMarkupText2 = getBuilder(subBlock)( - // Inherit valueFormatter - valueFormatter ? extend(extend({}, ctx), { - valueFormatter - }) : ctx, - subBlock, - idx > 0 ? gaps.html : 0, - toolTipTextStyle - ); - subMarkupText2 != null && subMarkupTextList.push(subMarkupText2); - }); - var subMarkupText = ctx.renderMode === "richText" ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(""), noHeader ? topMarginForOuterGap : gaps.html); - if (noHeader) { - return subMarkupText; - } - var displayableHeader = makeValueReadable(fragment.header, "ordinal", ctx.useUTC); - var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle; - if (ctx.renderMode === "richText") { - return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText; - } else { - return wrapBlockHTML('
    ' + encodeHTML(displayableHeader) + "
    " + subMarkupText, topMarginForOuterGap); - } -} -function buildNameValue(ctx, fragment, topMarginForOuterGap, toolTipTextStyle) { - var renderMode = ctx.renderMode; - var noName = fragment.noName; - var noValue = fragment.noValue; - var noMarker = !fragment.markerType; - var name = fragment.name; - var useUTC = ctx.useUTC; - var valueFormatter = fragment.valueFormatter || ctx.valueFormatter || function(value) { - value = isArray(value) ? value : [value]; - return map$1(value, function(val, idx) { - return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC); - }); - }; - if (noName && noValue) { - return; - } - var markerStr = noMarker ? "" : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || "#333", renderMode); - var readableName = noName ? "" : makeValueReadable(name, "ordinal", useUTC); - var valueTypeOption = fragment.valueType; - var readableValueList = noValue ? [] : valueFormatter(fragment.value); - var valueAlignRight = !noMarker || !noName; - var valueCloseToMarker = !noMarker && noName; - var _a2 = getTooltipTextStyle(toolTipTextStyle, renderMode), nameStyle = _a2.nameStyle, valueStyle = _a2.valueStyle; - return renderMode === "richText" ? (noMarker ? "" : markerStr) + (noName ? "" : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? "" : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? "" : markerStr) + (noName ? "" : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? "" : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap); -} -function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) { - if (!fragment) { - return; - } - var builder = getBuilder(fragment); - var ctx = { - useUTC, - renderMode, - orderMode, - markupStyleCreator, - valueFormatter: fragment.valueFormatter - }; - return builder(ctx, fragment, 0, toolTipTextStyle); -} -function getGap(gapLevel) { - return { - html: HTML_GAPS[gapLevel], - richText: RICH_TEXT_GAPS[gapLevel] - }; -} -function wrapBlockHTML(encodedContent, topGap) { - var clearfix = '
    '; - var marginCSS = "margin: " + topGap + "px 0 0"; - return '
    ' + encodedContent + clearfix + "
    "; -} -function wrapInlineNameHTML(name, leftHasMarker, style) { - var marginCss = leftHasMarker ? "margin-left:2px" : ""; - return '' + encodeHTML(name) + ""; -} -function wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) { - var paddingStr = valueCloseToMarker ? "10px" : "20px"; - var alignCSS = alignRight ? "float:right;margin-left:" + paddingStr : ""; - valueList = isArray(valueList) ? valueList : [valueList]; - return '' + map$1(valueList, function(value) { - return encodeHTML(value); - }).join("  ") + ""; -} -function wrapInlineNameRichText(ctx, name, style) { - return ctx.markupStyleCreator.wrapRichTextStyle(name, style); -} -function wrapInlineValueRichText(ctx, values, alignRight, valueCloseToMarker, style) { - var styles = [style]; - var paddingLeft = valueCloseToMarker ? 10 : 20; - alignRight && styles.push({ - padding: [0, 0, 0, paddingLeft], - align: "right" - }); - return ctx.markupStyleCreator.wrapRichTextStyle(isArray(values) ? values.join(" ") : values, styles); -} -function retrieveVisualColorForTooltipMarker(series, dataIndex) { - var style = series.getData().getItemVisual(dataIndex, "style"); - var color = style[series.visualDrawType]; - return convertToColorString(color); -} -function getPaddingFromTooltipModel(model, renderMode) { - var padding = model.get("padding"); - return padding != null ? padding : renderMode === "richText" ? [8, 10] : 10; -} -var TooltipMarkupStyleCreator = ( - /** @class */ - function() { - function TooltipMarkupStyleCreator2() { - this.richTextStyles = {}; - this._nextStyleNameId = getRandomIdBase(); - } - TooltipMarkupStyleCreator2.prototype._generateStyleName = function() { - return "__EC_aUTo_" + this._nextStyleNameId++; - }; - TooltipMarkupStyleCreator2.prototype.makeTooltipMarker = function(markerType, colorStr, renderMode) { - var markerId = renderMode === "richText" ? this._generateStyleName() : null; - var marker = getTooltipMarker({ - color: colorStr, - type: markerType, - renderMode, - markerId - }); - if (isString(marker)) { - return marker; - } else { - this.richTextStyles[markerId] = marker.style; - return marker.content; - } - }; - TooltipMarkupStyleCreator2.prototype.wrapRichTextStyle = function(text, styles) { - var finalStl = {}; - if (isArray(styles)) { - each$2(styles, function(stl) { - return extend(finalStl, stl); - }); - } else { - extend(finalStl, styles); - } - var styleName = this._generateStyleName(); - this.richTextStyles[styleName] = finalStl; - return "{" + styleName + "|" + text + "}"; - }; - return TooltipMarkupStyleCreator2; - }() -); -function defaultSeriesFormatTooltip(opt) { - var series = opt.series; - var dataIndex = opt.dataIndex; - var multipleSeries = opt.multipleSeries; - var data = series.getData(); - var tooltipDims = data.mapDimensionsAll("defaultedTooltip"); - var tooltipDimLen = tooltipDims.length; - var value = series.getRawValue(dataIndex); - var isValueArr = isArray(value); - var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex); - var inlineValue; - var inlineValueType; - var subBlocks; - var sortParam; - if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) { - var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor); - inlineValue = formatArrResult.inlineValues; - inlineValueType = formatArrResult.inlineValueTypes; - subBlocks = formatArrResult.blocks; - sortParam = formatArrResult.inlineValues[0]; - } else if (tooltipDimLen) { - var dimInfo = data.getDimensionInfo(tooltipDims[0]); - sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]); - inlineValueType = dimInfo.type; - } else { - sortParam = inlineValue = isValueArr ? value[0] : value; - } - var seriesNameSpecified = isNameSpecified(series); - var seriesName = seriesNameSpecified && series.name || ""; - var itemName = data.getName(dataIndex); - var inlineName = multipleSeries ? seriesName : itemName; - return createTooltipMarkup("section", { - header: seriesName, - // When series name is not specified, do not show a header line with only '-'. - // This case always happens in tooltip.trigger: 'item'. - noHeader: multipleSeries || !seriesNameSpecified, - sortParam, - blocks: [createTooltipMarkup("nameValue", { - markerType: "item", - markerColor, - // Do not mix display seriesName and itemName in one tooltip, - // which might confuses users. - name: inlineName, - // name dimension might be auto assigned, where the name might - // be not readable. So we check trim here. - noName: !trim(inlineName), - value: inlineValue, - valueType: inlineValueType - })].concat(subBlocks || []) - }); -} -function formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) { - var data = series.getData(); - var isValueMultipleLine = reduce(value, function(isValueMultipleLine2, val, idx) { - var dimItem = data.getDimensionInfo(idx); - return isValueMultipleLine2 = isValueMultipleLine2 || dimItem && dimItem.tooltip !== false && dimItem.displayName != null; - }, false); - var inlineValues = []; - var inlineValueTypes = []; - var blocks = []; - tooltipDims.length ? each$2(tooltipDims, function(dim) { - setEachItem(retrieveRawValue(data, dataIndex, dim), dim); - }) : each$2(value, setEachItem); - function setEachItem(val, dim) { - var dimInfo = data.getDimensionInfo(dim); - if (!dimInfo || dimInfo.otherDims.tooltip === false) { - return; - } - if (isValueMultipleLine) { - blocks.push(createTooltipMarkup("nameValue", { - markerType: "subItem", - markerColor: colorStr, - name: dimInfo.displayName, - value: val, - valueType: dimInfo.type - })); - } else { - inlineValues.push(val); - inlineValueTypes.push(dimInfo.type); - } - } - return { - inlineValues, - inlineValueTypes, - blocks - }; -} -var inner$4 = makeInner(); -function getSelectionKey(data, dataIndex) { - return data.getName(dataIndex) || data.getId(dataIndex); -} -var SERIES_UNIVERSAL_TRANSITION_PROP = "__universalTransitionEnabled"; -var SeriesModel = ( - /** @class */ - function(_super) { - __extends(SeriesModel2, _super); - function SeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._selectedDataIndicesMap = {}; - return _this; - } - SeriesModel2.prototype.init = function(option, parentModel, ecModel) { - this.seriesIndex = this.componentIndex; - this.dataTask = createTask({ - count: dataTaskCount, - reset: dataTaskReset - }); - this.dataTask.context = { - model: this - }; - this.mergeDefaultAndTheme(option, ecModel); - var sourceManager = inner$4(this).sourceManager = new SourceManager(this); - sourceManager.prepareSource(); - var data = this.getInitialData(option, ecModel); - wrapData(data, this); - this.dataTask.context.data = data; - inner$4(this).dataBeforeProcessed = data; - autoSeriesName(this); - this._initSelectedMapFromData(data); - }; - SeriesModel2.prototype.mergeDefaultAndTheme = function(option, ecModel) { - var layoutMode = fetchLayoutMode(this); - var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; - var themeSubType = this.subType; - if (ComponentModel$1.hasClass(themeSubType)) { - themeSubType += "Series"; - } - merge(option, ecModel.getTheme().get(this.subType)); - merge(option, this.getDefaultOption()); - defaultEmphasis(option, "label", ["show"]); - this.fillDataTextStyle(option.data); - if (layoutMode) { - mergeLayoutParam(option, inputPositionParams, layoutMode); - } - }; - SeriesModel2.prototype.mergeOption = function(newSeriesOption, ecModel) { - newSeriesOption = merge(this.option, newSeriesOption, true); - this.fillDataTextStyle(newSeriesOption.data); - var layoutMode = fetchLayoutMode(this); - if (layoutMode) { - mergeLayoutParam(this.option, newSeriesOption, layoutMode); - } - var sourceManager = inner$4(this).sourceManager; - sourceManager.dirty(); - sourceManager.prepareSource(); - var data = this.getInitialData(newSeriesOption, ecModel); - wrapData(data, this); - this.dataTask.dirty(); - this.dataTask.context.data = data; - inner$4(this).dataBeforeProcessed = data; - autoSeriesName(this); - this._initSelectedMapFromData(data); - }; - SeriesModel2.prototype.fillDataTextStyle = function(data) { - if (data && !isTypedArray(data)) { - var props = ["show"]; - for (var i = 0; i < data.length; i++) { - if (data[i] && data[i].label) { - defaultEmphasis(data[i], "label", props); - } - } - } - }; - SeriesModel2.prototype.getInitialData = function(option, ecModel) { - return; - }; - SeriesModel2.prototype.appendData = function(params) { - var data = this.getRawData(); - data.appendData(params.data); - }; - SeriesModel2.prototype.getData = function(dataType) { - var task = getCurrentTask(this); - if (task) { - var data = task.context.data; - return dataType == null ? data : data.getLinkedData(dataType); - } else { - return inner$4(this).data; - } - }; - SeriesModel2.prototype.getAllData = function() { - var mainData = this.getData(); - return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{ - data: mainData - }]; - }; - SeriesModel2.prototype.setData = function(data) { - var task = getCurrentTask(this); - if (task) { - var context = task.context; - context.outputData = data; - if (task !== this.dataTask) { - context.data = data; - } - } - inner$4(this).data = data; - }; - SeriesModel2.prototype.getEncode = function() { - var encode = this.get("encode", true); - if (encode) { - return createHashMap(encode); - } - }; - SeriesModel2.prototype.getSourceManager = function() { - return inner$4(this).sourceManager; - }; - SeriesModel2.prototype.getSource = function() { - return this.getSourceManager().getSource(); - }; - SeriesModel2.prototype.getRawData = function() { - return inner$4(this).dataBeforeProcessed; - }; - SeriesModel2.prototype.getColorBy = function() { - var colorBy = this.get("colorBy"); - return colorBy || "series"; - }; - SeriesModel2.prototype.isColorBySeries = function() { - return this.getColorBy() === "series"; - }; - SeriesModel2.prototype.getBaseAxis = function() { - var coordSys = this.coordinateSystem; - return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis(); - }; - SeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - return defaultSeriesFormatTooltip({ - series: this, - dataIndex, - multipleSeries - }); - }; - SeriesModel2.prototype.isAnimationEnabled = function() { - var ecModel = this.ecModel; - if (env.node && !(ecModel && ecModel.ssr)) { - return false; - } - var animationEnabled = this.getShallow("animation"); - if (animationEnabled) { - if (this.getData().count() > this.getShallow("animationThreshold")) { - animationEnabled = false; - } - } - return !!animationEnabled; - }; - SeriesModel2.prototype.restoreData = function() { - this.dataTask.dirty(); - }; - SeriesModel2.prototype.getColorFromPalette = function(name, scope, requestColorNum) { - var ecModel = this.ecModel; - var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum); - if (!color) { - color = ecModel.getColorFromPalette(name, scope, requestColorNum); - } - return color; - }; - SeriesModel2.prototype.coordDimToDataDim = function(coordDim) { - return this.getRawData().mapDimensionsAll(coordDim); - }; - SeriesModel2.prototype.getProgressive = function() { - return this.get("progressive"); - }; - SeriesModel2.prototype.getProgressiveThreshold = function() { - return this.get("progressiveThreshold"); - }; - SeriesModel2.prototype.select = function(innerDataIndices, dataType) { - this._innerSelect(this.getData(dataType), innerDataIndices); - }; - SeriesModel2.prototype.unselect = function(innerDataIndices, dataType) { - var selectedMap = this.option.selectedMap; - if (!selectedMap) { - return; - } - var selectedMode = this.option.selectedMode; - var data = this.getData(dataType); - if (selectedMode === "series" || selectedMap === "all") { - this.option.selectedMap = {}; - this._selectedDataIndicesMap = {}; - return; - } - for (var i = 0; i < innerDataIndices.length; i++) { - var dataIndex = innerDataIndices[i]; - var nameOrId = getSelectionKey(data, dataIndex); - selectedMap[nameOrId] = false; - this._selectedDataIndicesMap[nameOrId] = -1; - } - }; - SeriesModel2.prototype.toggleSelect = function(innerDataIndices, dataType) { - var tmpArr = []; - for (var i = 0; i < innerDataIndices.length; i++) { - tmpArr[0] = innerDataIndices[i]; - this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType); - } - }; - SeriesModel2.prototype.getSelectedDataIndices = function() { - if (this.option.selectedMap === "all") { - return [].slice.call(this.getData().getIndices()); - } - var selectedDataIndicesMap = this._selectedDataIndicesMap; - var nameOrIds = keys(selectedDataIndicesMap); - var dataIndices = []; - for (var i = 0; i < nameOrIds.length; i++) { - var dataIndex = selectedDataIndicesMap[nameOrIds[i]]; - if (dataIndex >= 0) { - dataIndices.push(dataIndex); - } - } - return dataIndices; - }; - SeriesModel2.prototype.isSelected = function(dataIndex, dataType) { - var selectedMap = this.option.selectedMap; - if (!selectedMap) { - return false; - } - var data = this.getData(dataType); - return (selectedMap === "all" || selectedMap[getSelectionKey(data, dataIndex)]) && !data.getItemModel(dataIndex).get(["select", "disabled"]); - }; - SeriesModel2.prototype.isUniversalTransitionEnabled = function() { - if (this[SERIES_UNIVERSAL_TRANSITION_PROP]) { - return true; - } - var universalTransitionOpt = this.option.universalTransition; - if (!universalTransitionOpt) { - return false; - } - if (universalTransitionOpt === true) { - return true; - } - return universalTransitionOpt && universalTransitionOpt.enabled; - }; - SeriesModel2.prototype._innerSelect = function(data, innerDataIndices) { - var _a2, _b2; - var option = this.option; - var selectedMode = option.selectedMode; - var len = innerDataIndices.length; - if (!selectedMode || !len) { - return; - } - if (selectedMode === "series") { - option.selectedMap = "all"; - } else if (selectedMode === "multiple") { - if (!isObject$2(option.selectedMap)) { - option.selectedMap = {}; - } - var selectedMap = option.selectedMap; - for (var i = 0; i < len; i++) { - var dataIndex = innerDataIndices[i]; - var nameOrId = getSelectionKey(data, dataIndex); - selectedMap[nameOrId] = true; - this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex); - } - } else if (selectedMode === "single" || selectedMode === true) { - var lastDataIndex = innerDataIndices[len - 1]; - var nameOrId = getSelectionKey(data, lastDataIndex); - option.selectedMap = (_a2 = {}, _a2[nameOrId] = true, _a2); - this._selectedDataIndicesMap = (_b2 = {}, _b2[nameOrId] = data.getRawIndex(lastDataIndex), _b2); - } - }; - SeriesModel2.prototype._initSelectedMapFromData = function(data) { - if (this.option.selectedMap) { - return; - } - var dataIndices = []; - if (data.hasItemOption) { - data.each(function(idx) { - var rawItem = data.getRawDataItem(idx); - if (rawItem && rawItem.selected) { - dataIndices.push(idx); - } - }); - } - if (dataIndices.length > 0) { - this._innerSelect(data, dataIndices); - } - }; - SeriesModel2.registerClass = function(clz) { - return ComponentModel$1.registerClass(clz); - }; - SeriesModel2.protoInitialize = function() { - var proto2 = SeriesModel2.prototype; - proto2.type = "series.__base__"; - proto2.seriesIndex = 0; - proto2.ignoreStyleOnData = false; - proto2.hasSymbolVisual = false; - proto2.defaultSymbol = "circle"; - proto2.visualStyleAccessPath = "itemStyle"; - proto2.visualDrawType = "fill"; - }(); - return SeriesModel2; - }(ComponentModel$1) -); -mixin(SeriesModel, DataFormatMixin); -mixin(SeriesModel, PaletteMixin); -mountExtend(SeriesModel, ComponentModel$1); -function autoSeriesName(seriesModel) { - var name = seriesModel.name; - if (!isNameSpecified(seriesModel)) { - seriesModel.name = getSeriesAutoName(seriesModel) || name; - } -} -function getSeriesAutoName(seriesModel) { - var data = seriesModel.getRawData(); - var dataDims = data.mapDimensionsAll("seriesName"); - var nameArr = []; - each$2(dataDims, function(dataDim) { - var dimInfo = data.getDimensionInfo(dataDim); - dimInfo.displayName && nameArr.push(dimInfo.displayName); - }); - return nameArr.join(" "); -} -function dataTaskCount(context) { - return context.model.getRawData().count(); -} -function dataTaskReset(context) { - var seriesModel = context.model; - seriesModel.setData(seriesModel.getRawData().cloneShallow()); - return dataTaskProgress; -} -function dataTaskProgress(param, context) { - if (context.outputData && param.end > context.outputData.count()) { - context.model.getRawData().cloneShallow(context.outputData); - } -} -function wrapData(data, seriesModel) { - each$2(concatArray(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function(methodName) { - data.wrapMethod(methodName, curry(onDataChange, seriesModel)); - }); -} -function onDataChange(seriesModel, newList) { - var task = getCurrentTask(seriesModel); - if (task) { - task.setOutputEnd((newList || this).count()); - } - return newList; -} -function getCurrentTask(seriesModel) { - var scheduler = (seriesModel.ecModel || {}).scheduler; - var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid); - if (pipeline) { - var task = pipeline.currentTask; - if (task) { - var agentStubMap = task.agentStubMap; - if (agentStubMap) { - task = agentStubMap.get(seriesModel.uid); - } - } - return task; - } -} -const SeriesModel$1 = SeriesModel; -var ComponentView = ( - /** @class */ - function() { - function ComponentView2() { - this.group = new Group$1(); - this.uid = getUID("viewComponent"); - } - ComponentView2.prototype.init = function(ecModel, api) { - }; - ComponentView2.prototype.render = function(model, ecModel, api, payload) { - }; - ComponentView2.prototype.dispose = function(ecModel, api) { - }; - ComponentView2.prototype.updateView = function(model, ecModel, api, payload) { - }; - ComponentView2.prototype.updateLayout = function(model, ecModel, api, payload) { - }; - ComponentView2.prototype.updateVisual = function(model, ecModel, api, payload) { - }; - ComponentView2.prototype.toggleBlurSeries = function(seriesModels, isBlur, ecModel) { - }; - ComponentView2.prototype.eachRendered = function(cb) { - var group = this.group; - if (group) { - group.traverse(cb); - } - }; - return ComponentView2; - }() -); -enableClassExtend(ComponentView); -enableClassManagement(ComponentView); -const ComponentView$1 = ComponentView; -function createRenderPlanner() { - var inner2 = makeInner(); - return function(seriesModel) { - var fields = inner2(seriesModel); - var pipelineContext = seriesModel.pipelineContext; - var originalLarge = !!fields.large; - var originalProgressive = !!fields.progressiveRender; - var large = fields.large = !!(pipelineContext && pipelineContext.large); - var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender); - return !!(originalLarge !== large || originalProgressive !== progressive) && "reset"; - }; -} -var inner$3 = makeInner(); -var renderPlanner = createRenderPlanner(); -var ChartView = ( - /** @class */ - function() { - function ChartView2() { - this.group = new Group$1(); - this.uid = getUID("viewChart"); - this.renderTask = createTask({ - plan: renderTaskPlan, - reset: renderTaskReset - }); - this.renderTask.context = { - view: this - }; - } - ChartView2.prototype.init = function(ecModel, api) { - }; - ChartView2.prototype.render = function(seriesModel, ecModel, api, payload) { - }; - ChartView2.prototype.highlight = function(seriesModel, ecModel, api, payload) { - var data = seriesModel.getData(payload && payload.dataType); - if (!data) { - return; - } - toggleHighlight(data, payload, "emphasis"); - }; - ChartView2.prototype.downplay = function(seriesModel, ecModel, api, payload) { - var data = seriesModel.getData(payload && payload.dataType); - if (!data) { - return; - } - toggleHighlight(data, payload, "normal"); - }; - ChartView2.prototype.remove = function(ecModel, api) { - this.group.removeAll(); - }; - ChartView2.prototype.dispose = function(ecModel, api) { - }; - ChartView2.prototype.updateView = function(seriesModel, ecModel, api, payload) { - this.render(seriesModel, ecModel, api, payload); - }; - ChartView2.prototype.updateLayout = function(seriesModel, ecModel, api, payload) { - this.render(seriesModel, ecModel, api, payload); - }; - ChartView2.prototype.updateVisual = function(seriesModel, ecModel, api, payload) { - this.render(seriesModel, ecModel, api, payload); - }; - ChartView2.prototype.eachRendered = function(cb) { - traverseElements(this.group, cb); - }; - ChartView2.markUpdateMethod = function(payload, methodName) { - inner$3(payload).updateMethod = methodName; - }; - ChartView2.protoInitialize = function() { - var proto2 = ChartView2.prototype; - proto2.type = "chart"; - }(); - return ChartView2; - }() -); -function elSetState(el, state, highlightDigit) { - if (el && isHighDownDispatcher(el)) { - (state === "emphasis" ? enterEmphasis : leaveEmphasis)(el, highlightDigit); - } -} -function toggleHighlight(data, payload, state) { - var dataIndex = queryDataIndex(data, payload); - var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null; - if (dataIndex != null) { - each$2(normalizeToArray(dataIndex), function(dataIdx) { - elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit); - }); - } else { - data.eachItemGraphicEl(function(el) { - elSetState(el, state, highlightDigit); - }); - } -} -enableClassExtend(ChartView); -enableClassManagement(ChartView); -function renderTaskPlan(context) { - return renderPlanner(context.model); -} -function renderTaskReset(context) { - var seriesModel = context.model; - var ecModel = context.ecModel; - var api = context.api; - var payload = context.payload; - var progressiveRender = seriesModel.pipelineContext.progressiveRender; - var view = context.view; - var updateMethod = payload && inner$3(payload).updateMethod; - var methodName = progressiveRender ? "incrementalPrepareRender" : updateMethod && view[updateMethod] ? updateMethod : "render"; - if (methodName !== "render") { - view[methodName](seriesModel, ecModel, api, payload); - } - return progressMethodMap[methodName]; -} -var progressMethodMap = { - incrementalPrepareRender: { - progress: function(params, context) { - context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload); - } - }, - render: { - // Put view.render in `progress` to support appendData. But in this case - // view.render should not be called in reset, otherwise it will be called - // twise. Use `forceFirstProgress` to make sure that view.render is called - // in any cases. - forceFirstProgress: true, - progress: function(params, context) { - context.view.render(context.model, context.ecModel, context.api, context.payload); - } - } -}; -const ChartView$1 = ChartView; -var ORIGIN_METHOD = "\0__throttleOriginMethod"; -var RATE = "\0__throttleRate"; -var THROTTLE_TYPE = "\0__throttleType"; -function throttle(fn, delay, debounce) { - var currCall; - var lastCall = 0; - var lastExec = 0; - var timer = null; - var diff; - var scope; - var args; - var debounceNextCall; - delay = delay || 0; - function exec() { - lastExec = (/* @__PURE__ */ new Date()).getTime(); - timer = null; - fn.apply(scope, args || []); - } - var cb = function() { - var cbArgs = []; - for (var _i = 0; _i < arguments.length; _i++) { - cbArgs[_i] = arguments[_i]; - } - currCall = (/* @__PURE__ */ new Date()).getTime(); - scope = this; - args = cbArgs; - var thisDelay = debounceNextCall || delay; - var thisDebounce = debounceNextCall || debounce; - debounceNextCall = null; - diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay; - clearTimeout(timer); - if (thisDebounce) { - timer = setTimeout(exec, thisDelay); - } else { - if (diff >= 0) { - exec(); - } else { - timer = setTimeout(exec, -diff); - } - } - lastCall = currCall; - }; - cb.clear = function() { - if (timer) { - clearTimeout(timer); - timer = null; - } - }; - cb.debounceNextCall = function(debounceDelay) { - debounceNextCall = debounceDelay; - }; - return cb; -} -function createOrUpdate(obj, fnAttr, rate, throttleType) { - var fn = obj[fnAttr]; - if (!fn) { - return; - } - var originFn = fn[ORIGIN_METHOD] || fn; - var lastThrottleType = fn[THROTTLE_TYPE]; - var lastRate = fn[RATE]; - if (lastRate !== rate || lastThrottleType !== throttleType) { - if (rate == null || !throttleType) { - return obj[fnAttr] = originFn; - } - fn = obj[fnAttr] = throttle(originFn, rate, throttleType === "debounce"); - fn[ORIGIN_METHOD] = originFn; - fn[THROTTLE_TYPE] = throttleType; - fn[RATE] = rate; - } - return fn; -} -function clear(obj, fnAttr) { - var fn = obj[fnAttr]; - if (fn && fn[ORIGIN_METHOD]) { - fn.clear && fn.clear(); - obj[fnAttr] = fn[ORIGIN_METHOD]; - } -} -var inner$2 = makeInner(); -var defaultStyleMappers = { - itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true), - lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true) -}; -var defaultColorKey = { - lineStyle: "stroke", - itemStyle: "fill" -}; -function getStyleMapper(seriesModel, stylePath) { - var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath]; - if (!styleMapper) { - console.warn("Unknown style type '" + stylePath + "'."); - return defaultStyleMappers.itemStyle; - } - return styleMapper; -} -function getDefaultColorKey(seriesModel, stylePath) { - var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath]; - if (!colorKey) { - console.warn("Unknown style type '" + stylePath + "'."); - return "fill"; - } - return colorKey; -} -var seriesStyleTask = { - createOnAllSeries: true, - performRawSeries: true, - reset: function(seriesModel, ecModel) { - var data = seriesModel.getData(); - var stylePath = seriesModel.visualStyleAccessPath || "itemStyle"; - var styleModel = seriesModel.getModel(stylePath); - var getStyle = getStyleMapper(seriesModel, stylePath); - var globalStyle = getStyle(styleModel); - var decalOption = styleModel.getShallow("decal"); - if (decalOption) { - data.setVisual("decal", decalOption); - decalOption.dirty = true; - } - var colorKey = getDefaultColorKey(seriesModel, stylePath); - var color = globalStyle[colorKey]; - var colorCallback = isFunction(color) ? color : null; - var hasAutoColor = globalStyle.fill === "auto" || globalStyle.stroke === "auto"; - if (!globalStyle[colorKey] || colorCallback || hasAutoColor) { - var colorPalette2 = seriesModel.getColorFromPalette( - // TODO series count changed. - seriesModel.name, - null, - ecModel.getSeriesCount() - ); - if (!globalStyle[colorKey]) { - globalStyle[colorKey] = colorPalette2; - data.setVisual("colorFromPalette", true); - } - globalStyle.fill = globalStyle.fill === "auto" || isFunction(globalStyle.fill) ? colorPalette2 : globalStyle.fill; - globalStyle.stroke = globalStyle.stroke === "auto" || isFunction(globalStyle.stroke) ? colorPalette2 : globalStyle.stroke; - } - data.setVisual("style", globalStyle); - data.setVisual("drawType", colorKey); - if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) { - data.setVisual("colorFromPalette", false); - return { - dataEach: function(data2, idx) { - var dataParams = seriesModel.getDataParams(idx); - var itemStyle = extend({}, globalStyle); - itemStyle[colorKey] = colorCallback(dataParams); - data2.setItemVisual(idx, "style", itemStyle); - } - }; - } - } -}; -var sharedModel = new Model$1(); -var dataStyleTask = { - createOnAllSeries: true, - performRawSeries: true, - reset: function(seriesModel, ecModel) { - if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) { - return; - } - var data = seriesModel.getData(); - var stylePath = seriesModel.visualStyleAccessPath || "itemStyle"; - var getStyle = getStyleMapper(seriesModel, stylePath); - var colorKey = data.getVisual("drawType"); - return { - dataEach: data.hasItemOption ? function(data2, idx) { - var rawItem = data2.getRawDataItem(idx); - if (rawItem && rawItem[stylePath]) { - sharedModel.option = rawItem[stylePath]; - var style = getStyle(sharedModel); - var existsStyle = data2.ensureUniqueItemVisual(idx, "style"); - extend(existsStyle, style); - if (sharedModel.option.decal) { - data2.setItemVisual(idx, "decal", sharedModel.option.decal); - sharedModel.option.decal.dirty = true; - } - if (colorKey in style) { - data2.setItemVisual(idx, "colorFromPalette", false); - } - } - } : null - }; - } -}; -var dataColorPaletteTask = { - performRawSeries: true, - overallReset: function(ecModel) { - var paletteScopeGroupByType = createHashMap(); - ecModel.eachSeries(function(seriesModel) { - var colorBy = seriesModel.getColorBy(); - if (seriesModel.isColorBySeries()) { - return; - } - var key = seriesModel.type + "-" + colorBy; - var colorScope = paletteScopeGroupByType.get(key); - if (!colorScope) { - colorScope = {}; - paletteScopeGroupByType.set(key, colorScope); - } - inner$2(seriesModel).scope = colorScope; - }); - ecModel.eachSeries(function(seriesModel) { - if (seriesModel.isColorBySeries() || ecModel.isSeriesFiltered(seriesModel)) { - return; - } - var dataAll = seriesModel.getRawData(); - var idxMap = {}; - var data = seriesModel.getData(); - var colorScope = inner$2(seriesModel).scope; - var stylePath = seriesModel.visualStyleAccessPath || "itemStyle"; - var colorKey = getDefaultColorKey(seriesModel, stylePath); - data.each(function(idx) { - var rawIdx = data.getRawIndex(idx); - idxMap[rawIdx] = idx; - }); - dataAll.each(function(rawIdx) { - var idx = idxMap[rawIdx]; - var fromPalette = data.getItemVisual(idx, "colorFromPalette"); - if (fromPalette) { - var itemStyle = data.ensureUniqueItemVisual(idx, "style"); - var name_1 = dataAll.getName(rawIdx) || rawIdx + ""; - var dataCount = dataAll.count(); - itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount); - } - }); - }); - } -}; -var PI = Math.PI; -function defaultLoading(api, opts) { - opts = opts || {}; - defaults(opts, { - text: "loading", - textColor: "#000", - fontSize: 12, - fontWeight: "normal", - fontStyle: "normal", - fontFamily: "sans-serif", - maskColor: "rgba(255, 255, 255, 0.8)", - showSpinner: true, - color: "#5470c6", - spinnerRadius: 10, - lineWidth: 5, - zlevel: 0 - }); - var group = new Group$1(); - var mask = new Rect({ - style: { - fill: opts.maskColor - }, - zlevel: opts.zlevel, - z: 1e4 - }); - group.add(mask); - var textContent = new ZRText({ - style: { - text: opts.text, - fill: opts.textColor, - fontSize: opts.fontSize, - fontWeight: opts.fontWeight, - fontStyle: opts.fontStyle, - fontFamily: opts.fontFamily - }, - zlevel: opts.zlevel, - z: 10001 - }); - var labelRect = new Rect({ - style: { - fill: "none" - }, - textContent, - textConfig: { - position: "right", - distance: 10 - }, - zlevel: opts.zlevel, - z: 10001 - }); - group.add(labelRect); - var arc; - if (opts.showSpinner) { - arc = new Arc$1({ - shape: { - startAngle: -PI / 2, - endAngle: -PI / 2 + 0.1, - r: opts.spinnerRadius - }, - style: { - stroke: opts.color, - lineCap: "round", - lineWidth: opts.lineWidth - }, - zlevel: opts.zlevel, - z: 10001 - }); - arc.animateShape(true).when(1e3, { - endAngle: PI * 3 / 2 - }).start("circularInOut"); - arc.animateShape(true).when(1e3, { - startAngle: PI * 3 / 2 - }).delay(300).start("circularInOut"); - group.add(arc); - } - group.resize = function() { - var textWidth = textContent.getBoundingRect().width; - var r = opts.showSpinner ? opts.spinnerRadius : 0; - var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r); - var cy = api.getHeight() / 2; - opts.showSpinner && arc.setShape({ - cx, - cy - }); - labelRect.setShape({ - x: cx - r, - y: cy - r, - width: r * 2, - height: r * 2 - }); - mask.setShape({ - x: 0, - y: 0, - width: api.getWidth(), - height: api.getHeight() - }); - }; - group.resize(); - return group; -} -var Scheduler = ( - /** @class */ - function() { - function Scheduler2(ecInstance, api, dataProcessorHandlers, visualHandlers) { - this._stageTaskMap = createHashMap(); - this.ecInstance = ecInstance; - this.api = api; - dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice(); - visualHandlers = this._visualHandlers = visualHandlers.slice(); - this._allHandlers = dataProcessorHandlers.concat(visualHandlers); - } - Scheduler2.prototype.restoreData = function(ecModel, payload) { - ecModel.restoreData(payload); - this._stageTaskMap.each(function(taskRecord) { - var overallTask = taskRecord.overallTask; - overallTask && overallTask.dirty(); - }); - }; - Scheduler2.prototype.getPerformArgs = function(task, isBlock) { - if (!task.__pipeline) { - return; - } - var pipeline = this._pipelineMap.get(task.__pipeline.id); - var pCtx = pipeline.context; - var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex; - var step = incremental ? pipeline.step : null; - var modDataCount = pCtx && pCtx.modDataCount; - var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null; - return { - step, - modBy, - modDataCount - }; - }; - Scheduler2.prototype.getPipeline = function(pipelineId) { - return this._pipelineMap.get(pipelineId); - }; - Scheduler2.prototype.updateStreamModes = function(seriesModel, view) { - var pipeline = this._pipelineMap.get(seriesModel.uid); - var data = seriesModel.getData(); - var dataLen = data.count(); - var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold; - var large = seriesModel.get("large") && dataLen >= seriesModel.get("largeThreshold"); - var modDataCount = seriesModel.get("progressiveChunkMode") === "mod" ? dataLen : null; - seriesModel.pipelineContext = pipeline.context = { - progressiveRender, - modDataCount, - large - }; - }; - Scheduler2.prototype.restorePipelines = function(ecModel) { - var scheduler = this; - var pipelineMap = scheduler._pipelineMap = createHashMap(); - ecModel.eachSeries(function(seriesModel) { - var progressive = seriesModel.getProgressive(); - var pipelineId = seriesModel.uid; - pipelineMap.set(pipelineId, { - id: pipelineId, - head: null, - tail: null, - threshold: seriesModel.getProgressiveThreshold(), - progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()), - blockIndex: -1, - step: Math.round(progressive || 700), - count: 0 - }); - scheduler._pipe(seriesModel, seriesModel.dataTask); - }); - }; - Scheduler2.prototype.prepareStageTasks = function() { - var stageTaskMap = this._stageTaskMap; - var ecModel = this.api.getModel(); - var api = this.api; - each$2(this._allHandlers, function(handler) { - var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {}); - var errMsg = ""; - assert(!(handler.reset && handler.overallReset), errMsg); - handler.reset && this._createSeriesStageTask(handler, record, ecModel, api); - handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api); - }, this); - }; - Scheduler2.prototype.prepareView = function(view, model, ecModel, api) { - var renderTask = view.renderTask; - var context = renderTask.context; - context.model = model; - context.ecModel = ecModel; - context.api = api; - renderTask.__block = !view.incrementalPrepareRender; - this._pipe(model, renderTask); - }; - Scheduler2.prototype.performDataProcessorTasks = function(ecModel, payload) { - this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, { - block: true - }); - }; - Scheduler2.prototype.performVisualTasks = function(ecModel, payload, opt) { - this._performStageTasks(this._visualHandlers, ecModel, payload, opt); - }; - Scheduler2.prototype._performStageTasks = function(stageHandlers, ecModel, payload, opt) { - opt = opt || {}; - var unfinished = false; - var scheduler = this; - each$2(stageHandlers, function(stageHandler, idx) { - if (opt.visualType && opt.visualType !== stageHandler.visualType) { - return; - } - var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid); - var seriesTaskMap = stageHandlerRecord.seriesTaskMap; - var overallTask = stageHandlerRecord.overallTask; - if (overallTask) { - var overallNeedDirty_1; - var agentStubMap = overallTask.agentStubMap; - agentStubMap.each(function(stub) { - if (needSetDirty(opt, stub)) { - stub.dirty(); - overallNeedDirty_1 = true; - } - }); - overallNeedDirty_1 && overallTask.dirty(); - scheduler.updatePayload(overallTask, payload); - var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block); - agentStubMap.each(function(stub) { - stub.perform(performArgs_1); - }); - if (overallTask.perform(performArgs_1)) { - unfinished = true; - } - } else if (seriesTaskMap) { - seriesTaskMap.each(function(task, pipelineId) { - if (needSetDirty(opt, task)) { - task.dirty(); - } - var performArgs = scheduler.getPerformArgs(task, opt.block); - performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model); - scheduler.updatePayload(task, payload); - if (task.perform(performArgs)) { - unfinished = true; - } - }); - } - }); - function needSetDirty(opt2, task) { - return opt2.setDirty && (!opt2.dirtyMap || opt2.dirtyMap.get(task.__pipeline.id)); - } - this.unfinished = unfinished || this.unfinished; - }; - Scheduler2.prototype.performSeriesTasks = function(ecModel) { - var unfinished; - ecModel.eachSeries(function(seriesModel) { - unfinished = seriesModel.dataTask.perform() || unfinished; - }); - this.unfinished = unfinished || this.unfinished; - }; - Scheduler2.prototype.plan = function() { - this._pipelineMap.each(function(pipeline) { - var task = pipeline.tail; - do { - if (task.__block) { - pipeline.blockIndex = task.__idxInPipeline; - break; - } - task = task.getUpstream(); - } while (task); - }); - }; - Scheduler2.prototype.updatePayload = function(task, payload) { - payload !== "remain" && (task.context.payload = payload); - }; - Scheduler2.prototype._createSeriesStageTask = function(stageHandler, stageHandlerRecord, ecModel, api) { - var scheduler = this; - var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap; - var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap(); - var seriesType2 = stageHandler.seriesType; - var getTargetSeries = stageHandler.getTargetSeries; - if (stageHandler.createOnAllSeries) { - ecModel.eachRawSeries(create); - } else if (seriesType2) { - ecModel.eachRawSeriesByType(seriesType2, create); - } else if (getTargetSeries) { - getTargetSeries(ecModel, api).each(create); - } - function create(seriesModel) { - var pipelineId = seriesModel.uid; - var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({ - plan: seriesTaskPlan, - reset: seriesTaskReset, - count: seriesTaskCount - })); - task.context = { - model: seriesModel, - ecModel, - api, - // PENDING: `useClearVisual` not used? - useClearVisual: stageHandler.isVisual && !stageHandler.isLayout, - plan: stageHandler.plan, - reset: stageHandler.reset, - scheduler - }; - scheduler._pipe(seriesModel, task); - } - }; - Scheduler2.prototype._createOverallStageTask = function(stageHandler, stageHandlerRecord, ecModel, api) { - var scheduler = this; - var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({ - reset: overallTaskReset - }); - overallTask.context = { - ecModel, - api, - overallReset: stageHandler.overallReset, - scheduler - }; - var oldAgentStubMap = overallTask.agentStubMap; - var newAgentStubMap = overallTask.agentStubMap = createHashMap(); - var seriesType2 = stageHandler.seriesType; - var getTargetSeries = stageHandler.getTargetSeries; - var overallProgress = true; - var shouldOverallTaskDirty = false; - var errMsg = ""; - assert(!stageHandler.createOnAllSeries, errMsg); - if (seriesType2) { - ecModel.eachRawSeriesByType(seriesType2, createStub); - } else if (getTargetSeries) { - getTargetSeries(ecModel, api).each(createStub); - } else { - overallProgress = false; - each$2(ecModel.getSeries(), createStub); - } - function createStub(seriesModel) { - var pipelineId = seriesModel.uid; - var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || // When the result of `getTargetSeries` changed, the overallTask - // should be set as dirty and re-performed. - (shouldOverallTaskDirty = true, createTask({ - reset: stubReset, - onDirty: stubOnDirty - }))); - stub.context = { - model: seriesModel, - overallProgress - // FIXME:TS never used, so comment it - // modifyOutputEnd: modifyOutputEnd - }; - stub.agent = overallTask; - stub.__block = overallProgress; - scheduler._pipe(seriesModel, stub); - } - if (shouldOverallTaskDirty) { - overallTask.dirty(); - } - }; - Scheduler2.prototype._pipe = function(seriesModel, task) { - var pipelineId = seriesModel.uid; - var pipeline = this._pipelineMap.get(pipelineId); - !pipeline.head && (pipeline.head = task); - pipeline.tail && pipeline.tail.pipe(task); - pipeline.tail = task; - task.__idxInPipeline = pipeline.count++; - task.__pipeline = pipeline; - }; - Scheduler2.wrapStageHandler = function(stageHandler, visualType) { - if (isFunction(stageHandler)) { - stageHandler = { - overallReset: stageHandler, - seriesType: detectSeriseType(stageHandler) - }; - } - stageHandler.uid = getUID("stageHandler"); - visualType && (stageHandler.visualType = visualType); - return stageHandler; - }; - return Scheduler2; - }() -); -function overallTaskReset(context) { - context.overallReset(context.ecModel, context.api, context.payload); -} -function stubReset(context) { - return context.overallProgress && stubProgress; -} -function stubProgress() { - this.agent.dirty(); - this.getDownstream().dirty(); -} -function stubOnDirty() { - this.agent && this.agent.dirty(); -} -function seriesTaskPlan(context) { - return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null; -} -function seriesTaskReset(context) { - if (context.useClearVisual) { - context.data.clearAllVisual(); - } - var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload)); - return resetDefines.length > 1 ? map$1(resetDefines, function(v, idx) { - return makeSeriesTaskProgress(idx); - }) : singleSeriesTaskProgress; -} -var singleSeriesTaskProgress = makeSeriesTaskProgress(0); -function makeSeriesTaskProgress(resetDefineIdx) { - return function(params, context) { - var data = context.data; - var resetDefine = context.resetDefines[resetDefineIdx]; - if (resetDefine && resetDefine.dataEach) { - for (var i = params.start; i < params.end; i++) { - resetDefine.dataEach(data, i); - } - } else if (resetDefine && resetDefine.progress) { - resetDefine.progress(params, data); - } - }; -} -function seriesTaskCount(context) { - return context.data.count(); -} -function detectSeriseType(legacyFunc) { - seriesType = null; - try { - legacyFunc(ecModelMock, apiMock); - } catch (e2) { - } - return seriesType; -} -var ecModelMock = {}; -var apiMock = {}; -var seriesType; -mockMethods(ecModelMock, GlobalModel$1); -mockMethods(apiMock, ExtensionAPI$1); -ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function(type) { - seriesType = type; -}; -ecModelMock.eachComponent = function(cond) { - if (cond.mainType === "series" && cond.subType) { - seriesType = cond.subType; - } -}; -function mockMethods(target, Clz) { - for (var name_1 in Clz.prototype) { - target[name_1] = noop; - } -} -const Scheduler$1 = Scheduler; -var colorAll = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1", "#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"]; -const lightTheme = { - color: colorAll, - colorLayer: [["#37A2DA", "#ffd85c", "#fd7b5f"], ["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"], ["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA", "#96BFFF"], colorAll] -}; -var contrastColor = "#B9B8CE"; -var backgroundColor = "#100C2A"; -var axisCommon = function() { - return { - axisLine: { - lineStyle: { - color: contrastColor - } - }, - splitLine: { - lineStyle: { - color: "#484753" - } - }, - splitArea: { - areaStyle: { - color: ["rgba(255,255,255,0.02)", "rgba(255,255,255,0.05)"] - } - }, - minorSplitLine: { - lineStyle: { - color: "#20203B" - } - } - }; -}; -var colorPalette = ["#4992ff", "#7cffb2", "#fddd60", "#ff6e76", "#58d9f9", "#05c091", "#ff8a45", "#8d48e3", "#dd79ff"]; -var theme = { - darkMode: true, - color: colorPalette, - backgroundColor, - axisPointer: { - lineStyle: { - color: "#817f91" - }, - crossStyle: { - color: "#817f91" - }, - label: { - // TODO Contrast of label backgorundColor - color: "#fff" - } - }, - legend: { - textStyle: { - color: contrastColor - } - }, - textStyle: { - color: contrastColor - }, - title: { - textStyle: { - color: "#EEF1FA" - }, - subtextStyle: { - color: "#B9B8CE" - } - }, - toolbox: { - iconStyle: { - borderColor: contrastColor - } - }, - dataZoom: { - borderColor: "#71708A", - textStyle: { - color: contrastColor - }, - brushStyle: { - color: "rgba(135,163,206,0.3)" - }, - handleStyle: { - color: "#353450", - borderColor: "#C5CBE3" - }, - moveHandleStyle: { - color: "#B0B6C3", - opacity: 0.3 - }, - fillerColor: "rgba(135,163,206,0.2)", - emphasis: { - handleStyle: { - borderColor: "#91B7F2", - color: "#4D587D" - }, - moveHandleStyle: { - color: "#636D9A", - opacity: 0.7 - } - }, - dataBackground: { - lineStyle: { - color: "#71708A", - width: 1 - }, - areaStyle: { - color: "#71708A" - } - }, - selectedDataBackground: { - lineStyle: { - color: "#87A3CE" - }, - areaStyle: { - color: "#87A3CE" - } - } - }, - visualMap: { - textStyle: { - color: contrastColor - } - }, - timeline: { - lineStyle: { - color: contrastColor - }, - label: { - color: contrastColor - }, - controlStyle: { - color: contrastColor, - borderColor: contrastColor - } - }, - calendar: { - itemStyle: { - color: backgroundColor - }, - dayLabel: { - color: contrastColor - }, - monthLabel: { - color: contrastColor - }, - yearLabel: { - color: contrastColor - } - }, - timeAxis: axisCommon(), - logAxis: axisCommon(), - valueAxis: axisCommon(), - categoryAxis: axisCommon(), - line: { - symbol: "circle" - }, - graph: { - color: colorPalette - }, - gauge: { - title: { - color: contrastColor - }, - axisLine: { - lineStyle: { - color: [[1, "rgba(207,212,219,0.2)"]] - } - }, - axisLabel: { - color: contrastColor - }, - detail: { - color: "#EEF1FA" - } - }, - candlestick: { - itemStyle: { - color: "#f64e56", - color0: "#54ea92", - borderColor: "#f64e56", - borderColor0: "#54ea92" - // borderColor: '#ca2824', - // borderColor0: '#09a443' - } - } -}; -theme.categoryAxis.splitLine.show = false; -const darkTheme = theme; -var ECEventProcessor = ( - /** @class */ - function() { - function ECEventProcessor2() { - } - ECEventProcessor2.prototype.normalizeQuery = function(query) { - var cptQuery = {}; - var dataQuery = {}; - var otherQuery = {}; - if (isString(query)) { - var condCptType = parseClassType(query); - cptQuery.mainType = condCptType.main || null; - cptQuery.subType = condCptType.sub || null; - } else { - var suffixes_1 = ["Index", "Name", "Id"]; - var dataKeys_1 = { - name: 1, - dataIndex: 1, - dataType: 1 - }; - each$2(query, function(val, key) { - var reserved = false; - for (var i = 0; i < suffixes_1.length; i++) { - var propSuffix = suffixes_1[i]; - var suffixPos = key.lastIndexOf(propSuffix); - if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) { - var mainType = key.slice(0, suffixPos); - if (mainType !== "data") { - cptQuery.mainType = mainType; - cptQuery[propSuffix.toLowerCase()] = val; - reserved = true; - } - } - } - if (dataKeys_1.hasOwnProperty(key)) { - dataQuery[key] = val; - reserved = true; - } - if (!reserved) { - otherQuery[key] = val; - } - }); - } - return { - cptQuery, - dataQuery, - otherQuery - }; - }; - ECEventProcessor2.prototype.filter = function(eventType, query) { - var eventInfo = this.eventInfo; - if (!eventInfo) { - return true; - } - var targetEl = eventInfo.targetEl; - var packedEvent = eventInfo.packedEvent; - var model = eventInfo.model; - var view = eventInfo.view; - if (!model || !view) { - return true; - } - var cptQuery = query.cptQuery; - var dataQuery = query.dataQuery; - return check(cptQuery, model, "mainType") && check(cptQuery, model, "subType") && check(cptQuery, model, "index", "componentIndex") && check(cptQuery, model, "name") && check(cptQuery, model, "id") && check(dataQuery, packedEvent, "name") && check(dataQuery, packedEvent, "dataIndex") && check(dataQuery, packedEvent, "dataType") && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent)); - function check(query2, host, prop, propOnHost) { - return query2[prop] == null || host[propOnHost || prop] === query2[prop]; - } - }; - ECEventProcessor2.prototype.afterTrigger = function() { - this.eventInfo = null; - }; - return ECEventProcessor2; - }() -); -var SYMBOL_PROPS_WITH_CB = ["symbol", "symbolSize", "symbolRotate", "symbolOffset"]; -var SYMBOL_PROPS = SYMBOL_PROPS_WITH_CB.concat(["symbolKeepAspect"]); -var seriesSymbolTask = { - createOnAllSeries: true, - // For legend. - performRawSeries: true, - reset: function(seriesModel, ecModel) { - var data = seriesModel.getData(); - if (seriesModel.legendIcon) { - data.setVisual("legendIcon", seriesModel.legendIcon); - } - if (!seriesModel.hasSymbolVisual) { - return; - } - var symbolOptions = {}; - var symbolOptionsCb = {}; - var hasCallback = false; - for (var i = 0; i < SYMBOL_PROPS_WITH_CB.length; i++) { - var symbolPropName = SYMBOL_PROPS_WITH_CB[i]; - var val = seriesModel.get(symbolPropName); - if (isFunction(val)) { - hasCallback = true; - symbolOptionsCb[symbolPropName] = val; - } else { - symbolOptions[symbolPropName] = val; - } - } - symbolOptions.symbol = symbolOptions.symbol || seriesModel.defaultSymbol; - data.setVisual(extend({ - legendIcon: seriesModel.legendIcon || symbolOptions.symbol, - symbolKeepAspect: seriesModel.get("symbolKeepAspect") - }, symbolOptions)); - if (ecModel.isSeriesFiltered(seriesModel)) { - return; - } - var symbolPropsCb = keys(symbolOptionsCb); - function dataEach(data2, idx) { - var rawValue = seriesModel.getRawValue(idx); - var params = seriesModel.getDataParams(idx); - for (var i2 = 0; i2 < symbolPropsCb.length; i2++) { - var symbolPropName2 = symbolPropsCb[i2]; - data2.setItemVisual(idx, symbolPropName2, symbolOptionsCb[symbolPropName2](rawValue, params)); - } - } - return { - dataEach: hasCallback ? dataEach : null - }; - } -}; -var dataSymbolTask = { - createOnAllSeries: true, - // For legend. - performRawSeries: true, - reset: function(seriesModel, ecModel) { - if (!seriesModel.hasSymbolVisual) { - return; - } - if (ecModel.isSeriesFiltered(seriesModel)) { - return; - } - var data = seriesModel.getData(); - function dataEach(data2, idx) { - var itemModel = data2.getItemModel(idx); - for (var i = 0; i < SYMBOL_PROPS.length; i++) { - var symbolPropName = SYMBOL_PROPS[i]; - var val = itemModel.getShallow(symbolPropName, true); - if (val != null) { - data2.setItemVisual(idx, symbolPropName, val); - } - } - } - return { - dataEach: data.hasItemOption ? dataEach : null - }; - } -}; -function getItemVisualFromData(data, dataIndex, key) { - switch (key) { - case "color": - var style = data.getItemVisual(dataIndex, "style"); - return style[data.getVisual("drawType")]; - case "opacity": - return data.getItemVisual(dataIndex, "style").opacity; - case "symbol": - case "symbolSize": - case "liftZ": - return data.getItemVisual(dataIndex, key); - } -} -function getVisualFromData(data, key) { - switch (key) { - case "color": - var style = data.getVisual("style"); - return style[data.getVisual("drawType")]; - case "opacity": - return data.getVisual("style").opacity; - case "symbol": - case "symbolSize": - case "liftZ": - return data.getVisual(key); - } -} -function setItemVisualFromData(data, dataIndex, key, value) { - switch (key) { - case "color": - var style = data.ensureUniqueItemVisual(dataIndex, "style"); - style[data.getVisual("drawType")] = value; - data.setItemVisual(dataIndex, "colorFromPalette", false); - break; - case "opacity": - data.ensureUniqueItemVisual(dataIndex, "style").opacity = value; - break; - case "symbol": - case "symbolSize": - case "liftZ": - data.setItemVisual(dataIndex, key, value); - break; - } -} -function createLegacyDataSelectAction(seriesType2, ecRegisterAction) { - function getSeriesIndices(ecModel, payload) { - var seriesIndices = []; - ecModel.eachComponent({ - mainType: "series", - subType: seriesType2, - query: payload - }, function(seriesModel) { - seriesIndices.push(seriesModel.seriesIndex); - }); - return seriesIndices; - } - each$2([[seriesType2 + "ToggleSelect", "toggleSelect"], [seriesType2 + "Select", "select"], [seriesType2 + "UnSelect", "unselect"]], function(eventsMap) { - ecRegisterAction(eventsMap[0], function(payload, ecModel, api) { - payload = extend({}, payload); - api.dispatchAction(extend(payload, { - type: eventsMap[1], - seriesIndex: getSeriesIndices(ecModel, payload) - })); - }); - }); -} -function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) { - var legacyEventName = type + eventPostfix; - if (!ecIns.isSilent(legacyEventName)) { - ecModel.eachComponent({ - mainType: "series", - subType: "pie" - }, function(seriesModel) { - var seriesIndex = seriesModel.seriesIndex; - var selectedMap = seriesModel.option.selectedMap; - var selected = payload.selected; - for (var i = 0; i < selected.length; i++) { - if (selected[i].seriesIndex === seriesIndex) { - var data = seriesModel.getData(); - var dataIndex = queryDataIndex(data, payload.fromActionPayload); - ecIns.trigger(legacyEventName, { - type: legacyEventName, - seriesId: seriesModel.id, - name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex), - selected: isString(selectedMap) ? selectedMap : extend({}, selectedMap) - }); - } - } - }); - } -} -function handleLegacySelectEvents(messageCenter, ecIns, api) { - messageCenter.on("selectchanged", function(params) { - var ecModel = api.getModel(); - if (params.isFromClick) { - handleSeriesLegacySelectEvents("map", "selectchanged", ecIns, ecModel, params); - handleSeriesLegacySelectEvents("pie", "selectchanged", ecIns, ecModel, params); - } else if (params.fromAction === "select") { - handleSeriesLegacySelectEvents("map", "selected", ecIns, ecModel, params); - handleSeriesLegacySelectEvents("pie", "selected", ecIns, ecModel, params); - } else if (params.fromAction === "unselect") { - handleSeriesLegacySelectEvents("map", "unselected", ecIns, ecModel, params); - handleSeriesLegacySelectEvents("pie", "unselected", ecIns, ecModel, params); - } - }); -} -function findEventDispatcher(target, det, returnFirstMatch) { - var found; - while (target) { - if (det(target)) { - found = target; - if (returnFirstMatch) { - break; - } - } - target = target.__hostTarget || target.parent; - } - return found; -} -var wmUniqueIndex = Math.round(Math.random() * 9); -var supportDefineProperty = typeof Object.defineProperty === "function"; -var WeakMap = function() { - function WeakMap2() { - this._id = "__ec_inner_" + wmUniqueIndex++; - } - WeakMap2.prototype.get = function(key) { - return this._guard(key)[this._id]; - }; - WeakMap2.prototype.set = function(key, value) { - var target = this._guard(key); - if (supportDefineProperty) { - Object.defineProperty(target, this._id, { - value, - enumerable: false, - configurable: true - }); - } else { - target[this._id] = value; - } - return this; - }; - WeakMap2.prototype["delete"] = function(key) { - if (this.has(key)) { - delete this._guard(key)[this._id]; - return true; - } - return false; - }; - WeakMap2.prototype.has = function(key) { - return !!this._guard(key)[this._id]; - }; - WeakMap2.prototype._guard = function(key) { - if (key !== Object(key)) { - throw TypeError("Value of WeakMap is not a non-null object."); - } - return key; - }; - return WeakMap2; -}(); -const WeakMap$1 = WeakMap; -var Triangle = Path.extend({ - type: "triangle", - shape: { - cx: 0, - cy: 0, - width: 0, - height: 0 - }, - buildPath: function(path, shape) { - var cx = shape.cx; - var cy = shape.cy; - var width = shape.width / 2; - var height = shape.height / 2; - path.moveTo(cx, cy - height); - path.lineTo(cx + width, cy + height); - path.lineTo(cx - width, cy + height); - path.closePath(); - } -}); -var Diamond = Path.extend({ - type: "diamond", - shape: { - cx: 0, - cy: 0, - width: 0, - height: 0 - }, - buildPath: function(path, shape) { - var cx = shape.cx; - var cy = shape.cy; - var width = shape.width / 2; - var height = shape.height / 2; - path.moveTo(cx, cy - height); - path.lineTo(cx + width, cy); - path.lineTo(cx, cy + height); - path.lineTo(cx - width, cy); - path.closePath(); - } -}); -var Pin = Path.extend({ - type: "pin", - shape: { - // x, y on the cusp - x: 0, - y: 0, - width: 0, - height: 0 - }, - buildPath: function(path, shape) { - var x = shape.x; - var y = shape.y; - var w = shape.width / 5 * 3; - var h = Math.max(w, shape.height); - var r = w / 2; - var dy = r * r / (h - r); - var cy = y - h + r + dy; - var angle = Math.asin(dy / r); - var dx = Math.cos(angle) * r; - var tanX = Math.sin(angle); - var tanY = Math.cos(angle); - var cpLen = r * 0.6; - var cpLen2 = r * 0.7; - path.moveTo(x - dx, cy + dy); - path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle); - path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y); - path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy); - path.closePath(); - } -}); -var Arrow = Path.extend({ - type: "arrow", - shape: { - x: 0, - y: 0, - width: 0, - height: 0 - }, - buildPath: function(ctx, shape) { - var height = shape.height; - var width = shape.width; - var x = shape.x; - var y = shape.y; - var dx = width / 3 * 2; - ctx.moveTo(x, y); - ctx.lineTo(x + dx, y + height); - ctx.lineTo(x, y + height / 4 * 3); - ctx.lineTo(x - dx, y + height); - ctx.lineTo(x, y); - ctx.closePath(); - } -}); -var symbolCtors = { - line: Line$1, - rect: Rect, - roundRect: Rect, - square: Rect, - circle: Circle$1, - diamond: Diamond, - pin: Pin, - arrow: Arrow, - triangle: Triangle -}; -var symbolShapeMakers = { - line: function(x, y, w, h, shape) { - shape.x1 = x; - shape.y1 = y + h / 2; - shape.x2 = x + w; - shape.y2 = y + h / 2; - }, - rect: function(x, y, w, h, shape) { - shape.x = x; - shape.y = y; - shape.width = w; - shape.height = h; - }, - roundRect: function(x, y, w, h, shape) { - shape.x = x; - shape.y = y; - shape.width = w; - shape.height = h; - shape.r = Math.min(w, h) / 4; - }, - square: function(x, y, w, h, shape) { - var size = Math.min(w, h); - shape.x = x; - shape.y = y; - shape.width = size; - shape.height = size; - }, - circle: function(x, y, w, h, shape) { - shape.cx = x + w / 2; - shape.cy = y + h / 2; - shape.r = Math.min(w, h) / 2; - }, - diamond: function(x, y, w, h, shape) { - shape.cx = x + w / 2; - shape.cy = y + h / 2; - shape.width = w; - shape.height = h; - }, - pin: function(x, y, w, h, shape) { - shape.x = x + w / 2; - shape.y = y + h / 2; - shape.width = w; - shape.height = h; - }, - arrow: function(x, y, w, h, shape) { - shape.x = x + w / 2; - shape.y = y + h / 2; - shape.width = w; - shape.height = h; - }, - triangle: function(x, y, w, h, shape) { - shape.cx = x + w / 2; - shape.cy = y + h / 2; - shape.width = w; - shape.height = h; - } -}; -var symbolBuildProxies = {}; -each$2(symbolCtors, function(Ctor, name) { - symbolBuildProxies[name] = new Ctor(); -}); -var SymbolClz = Path.extend({ - type: "symbol", - shape: { - symbolType: "", - x: 0, - y: 0, - width: 0, - height: 0 - }, - calculateTextPosition: function(out2, config, rect) { - var res = calculateTextPosition(out2, config, rect); - var shape = this.shape; - if (shape && shape.symbolType === "pin" && config.position === "inside") { - res.y = rect.y + rect.height * 0.4; - } - return res; - }, - buildPath: function(ctx, shape, inBundle) { - var symbolType = shape.symbolType; - if (symbolType !== "none") { - var proxySymbol = symbolBuildProxies[symbolType]; - if (!proxySymbol) { - symbolType = "rect"; - proxySymbol = symbolBuildProxies[symbolType]; - } - symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape); - proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle); - } - } -}); -function symbolPathSetColor(color, innerColor2) { - if (this.type !== "image") { - var symbolStyle = this.style; - if (this.__isEmptyBrush) { - symbolStyle.stroke = color; - symbolStyle.fill = innerColor2 || "#fff"; - symbolStyle.lineWidth = 2; - } else if (this.shape.symbolType === "line") { - symbolStyle.stroke = color; - } else { - symbolStyle.fill = color; - } - this.markRedraw(); - } -} -function createSymbol(symbolType, x, y, w, h, color, keepAspect) { - var isEmpty = symbolType.indexOf("empty") === 0; - if (isEmpty) { - symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6); - } - var symbolPath; - if (symbolType.indexOf("image://") === 0) { - symbolPath = makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? "center" : "cover"); - } else if (symbolType.indexOf("path://") === 0) { - symbolPath = makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? "center" : "cover"); - } else { - symbolPath = new SymbolClz({ - shape: { - symbolType, - x, - y, - width: w, - height: h - } - }); - } - symbolPath.__isEmptyBrush = isEmpty; - symbolPath.setColor = symbolPathSetColor; - if (color) { - symbolPath.setColor(color); - } - return symbolPath; -} -function normalizeSymbolSize(symbolSize) { - if (!isArray(symbolSize)) { - symbolSize = [+symbolSize, +symbolSize]; - } - return [symbolSize[0] || 0, symbolSize[1] || 0]; -} -function normalizeSymbolOffset(symbolOffset, symbolSize) { - if (symbolOffset == null) { - return; - } - if (!isArray(symbolOffset)) { - symbolOffset = [symbolOffset, symbolOffset]; - } - return [parsePercent(symbolOffset[0], symbolSize[0]) || 0, parsePercent(retrieve2(symbolOffset[1], symbolOffset[0]), symbolSize[1]) || 0]; -} -var decalMap = new WeakMap$1(); -var decalCache = new LRU(100); -var decalKeys = ["symbol", "symbolSize", "symbolKeepAspect", "color", "backgroundColor", "dashArrayX", "dashArrayY", "maxTileWidth", "maxTileHeight"]; -function createOrUpdatePatternFromDecal(decalObject, api) { - if (decalObject === "none") { - return null; - } - var dpr = api.getDevicePixelRatio(); - var zr = api.getZr(); - var isSVG = zr.painter.type === "svg"; - if (decalObject.dirty) { - decalMap["delete"](decalObject); - } - var oldPattern = decalMap.get(decalObject); - if (oldPattern) { - return oldPattern; - } - var decalOpt = defaults(decalObject, { - symbol: "rect", - symbolSize: 1, - symbolKeepAspect: true, - color: "rgba(0, 0, 0, 0.2)", - backgroundColor: null, - dashArrayX: 5, - dashArrayY: 5, - rotation: 0, - maxTileWidth: 512, - maxTileHeight: 512 - }); - if (decalOpt.backgroundColor === "none") { - decalOpt.backgroundColor = null; - } - var pattern = { - repeat: "repeat" - }; - setPatternnSource(pattern); - pattern.rotation = decalOpt.rotation; - pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr; - decalMap.set(decalObject, pattern); - decalObject.dirty = false; - return pattern; - function setPatternnSource(pattern2) { - var keys2 = [dpr]; - var isValidKey = true; - for (var i = 0; i < decalKeys.length; ++i) { - var value = decalOpt[decalKeys[i]]; - if (value != null && !isArray(value) && !isString(value) && !isNumber(value) && typeof value !== "boolean") { - isValidKey = false; - break; - } - keys2.push(value); - } - var cacheKey; - if (isValidKey) { - cacheKey = keys2.join(",") + (isSVG ? "-svg" : ""); - var cache = decalCache.get(cacheKey); - if (cache) { - isSVG ? pattern2.svgElement = cache : pattern2.image = cache; - } - } - var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX); - var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY); - var symbolArray = normalizeSymbolArray(decalOpt.symbol); - var lineBlockLengthsX = getLineBlockLengthX(dashArrayX); - var lineBlockLengthY = getLineBlockLengthY(dashArrayY); - var canvas = !isSVG && platformApi.createCanvas(); - var svgRoot = isSVG && { - tag: "g", - attrs: {}, - key: "dcl", - children: [] - }; - var pSize = getPatternSize(); - var ctx; - if (canvas) { - canvas.width = pSize.width * dpr; - canvas.height = pSize.height * dpr; - ctx = canvas.getContext("2d"); - } - brushDecal(); - if (isValidKey) { - decalCache.put(cacheKey, canvas || svgRoot); - } - pattern2.image = canvas; - pattern2.svgElement = svgRoot; - pattern2.svgWidth = pSize.width; - pattern2.svgHeight = pSize.height; - function getPatternSize() { - var width = 1; - for (var i2 = 0, xlen = lineBlockLengthsX.length; i2 < xlen; ++i2) { - width = getLeastCommonMultiple(width, lineBlockLengthsX[i2]); - } - var symbolRepeats = 1; - for (var i2 = 0, xlen = symbolArray.length; i2 < xlen; ++i2) { - symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i2].length); - } - width *= symbolRepeats; - var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length; - return { - width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)), - height: Math.max(1, Math.min(height, decalOpt.maxTileHeight)) - }; - } - function brushDecal() { - if (ctx) { - ctx.clearRect(0, 0, canvas.width, canvas.height); - if (decalOpt.backgroundColor) { - ctx.fillStyle = decalOpt.backgroundColor; - ctx.fillRect(0, 0, canvas.width, canvas.height); - } - } - var ySum = 0; - for (var i2 = 0; i2 < dashArrayY.length; ++i2) { - ySum += dashArrayY[i2]; - } - if (ySum <= 0) { - return; - } - var y = -lineBlockLengthY; - var yId = 0; - var yIdTotal = 0; - var xId0 = 0; - while (y < pSize.height) { - if (yId % 2 === 0) { - var symbolYId = yIdTotal / 2 % symbolArray.length; - var x = 0; - var xId1 = 0; - var xId1Total = 0; - while (x < pSize.width * 2) { - var xSum = 0; - for (var i2 = 0; i2 < dashArrayX[xId0].length; ++i2) { - xSum += dashArrayX[xId0][i2]; - } - if (xSum <= 0) { - break; - } - if (xId1 % 2 === 0) { - var size = (1 - decalOpt.symbolSize) * 0.5; - var left = x + dashArrayX[xId0][xId1] * size; - var top_1 = y + dashArrayY[yId] * size; - var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize; - var height = dashArrayY[yId] * decalOpt.symbolSize; - var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length; - brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]); - } - x += dashArrayX[xId0][xId1]; - ++xId1Total; - ++xId1; - if (xId1 === dashArrayX[xId0].length) { - xId1 = 0; - } - } - ++xId0; - if (xId0 === dashArrayX.length) { - xId0 = 0; - } - } - y += dashArrayY[yId]; - ++yIdTotal; - ++yId; - if (yId === dashArrayY.length) { - yId = 0; - } - } - function brushSymbol(x2, y2, width2, height2, symbolType) { - var scale2 = isSVG ? 1 : dpr; - var symbol = createSymbol(symbolType, x2 * scale2, y2 * scale2, width2 * scale2, height2 * scale2, decalOpt.color, decalOpt.symbolKeepAspect); - if (isSVG) { - var symbolVNode = zr.painter.renderOneToVNode(symbol); - if (symbolVNode) { - svgRoot.children.push(symbolVNode); - } - } else { - brushSingle(ctx, symbol); - } - } - } - } -} -function normalizeSymbolArray(symbol) { - if (!symbol || symbol.length === 0) { - return [["rect"]]; - } - if (isString(symbol)) { - return [[symbol]]; - } - var isAllString = true; - for (var i = 0; i < symbol.length; ++i) { - if (!isString(symbol[i])) { - isAllString = false; - break; - } - } - if (isAllString) { - return normalizeSymbolArray([symbol]); - } - var result = []; - for (var i = 0; i < symbol.length; ++i) { - if (isString(symbol[i])) { - result.push([symbol[i]]); - } else { - result.push(symbol[i]); - } - } - return result; -} -function normalizeDashArrayX(dash) { - if (!dash || dash.length === 0) { - return [[0, 0]]; - } - if (isNumber(dash)) { - var dashValue = Math.ceil(dash); - return [[dashValue, dashValue]]; - } - var isAllNumber = true; - for (var i = 0; i < dash.length; ++i) { - if (!isNumber(dash[i])) { - isAllNumber = false; - break; - } - } - if (isAllNumber) { - return normalizeDashArrayX([dash]); - } - var result = []; - for (var i = 0; i < dash.length; ++i) { - if (isNumber(dash[i])) { - var dashValue = Math.ceil(dash[i]); - result.push([dashValue, dashValue]); - } else { - var dashValue = map$1(dash[i], function(n) { - return Math.ceil(n); - }); - if (dashValue.length % 2 === 1) { - result.push(dashValue.concat(dashValue)); - } else { - result.push(dashValue); - } - } - } - return result; -} -function normalizeDashArrayY(dash) { - if (!dash || typeof dash === "object" && dash.length === 0) { - return [0, 0]; - } - if (isNumber(dash)) { - var dashValue_1 = Math.ceil(dash); - return [dashValue_1, dashValue_1]; - } - var dashValue = map$1(dash, function(n) { - return Math.ceil(n); - }); - return dash.length % 2 ? dashValue.concat(dashValue) : dashValue; -} -function getLineBlockLengthX(dash) { - return map$1(dash, function(line) { - return getLineBlockLengthY(line); - }); -} -function getLineBlockLengthY(dash) { - var blockLength = 0; - for (var i = 0; i < dash.length; ++i) { - blockLength += dash[i]; - } - if (dash.length % 2 === 1) { - return blockLength * 2; - } - return blockLength; -} -function decalVisual(ecModel, api) { - ecModel.eachRawSeries(function(seriesModel) { - if (ecModel.isSeriesFiltered(seriesModel)) { - return; - } - var data = seriesModel.getData(); - if (data.hasItemVisual()) { - data.each(function(idx) { - var decal2 = data.getItemVisual(idx, "decal"); - if (decal2) { - var itemStyle = data.ensureUniqueItemVisual(idx, "style"); - itemStyle.decal = createOrUpdatePatternFromDecal(decal2, api); - } - }); - } - var decal = data.getVisual("decal"); - if (decal) { - var style = data.getVisual("style"); - style.decal = createOrUpdatePatternFromDecal(decal, api); - } - }); -} -var lifecycle = new Eventful(); -const lifecycle$1 = lifecycle; -var implsStore = {}; -function registerImpl(name, impl) { - implsStore[name] = impl; -} -function getImpl(name) { - return implsStore[name]; -} -var version = "5.4.2"; -var dependencies = { - zrender: "5.4.3" -}; -var TEST_FRAME_REMAIN_TIME = 1; -var PRIORITY_PROCESSOR_SERIES_FILTER = 800; -var PRIORITY_PROCESSOR_DATASTACK = 900; -var PRIORITY_PROCESSOR_FILTER = 1e3; -var PRIORITY_PROCESSOR_DEFAULT = 2e3; -var PRIORITY_PROCESSOR_STATISTIC = 5e3; -var PRIORITY_VISUAL_LAYOUT = 1e3; -var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100; -var PRIORITY_VISUAL_GLOBAL = 2e3; -var PRIORITY_VISUAL_CHART = 3e3; -var PRIORITY_VISUAL_COMPONENT = 4e3; -var PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500; -var PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600; -var PRIORITY_VISUAL_BRUSH = 5e3; -var PRIORITY_VISUAL_ARIA = 6e3; -var PRIORITY_VISUAL_DECAL = 7e3; -var PRIORITY = { - PROCESSOR: { - FILTER: PRIORITY_PROCESSOR_FILTER, - SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER, - STATISTIC: PRIORITY_PROCESSOR_STATISTIC - }, - VISUAL: { - LAYOUT: PRIORITY_VISUAL_LAYOUT, - PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT, - GLOBAL: PRIORITY_VISUAL_GLOBAL, - CHART: PRIORITY_VISUAL_CHART, - POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT, - COMPONENT: PRIORITY_VISUAL_COMPONENT, - BRUSH: PRIORITY_VISUAL_BRUSH, - CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM, - ARIA: PRIORITY_VISUAL_ARIA, - DECAL: PRIORITY_VISUAL_DECAL - } -}; -var IN_MAIN_PROCESS_KEY = "__flagInMainProcess"; -var PENDING_UPDATE = "__pendingUpdate"; -var STATUS_NEEDS_UPDATE_KEY = "__needsUpdateStatus"; -var ACTION_REG = /^[a-zA-Z0-9_]+$/; -var CONNECT_STATUS_KEY = "__connectUpdateStatus"; -var CONNECT_STATUS_PENDING = 0; -var CONNECT_STATUS_UPDATING = 1; -var CONNECT_STATUS_UPDATED = 2; -function createRegisterEventWithLowercaseECharts(method) { - return function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - if (this.isDisposed()) { - disposedWarning(this.id); - return; - } - return toLowercaseNameAndCallEventful(this, method, args); - }; -} -function createRegisterEventWithLowercaseMessageCenter(method) { - return function() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return toLowercaseNameAndCallEventful(this, method, args); - }; -} -function toLowercaseNameAndCallEventful(host, method, args) { - args[0] = args[0] && args[0].toLowerCase(); - return Eventful.prototype[method].apply(host, args); -} -var MessageCenter = ( - /** @class */ - function(_super) { - __extends(MessageCenter2, _super); - function MessageCenter2() { - return _super !== null && _super.apply(this, arguments) || this; - } - return MessageCenter2; - }(Eventful) -); -var messageCenterProto = MessageCenter.prototype; -messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter("on"); -messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter("off"); -var prepare; -var prepareView; -var updateDirectly; -var updateMethods; -var doConvertPixel; -var updateStreamModes; -var doDispatchAction; -var flushPendingActions; -var triggerUpdatedEvent; -var bindRenderedEvent; -var bindMouseEvent; -var render; -var renderComponents; -var renderSeries; -var createExtensionAPI; -var enableConnect; -var markStatusToUpdate; -var applyChangedStates; -var ECharts = ( - /** @class */ - function(_super) { - __extends(ECharts2, _super); - function ECharts2(dom, theme2, opts) { - var _this = _super.call(this, new ECEventProcessor()) || this; - _this._chartsViews = []; - _this._chartsMap = {}; - _this._componentsViews = []; - _this._componentsMap = {}; - _this._pendingActions = []; - opts = opts || {}; - if (isString(theme2)) { - theme2 = themeStorage[theme2]; - } - _this._dom = dom; - var defaultRenderer = "canvas"; - var defaultCoarsePointer = "auto"; - var defaultUseDirtyRect = false; - var zr = _this._zr = init$1(dom, { - renderer: opts.renderer || defaultRenderer, - devicePixelRatio: opts.devicePixelRatio, - width: opts.width, - height: opts.height, - ssr: opts.ssr, - useDirtyRect: retrieve2(opts.useDirtyRect, defaultUseDirtyRect), - useCoarsePointer: retrieve2(opts.useCoarsePointer, defaultCoarsePointer), - pointerSize: opts.pointerSize - }); - _this._ssr = opts.ssr; - _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17); - theme2 = clone$1(theme2); - theme2 && globalBackwardCompat(theme2, true); - _this._theme = theme2; - _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG); - _this._coordSysMgr = new CoordinateSystem(); - var api = _this._api = createExtensionAPI(_this); - function prioritySortFunc(a, b) { - return a.__prio - b.__prio; - } - sort(visualFuncs, prioritySortFunc); - sort(dataProcessorFuncs, prioritySortFunc); - _this._scheduler = new Scheduler$1(_this, api, dataProcessorFuncs, visualFuncs); - _this._messageCenter = new MessageCenter(); - _this._initEvents(); - _this.resize = bind(_this.resize, _this); - zr.animation.on("frame", _this._onframe, _this); - bindRenderedEvent(zr, _this); - bindMouseEvent(zr, _this); - setAsPrimitive(_this); - return _this; - } - ECharts2.prototype._onframe = function() { - if (this._disposed) { - return; - } - applyChangedStates(this); - var scheduler = this._scheduler; - if (this[PENDING_UPDATE]) { - var silent = this[PENDING_UPDATE].silent; - this[IN_MAIN_PROCESS_KEY] = true; - try { - prepare(this); - updateMethods.update.call(this, null, this[PENDING_UPDATE].updateParams); - } catch (e2) { - this[IN_MAIN_PROCESS_KEY] = false; - this[PENDING_UPDATE] = null; - throw e2; - } - this._zr.flush(); - this[IN_MAIN_PROCESS_KEY] = false; - this[PENDING_UPDATE] = null; - flushPendingActions.call(this, silent); - triggerUpdatedEvent.call(this, silent); - } else if (scheduler.unfinished) { - var remainTime = TEST_FRAME_REMAIN_TIME; - var ecModel = this._model; - var api = this._api; - scheduler.unfinished = false; - do { - var startTime = +/* @__PURE__ */ new Date(); - scheduler.performSeriesTasks(ecModel); - scheduler.performDataProcessorTasks(ecModel); - updateStreamModes(this, ecModel); - scheduler.performVisualTasks(ecModel); - renderSeries(this, this._model, api, "remain", {}); - remainTime -= +/* @__PURE__ */ new Date() - startTime; - } while (remainTime > 0 && scheduler.unfinished); - if (!scheduler.unfinished) { - this._zr.flush(); - } - } - }; - ECharts2.prototype.getDom = function() { - return this._dom; - }; - ECharts2.prototype.getId = function() { - return this.id; - }; - ECharts2.prototype.getZr = function() { - return this._zr; - }; - ECharts2.prototype.isSSR = function() { - return this._ssr; - }; - ECharts2.prototype.setOption = function(option, notMerge, lazyUpdate) { - if (this[IN_MAIN_PROCESS_KEY]) { - return; - } - if (this._disposed) { - disposedWarning(this.id); - return; - } - var silent; - var replaceMerge; - var transitionOpt; - if (isObject$2(notMerge)) { - lazyUpdate = notMerge.lazyUpdate; - silent = notMerge.silent; - replaceMerge = notMerge.replaceMerge; - transitionOpt = notMerge.transition; - notMerge = notMerge.notMerge; - } - this[IN_MAIN_PROCESS_KEY] = true; - if (!this._model || notMerge) { - var optionManager = new OptionManager$1(this._api); - var theme2 = this._theme; - var ecModel = this._model = new GlobalModel$1(); - ecModel.scheduler = this._scheduler; - ecModel.ssr = this._ssr; - ecModel.init(null, null, null, theme2, this._locale, optionManager); - } - this._model.setOption(option, { - replaceMerge - }, optionPreprocessorFuncs); - var updateParams = { - seriesTransition: transitionOpt, - optionChanged: true - }; - if (lazyUpdate) { - this[PENDING_UPDATE] = { - silent, - updateParams - }; - this[IN_MAIN_PROCESS_KEY] = false; - this.getZr().wakeUp(); - } else { - try { - prepare(this); - updateMethods.update.call(this, null, updateParams); - } catch (e2) { - this[PENDING_UPDATE] = null; - this[IN_MAIN_PROCESS_KEY] = false; - throw e2; - } - if (!this._ssr) { - this._zr.flush(); - } - this[PENDING_UPDATE] = null; - this[IN_MAIN_PROCESS_KEY] = false; - flushPendingActions.call(this, silent); - triggerUpdatedEvent.call(this, silent); - } - }; - ECharts2.prototype.setTheme = function() { - }; - ECharts2.prototype.getModel = function() { - return this._model; - }; - ECharts2.prototype.getOption = function() { - return this._model && this._model.getOption(); - }; - ECharts2.prototype.getWidth = function() { - return this._zr.getWidth(); - }; - ECharts2.prototype.getHeight = function() { - return this._zr.getHeight(); - }; - ECharts2.prototype.getDevicePixelRatio = function() { - return this._zr.painter.dpr || env.hasGlobalWindow && window.devicePixelRatio || 1; - }; - ECharts2.prototype.getRenderedCanvas = function(opts) { - return this.renderToCanvas(opts); - }; - ECharts2.prototype.renderToCanvas = function(opts) { - opts = opts || {}; - var painter = this._zr.painter; - return painter.getRenderedCanvas({ - backgroundColor: opts.backgroundColor || this._model.get("backgroundColor"), - pixelRatio: opts.pixelRatio || this.getDevicePixelRatio() - }); - }; - ECharts2.prototype.renderToSVGString = function(opts) { - opts = opts || {}; - var painter = this._zr.painter; - return painter.renderToString({ - useViewBox: opts.useViewBox - }); - }; - ECharts2.prototype.getSvgDataURL = function() { - if (!env.svgSupported) { - return; - } - var zr = this._zr; - var list = zr.storage.getDisplayList(); - each$2(list, function(el) { - el.stopAnimation(null, true); - }); - return zr.painter.toDataURL(); - }; - ECharts2.prototype.getDataURL = function(opts) { - if (this._disposed) { - disposedWarning(this.id); - return; - } - opts = opts || {}; - var excludeComponents = opts.excludeComponents; - var ecModel = this._model; - var excludesComponentViews = []; - var self = this; - each$2(excludeComponents, function(componentType) { - ecModel.eachComponent({ - mainType: componentType - }, function(component) { - var view = self._componentsMap[component.__viewId]; - if (!view.group.ignore) { - excludesComponentViews.push(view); - view.group.ignore = true; - } - }); - }); - var url = this._zr.painter.getType() === "svg" ? this.getSvgDataURL() : this.renderToCanvas(opts).toDataURL("image/" + (opts && opts.type || "png")); - each$2(excludesComponentViews, function(view) { - view.group.ignore = false; - }); - return url; - }; - ECharts2.prototype.getConnectedDataURL = function(opts) { - if (this._disposed) { - disposedWarning(this.id); - return; - } - var isSvg = opts.type === "svg"; - var groupId = this.group; - var mathMin2 = Math.min; - var mathMax2 = Math.max; - var MAX_NUMBER = Infinity; - if (connectedGroups[groupId]) { - var left_1 = MAX_NUMBER; - var top_1 = MAX_NUMBER; - var right_1 = -MAX_NUMBER; - var bottom_1 = -MAX_NUMBER; - var canvasList_1 = []; - var dpr_1 = opts && opts.pixelRatio || this.getDevicePixelRatio(); - each$2(instances, function(chart, id) { - if (chart.group === groupId) { - var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.renderToCanvas(clone$1(opts)); - var boundingRect = chart.getDom().getBoundingClientRect(); - left_1 = mathMin2(boundingRect.left, left_1); - top_1 = mathMin2(boundingRect.top, top_1); - right_1 = mathMax2(boundingRect.right, right_1); - bottom_1 = mathMax2(boundingRect.bottom, bottom_1); - canvasList_1.push({ - dom: canvas, - left: boundingRect.left, - top: boundingRect.top - }); - } - }); - left_1 *= dpr_1; - top_1 *= dpr_1; - right_1 *= dpr_1; - bottom_1 *= dpr_1; - var width = right_1 - left_1; - var height = bottom_1 - top_1; - var targetCanvas = platformApi.createCanvas(); - var zr_1 = init$1(targetCanvas, { - renderer: isSvg ? "svg" : "canvas" - }); - zr_1.resize({ - width, - height - }); - if (isSvg) { - var content_1 = ""; - each$2(canvasList_1, function(item) { - var x = item.left - left_1; - var y = item.top - top_1; - content_1 += '' + item.dom + ""; - }); - zr_1.painter.getSvgRoot().innerHTML = content_1; - if (opts.connectedBackgroundColor) { - zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor); - } - zr_1.refreshImmediately(); - return zr_1.painter.toDataURL(); - } else { - if (opts.connectedBackgroundColor) { - zr_1.add(new Rect({ - shape: { - x: 0, - y: 0, - width, - height - }, - style: { - fill: opts.connectedBackgroundColor - } - })); - } - each$2(canvasList_1, function(item) { - var img = new ZRImage({ - style: { - x: item.left * dpr_1 - left_1, - y: item.top * dpr_1 - top_1, - image: item.dom - } - }); - zr_1.add(img); - }); - zr_1.refreshImmediately(); - return targetCanvas.toDataURL("image/" + (opts && opts.type || "png")); - } - } else { - return this.getDataURL(opts); - } - }; - ECharts2.prototype.convertToPixel = function(finder, value) { - return doConvertPixel(this, "convertToPixel", finder, value); - }; - ECharts2.prototype.convertFromPixel = function(finder, value) { - return doConvertPixel(this, "convertFromPixel", finder, value); - }; - ECharts2.prototype.containPixel = function(finder, value) { - if (this._disposed) { - disposedWarning(this.id); - return; - } - var ecModel = this._model; - var result; - var findResult = parseFinder(ecModel, finder); - each$2(findResult, function(models, key) { - key.indexOf("Models") >= 0 && each$2(models, function(model) { - var coordSys = model.coordinateSystem; - if (coordSys && coordSys.containPoint) { - result = result || !!coordSys.containPoint(value); - } else if (key === "seriesModels") { - var view = this._chartsMap[model.__viewId]; - if (view && view.containPoint) { - result = result || view.containPoint(value, model); - } - } else - ; - }, this); - }, this); - return !!result; - }; - ECharts2.prototype.getVisual = function(finder, visualType) { - var ecModel = this._model; - var parsedFinder = parseFinder(ecModel, finder, { - defaultMainType: "series" - }); - var seriesModel = parsedFinder.seriesModel; - var data = seriesModel.getData(); - var dataIndexInside = parsedFinder.hasOwnProperty("dataIndexInside") ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty("dataIndex") ? data.indexOfRawIndex(parsedFinder.dataIndex) : null; - return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType); - }; - ECharts2.prototype.getViewOfComponentModel = function(componentModel) { - return this._componentsMap[componentModel.__viewId]; - }; - ECharts2.prototype.getViewOfSeriesModel = function(seriesModel) { - return this._chartsMap[seriesModel.__viewId]; - }; - ECharts2.prototype._initEvents = function() { - var _this = this; - each$2(MOUSE_EVENT_NAMES, function(eveName) { - var handler = function(e2) { - var ecModel = _this.getModel(); - var el = e2.target; - var params; - var isGlobalOut = eveName === "globalout"; - if (isGlobalOut) { - params = {}; - } else { - el && findEventDispatcher(el, function(parent) { - var ecData = getECData(parent); - if (ecData && ecData.dataIndex != null) { - var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex); - params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {}; - return true; - } else if (ecData.eventData) { - params = extend({}, ecData.eventData); - return true; - } - }, true); - } - if (params) { - var componentType = params.componentType; - var componentIndex = params.componentIndex; - if (componentType === "markLine" || componentType === "markPoint" || componentType === "markArea") { - componentType = "series"; - componentIndex = params.seriesIndex; - } - var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex); - var view = model && _this[model.mainType === "series" ? "_chartsMap" : "_componentsMap"][model.__viewId]; - params.event = e2; - params.type = eveName; - _this._$eventProcessor.eventInfo = { - targetEl: el, - packedEvent: params, - model, - view - }; - _this.trigger(eveName, params); - } - }; - handler.zrEventfulCallAtLast = true; - _this._zr.on(eveName, handler, _this); - }); - each$2(eventActionMap, function(actionType, eventType) { - _this._messageCenter.on(eventType, function(event) { - this.trigger(eventType, event); - }, _this); - }); - each$2(["selectchanged"], function(eventType) { - _this._messageCenter.on(eventType, function(event) { - this.trigger(eventType, event); - }, _this); - }); - handleLegacySelectEvents(this._messageCenter, this, this._api); - }; - ECharts2.prototype.isDisposed = function() { - return this._disposed; - }; - ECharts2.prototype.clear = function() { - if (this._disposed) { - disposedWarning(this.id); - return; - } - this.setOption({ - series: [] - }, true); - }; - ECharts2.prototype.dispose = function() { - if (this._disposed) { - disposedWarning(this.id); - return; - } - this._disposed = true; - var dom = this.getDom(); - if (dom) { - setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, ""); - } - var chart = this; - var api = chart._api; - var ecModel = chart._model; - each$2(chart._componentsViews, function(component) { - component.dispose(ecModel, api); - }); - each$2(chart._chartsViews, function(chart2) { - chart2.dispose(ecModel, api); - }); - chart._zr.dispose(); - chart._dom = chart._model = chart._chartsMap = chart._componentsMap = chart._chartsViews = chart._componentsViews = chart._scheduler = chart._api = chart._zr = chart._throttledZrFlush = chart._theme = chart._coordSysMgr = chart._messageCenter = null; - delete instances[chart.id]; - }; - ECharts2.prototype.resize = function(opts) { - if (this[IN_MAIN_PROCESS_KEY]) { - return; - } - if (this._disposed) { - disposedWarning(this.id); - return; - } - this._zr.resize(opts); - var ecModel = this._model; - this._loadingFX && this._loadingFX.resize(); - if (!ecModel) { - return; - } - var needPrepare = ecModel.resetOption("media"); - var silent = opts && opts.silent; - if (this[PENDING_UPDATE]) { - if (silent == null) { - silent = this[PENDING_UPDATE].silent; - } - needPrepare = true; - this[PENDING_UPDATE] = null; - } - this[IN_MAIN_PROCESS_KEY] = true; - try { - needPrepare && prepare(this); - updateMethods.update.call(this, { - type: "resize", - animation: extend({ - // Disable animation - duration: 0 - }, opts && opts.animation) - }); - } catch (e2) { - this[IN_MAIN_PROCESS_KEY] = false; - throw e2; - } - this[IN_MAIN_PROCESS_KEY] = false; - flushPendingActions.call(this, silent); - triggerUpdatedEvent.call(this, silent); - }; - ECharts2.prototype.showLoading = function(name, cfg) { - if (this._disposed) { - disposedWarning(this.id); - return; - } - if (isObject$2(name)) { - cfg = name; - name = ""; - } - name = name || "default"; - this.hideLoading(); - if (!loadingEffects[name]) { - return; - } - var el = loadingEffects[name](this._api, cfg); - var zr = this._zr; - this._loadingFX = el; - zr.add(el); - }; - ECharts2.prototype.hideLoading = function() { - if (this._disposed) { - disposedWarning(this.id); - return; - } - this._loadingFX && this._zr.remove(this._loadingFX); - this._loadingFX = null; - }; - ECharts2.prototype.makeActionFromEvent = function(eventObj) { - var payload = extend({}, eventObj); - payload.type = eventActionMap[eventObj.type]; - return payload; - }; - ECharts2.prototype.dispatchAction = function(payload, opt) { - if (this._disposed) { - disposedWarning(this.id); - return; - } - if (!isObject$2(opt)) { - opt = { - silent: !!opt - }; - } - if (!actions[payload.type]) { - return; - } - if (!this._model) { - return; - } - if (this[IN_MAIN_PROCESS_KEY]) { - this._pendingActions.push(payload); - return; - } - var silent = opt.silent; - doDispatchAction.call(this, payload, silent); - var flush = opt.flush; - if (flush) { - this._zr.flush(); - } else if (flush !== false && env.browser.weChat) { - this._throttledZrFlush(); - } - flushPendingActions.call(this, silent); - triggerUpdatedEvent.call(this, silent); - }; - ECharts2.prototype.updateLabelLayout = function() { - lifecycle$1.trigger("series:layoutlabels", this._model, this._api, { - // Not adding series labels. - // TODO - updatedSeries: [] - }); - }; - ECharts2.prototype.appendData = function(params) { - if (this._disposed) { - disposedWarning(this.id); - return; - } - var seriesIndex = params.seriesIndex; - var ecModel = this.getModel(); - var seriesModel = ecModel.getSeriesByIndex(seriesIndex); - seriesModel.appendData(params); - this._scheduler.unfinished = true; - this.getZr().wakeUp(); - }; - ECharts2.internalField = function() { - prepare = function(ecIns) { - var scheduler = ecIns._scheduler; - scheduler.restorePipelines(ecIns._model); - scheduler.prepareStageTasks(); - prepareView(ecIns, true); - prepareView(ecIns, false); - scheduler.plan(); - }; - prepareView = function(ecIns, isComponent) { - var ecModel = ecIns._model; - var scheduler = ecIns._scheduler; - var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews; - var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap; - var zr = ecIns._zr; - var api = ecIns._api; - for (var i = 0; i < viewList.length; i++) { - viewList[i].__alive = false; - } - isComponent ? ecModel.eachComponent(function(componentType, model) { - componentType !== "series" && doPrepare(model); - }) : ecModel.eachSeries(doPrepare); - function doPrepare(model) { - var requireNewView = model.__requireNewView; - model.__requireNewView = false; - var viewId = "_ec_" + model.id + "_" + model.type; - var view2 = !requireNewView && viewMap[viewId]; - if (!view2) { - var classType = parseClassType(model.type); - var Clazz = isComponent ? ComponentView$1.getClass(classType.main, classType.sub) : ( - // FIXME:TS - // (ChartView as ChartViewConstructor).getClass('series', classType.sub) - // For backward compat, still support a chart type declared as only subType - // like "liquidfill", but recommend "series.liquidfill" - // But need a base class to make a type series. - ChartView$1.getClass(classType.sub) - ); - view2 = new Clazz(); - view2.init(ecModel, api); - viewMap[viewId] = view2; - viewList.push(view2); - zr.add(view2.group); - } - model.__viewId = view2.__id = viewId; - view2.__alive = true; - view2.__model = model; - view2.group.__ecComponentInfo = { - mainType: model.mainType, - index: model.componentIndex - }; - !isComponent && scheduler.prepareView(view2, model, ecModel, api); - } - for (var i = 0; i < viewList.length; ) { - var view = viewList[i]; - if (!view.__alive) { - !isComponent && view.renderTask.dispose(); - zr.remove(view.group); - view.dispose(ecModel, api); - viewList.splice(i, 1); - if (viewMap[view.__id] === view) { - delete viewMap[view.__id]; - } - view.__id = view.group.__ecComponentInfo = null; - } else { - i++; - } - } - }; - updateDirectly = function(ecIns, method, payload, mainType, subType) { - var ecModel = ecIns._model; - ecModel.setUpdatePayload(payload); - if (!mainType) { - each$2([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView); - return; - } - var query = {}; - query[mainType + "Id"] = payload[mainType + "Id"]; - query[mainType + "Index"] = payload[mainType + "Index"]; - query[mainType + "Name"] = payload[mainType + "Name"]; - var condition = { - mainType, - query - }; - subType && (condition.subType = subType); - var excludeSeriesId = payload.excludeSeriesId; - var excludeSeriesIdMap; - if (excludeSeriesId != null) { - excludeSeriesIdMap = createHashMap(); - each$2(normalizeToArray(excludeSeriesId), function(id) { - var modelId = convertOptionIdName(id, null); - if (modelId != null) { - excludeSeriesIdMap.set(modelId, true); - } - }); - } - ecModel && ecModel.eachComponent(condition, function(model) { - var isExcluded = excludeSeriesIdMap && excludeSeriesIdMap.get(model.id) != null; - if (isExcluded) { - return; - } - if (isHighDownPayload(payload)) { - if (model instanceof SeriesModel$1) { - if (payload.type === HIGHLIGHT_ACTION_TYPE && !payload.notBlur && !model.get(["emphasis", "disabled"])) { - blurSeriesFromHighlightPayload(model, payload, ecIns._api); - } - } else { - var _a2 = findComponentHighDownDispatchers(model.mainType, model.componentIndex, payload.name, ecIns._api), focusSelf = _a2.focusSelf, dispatchers = _a2.dispatchers; - if (payload.type === HIGHLIGHT_ACTION_TYPE && focusSelf && !payload.notBlur) { - blurComponent(model.mainType, model.componentIndex, ecIns._api); - } - if (dispatchers) { - each$2(dispatchers, function(dispatcher) { - payload.type === HIGHLIGHT_ACTION_TYPE ? enterEmphasis(dispatcher) : leaveEmphasis(dispatcher); - }); - } - } - } else if (isSelectChangePayload(payload)) { - if (model instanceof SeriesModel$1) { - toggleSelectionFromPayload(model, payload, ecIns._api); - updateSeriesElementSelection(model); - markStatusToUpdate(ecIns); - } - } - }, ecIns); - ecModel && ecModel.eachComponent(condition, function(model) { - var isExcluded = excludeSeriesIdMap && excludeSeriesIdMap.get(model.id) != null; - if (isExcluded) { - return; - } - callView(ecIns[mainType === "series" ? "_chartsMap" : "_componentsMap"][model.__viewId]); - }, ecIns); - function callView(view) { - view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload); - } - }; - updateMethods = { - prepareAndUpdate: function(payload) { - prepare(this); - updateMethods.update.call(this, payload, { - // Needs to mark option changed if newOption is given. - // It's from MagicType. - // TODO If use a separate flag optionChanged in payload? - optionChanged: payload.newOption != null - }); - }, - update: function(payload, updateParams) { - var ecModel = this._model; - var api = this._api; - var zr = this._zr; - var coordSysMgr = this._coordSysMgr; - var scheduler = this._scheduler; - if (!ecModel) { - return; - } - ecModel.setUpdatePayload(payload); - scheduler.restoreData(ecModel, payload); - scheduler.performSeriesTasks(ecModel); - coordSysMgr.create(ecModel, api); - scheduler.performDataProcessorTasks(ecModel, payload); - updateStreamModes(this, ecModel); - coordSysMgr.update(ecModel, api); - clearColorPalette(ecModel); - scheduler.performVisualTasks(ecModel, payload); - render(this, ecModel, api, payload, updateParams); - var backgroundColor2 = ecModel.get("backgroundColor") || "transparent"; - var darkMode = ecModel.get("darkMode"); - zr.setBackgroundColor(backgroundColor2); - if (darkMode != null && darkMode !== "auto") { - zr.setDarkMode(darkMode); - } - lifecycle$1.trigger("afterupdate", ecModel, api); - }, - updateTransform: function(payload) { - var _this = this; - var ecModel = this._model; - var api = this._api; - if (!ecModel) { - return; - } - ecModel.setUpdatePayload(payload); - var componentDirtyList = []; - ecModel.eachComponent(function(componentType, componentModel) { - if (componentType === "series") { - return; - } - var componentView = _this.getViewOfComponentModel(componentModel); - if (componentView && componentView.__alive) { - if (componentView.updateTransform) { - var result = componentView.updateTransform(componentModel, ecModel, api, payload); - result && result.update && componentDirtyList.push(componentView); - } else { - componentDirtyList.push(componentView); - } - } - }); - var seriesDirtyMap = createHashMap(); - ecModel.eachSeries(function(seriesModel) { - var chartView = _this._chartsMap[seriesModel.__viewId]; - if (chartView.updateTransform) { - var result = chartView.updateTransform(seriesModel, ecModel, api, payload); - result && result.update && seriesDirtyMap.set(seriesModel.uid, 1); - } else { - seriesDirtyMap.set(seriesModel.uid, 1); - } - }); - clearColorPalette(ecModel); - this._scheduler.performVisualTasks(ecModel, payload, { - setDirty: true, - dirtyMap: seriesDirtyMap - }); - renderSeries(this, ecModel, api, payload, {}, seriesDirtyMap); - lifecycle$1.trigger("afterupdate", ecModel, api); - }, - updateView: function(payload) { - var ecModel = this._model; - if (!ecModel) { - return; - } - ecModel.setUpdatePayload(payload); - ChartView$1.markUpdateMethod(payload, "updateView"); - clearColorPalette(ecModel); - this._scheduler.performVisualTasks(ecModel, payload, { - setDirty: true - }); - render(this, ecModel, this._api, payload, {}); - lifecycle$1.trigger("afterupdate", ecModel, this._api); - }, - updateVisual: function(payload) { - var _this = this; - var ecModel = this._model; - if (!ecModel) { - return; - } - ecModel.setUpdatePayload(payload); - ecModel.eachSeries(function(seriesModel) { - seriesModel.getData().clearAllVisual(); - }); - ChartView$1.markUpdateMethod(payload, "updateVisual"); - clearColorPalette(ecModel); - this._scheduler.performVisualTasks(ecModel, payload, { - visualType: "visual", - setDirty: true - }); - ecModel.eachComponent(function(componentType, componentModel) { - if (componentType !== "series") { - var componentView = _this.getViewOfComponentModel(componentModel); - componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload); - } - }); - ecModel.eachSeries(function(seriesModel) { - var chartView = _this._chartsMap[seriesModel.__viewId]; - chartView.updateVisual(seriesModel, ecModel, _this._api, payload); - }); - lifecycle$1.trigger("afterupdate", ecModel, this._api); - }, - updateLayout: function(payload) { - updateMethods.update.call(this, payload); - } - }; - doConvertPixel = function(ecIns, methodName, finder, value) { - if (ecIns._disposed) { - disposedWarning(ecIns.id); - return; - } - var ecModel = ecIns._model; - var coordSysList = ecIns._coordSysMgr.getCoordinateSystems(); - var result; - var parsedFinder = parseFinder(ecModel, finder); - for (var i = 0; i < coordSysList.length; i++) { - var coordSys = coordSysList[i]; - if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) { - return result; - } - } - }; - updateStreamModes = function(ecIns, ecModel) { - var chartsMap = ecIns._chartsMap; - var scheduler = ecIns._scheduler; - ecModel.eachSeries(function(seriesModel) { - scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]); - }); - }; - doDispatchAction = function(payload, silent) { - var _this = this; - var ecModel = this.getModel(); - var payloadType = payload.type; - var escapeConnect = payload.escapeConnect; - var actionWrap = actions[payloadType]; - var actionInfo = actionWrap.actionInfo; - var cptTypeTmp = (actionInfo.update || "update").split(":"); - var updateMethod = cptTypeTmp.pop(); - var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]); - this[IN_MAIN_PROCESS_KEY] = true; - var payloads = [payload]; - var batched = false; - if (payload.batch) { - batched = true; - payloads = map$1(payload.batch, function(item) { - item = defaults(extend({}, item), payload); - item.batch = null; - return item; - }); - } - var eventObjBatch = []; - var eventObj; - var isSelectChange = isSelectChangePayload(payload); - var isHighDown = isHighDownPayload(payload); - if (isHighDown) { - allLeaveBlur(this._api); - } - each$2(payloads, function(batchItem) { - eventObj = actionWrap.action(batchItem, _this._model, _this._api); - eventObj = eventObj || extend({}, batchItem); - eventObj.type = actionInfo.event || eventObj.type; - eventObjBatch.push(eventObj); - if (isHighDown) { - var _a2 = preParseFinder(payload), queryOptionMap = _a2.queryOptionMap, mainTypeSpecified = _a2.mainTypeSpecified; - var componentMainType = mainTypeSpecified ? queryOptionMap.keys()[0] : "series"; - updateDirectly(_this, updateMethod, batchItem, componentMainType); - markStatusToUpdate(_this); - } else if (isSelectChange) { - updateDirectly(_this, updateMethod, batchItem, "series"); - markStatusToUpdate(_this); - } else if (cptType) { - updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub); - } - }); - if (updateMethod !== "none" && !isHighDown && !isSelectChange && !cptType) { - try { - if (this[PENDING_UPDATE]) { - prepare(this); - updateMethods.update.call(this, payload); - this[PENDING_UPDATE] = null; - } else { - updateMethods[updateMethod].call(this, payload); - } - } catch (e2) { - this[IN_MAIN_PROCESS_KEY] = false; - throw e2; - } - } - if (batched) { - eventObj = { - type: actionInfo.event || payloadType, - escapeConnect, - batch: eventObjBatch - }; - } else { - eventObj = eventObjBatch[0]; - } - this[IN_MAIN_PROCESS_KEY] = false; - if (!silent) { - var messageCenter = this._messageCenter; - messageCenter.trigger(eventObj.type, eventObj); - if (isSelectChange) { - var newObj = { - type: "selectchanged", - escapeConnect, - selected: getAllSelectedIndices(ecModel), - isFromClick: payload.isFromClick || false, - fromAction: payload.type, - fromActionPayload: payload - }; - messageCenter.trigger(newObj.type, newObj); - } - } - }; - flushPendingActions = function(silent) { - var pendingActions = this._pendingActions; - while (pendingActions.length) { - var payload = pendingActions.shift(); - doDispatchAction.call(this, payload, silent); - } - }; - triggerUpdatedEvent = function(silent) { - !silent && this.trigger("updated"); - }; - bindRenderedEvent = function(zr, ecIns) { - zr.on("rendered", function(params) { - ecIns.trigger("rendered", params); - if ( - // Although zr is dirty if initial animation is not finished - // and this checking is called on frame, we also check - // animation finished for robustness. - zr.animation.isFinished() && !ecIns[PENDING_UPDATE] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length - ) { - ecIns.trigger("finished"); - } - }); - }; - bindMouseEvent = function(zr, ecIns) { - zr.on("mouseover", function(e2) { - var el = e2.target; - var dispatcher = findEventDispatcher(el, isHighDownDispatcher); - if (dispatcher) { - handleGlobalMouseOverForHighDown(dispatcher, e2, ecIns._api); - markStatusToUpdate(ecIns); - } - }).on("mouseout", function(e2) { - var el = e2.target; - var dispatcher = findEventDispatcher(el, isHighDownDispatcher); - if (dispatcher) { - handleGlobalMouseOutForHighDown(dispatcher, e2, ecIns._api); - markStatusToUpdate(ecIns); - } - }).on("click", function(e2) { - var el = e2.target; - var dispatcher = findEventDispatcher(el, function(target) { - return getECData(target).dataIndex != null; - }, true); - if (dispatcher) { - var actionType = dispatcher.selected ? "unselect" : "select"; - var ecData = getECData(dispatcher); - ecIns._api.dispatchAction({ - type: actionType, - dataType: ecData.dataType, - dataIndexInside: ecData.dataIndex, - seriesIndex: ecData.seriesIndex, - isFromClick: true - }); - } - }); - }; - function clearColorPalette(ecModel) { - ecModel.clearColorPalette(); - ecModel.eachSeries(function(seriesModel) { - seriesModel.clearColorPalette(); - }); - } - function allocateZlevels(ecModel) { - var componentZLevels = []; - var seriesZLevels = []; - var hasSeperateZLevel = false; - ecModel.eachComponent(function(componentType, componentModel) { - var zlevel = componentModel.get("zlevel") || 0; - var z = componentModel.get("z") || 0; - var zlevelKey = componentModel.getZLevelKey(); - hasSeperateZLevel = hasSeperateZLevel || !!zlevelKey; - (componentType === "series" ? seriesZLevels : componentZLevels).push({ - zlevel, - z, - idx: componentModel.componentIndex, - type: componentType, - key: zlevelKey - }); - }); - if (hasSeperateZLevel) { - var zLevels = componentZLevels.concat(seriesZLevels); - var lastSeriesZLevel_1; - var lastSeriesKey_1; - sort(zLevels, function(a, b) { - if (a.zlevel === b.zlevel) { - return a.z - b.z; - } - return a.zlevel - b.zlevel; - }); - each$2(zLevels, function(item) { - var componentModel = ecModel.getComponent(item.type, item.idx); - var zlevel = item.zlevel; - var key = item.key; - if (lastSeriesZLevel_1 != null) { - zlevel = Math.max(lastSeriesZLevel_1, zlevel); - } - if (key) { - if (zlevel === lastSeriesZLevel_1 && key !== lastSeriesKey_1) { - zlevel++; - } - lastSeriesKey_1 = key; - } else if (lastSeriesKey_1) { - if (zlevel === lastSeriesZLevel_1) { - zlevel++; - } - lastSeriesKey_1 = ""; - } - lastSeriesZLevel_1 = zlevel; - componentModel.setZLevel(zlevel); - }); - } - } - render = function(ecIns, ecModel, api, payload, updateParams) { - allocateZlevels(ecModel); - renderComponents(ecIns, ecModel, api, payload, updateParams); - each$2(ecIns._chartsViews, function(chart) { - chart.__alive = false; - }); - renderSeries(ecIns, ecModel, api, payload, updateParams); - each$2(ecIns._chartsViews, function(chart) { - if (!chart.__alive) { - chart.remove(ecModel, api); - } - }); - }; - renderComponents = function(ecIns, ecModel, api, payload, updateParams, dirtyList) { - each$2(dirtyList || ecIns._componentsViews, function(componentView) { - var componentModel = componentView.__model; - clearStates(componentModel, componentView); - componentView.render(componentModel, ecModel, api, payload); - updateZ(componentModel, componentView); - updateStates(componentModel, componentView); - }); - }; - renderSeries = function(ecIns, ecModel, api, payload, updateParams, dirtyMap) { - var scheduler = ecIns._scheduler; - updateParams = extend(updateParams || {}, { - updatedSeries: ecModel.getSeries() - }); - lifecycle$1.trigger("series:beforeupdate", ecModel, api, updateParams); - var unfinished = false; - ecModel.eachSeries(function(seriesModel) { - var chartView = ecIns._chartsMap[seriesModel.__viewId]; - chartView.__alive = true; - var renderTask = chartView.renderTask; - scheduler.updatePayload(renderTask, payload); - clearStates(seriesModel, chartView); - if (dirtyMap && dirtyMap.get(seriesModel.uid)) { - renderTask.dirty(); - } - if (renderTask.perform(scheduler.getPerformArgs(renderTask))) { - unfinished = true; - } - chartView.group.silent = !!seriesModel.get("silent"); - updateBlend(seriesModel, chartView); - updateSeriesElementSelection(seriesModel); - }); - scheduler.unfinished = unfinished || scheduler.unfinished; - lifecycle$1.trigger("series:layoutlabels", ecModel, api, updateParams); - lifecycle$1.trigger("series:transition", ecModel, api, updateParams); - ecModel.eachSeries(function(seriesModel) { - var chartView = ecIns._chartsMap[seriesModel.__viewId]; - updateZ(seriesModel, chartView); - updateStates(seriesModel, chartView); - }); - updateHoverLayerStatus(ecIns, ecModel); - lifecycle$1.trigger("series:afterupdate", ecModel, api, updateParams); - }; - markStatusToUpdate = function(ecIns) { - ecIns[STATUS_NEEDS_UPDATE_KEY] = true; - ecIns.getZr().wakeUp(); - }; - applyChangedStates = function(ecIns) { - if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) { - return; - } - ecIns.getZr().storage.traverse(function(el) { - if (isElementRemoved(el)) { - return; - } - applyElementStates(el); - }); - ecIns[STATUS_NEEDS_UPDATE_KEY] = false; - }; - function applyElementStates(el) { - var newStates = []; - var oldStates = el.currentStates; - for (var i = 0; i < oldStates.length; i++) { - var stateName = oldStates[i]; - if (!(stateName === "emphasis" || stateName === "blur" || stateName === "select")) { - newStates.push(stateName); - } - } - if (el.selected && el.states.select) { - newStates.push("select"); - } - if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) { - newStates.push("emphasis"); - } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) { - newStates.push("blur"); - } - el.useStates(newStates); - } - function updateHoverLayerStatus(ecIns, ecModel) { - var zr = ecIns._zr; - var storage = zr.storage; - var elCount = 0; - storage.traverse(function(el) { - if (!el.isGroup) { - elCount++; - } - }); - if (elCount > ecModel.get("hoverLayerThreshold") && !env.node && !env.worker) { - ecModel.eachSeries(function(seriesModel) { - if (seriesModel.preventUsingHoverLayer) { - return; - } - var chartView = ecIns._chartsMap[seriesModel.__viewId]; - if (chartView.__alive) { - chartView.eachRendered(function(el) { - if (el.states.emphasis) { - el.states.emphasis.hoverLayer = true; - } - }); - } - }); - } - } - function updateBlend(seriesModel, chartView) { - var blendMode = seriesModel.get("blendMode") || null; - chartView.eachRendered(function(el) { - if (!el.isGroup) { - el.style.blend = blendMode; - } - }); - } - function updateZ(model, view) { - if (model.preventAutoZ) { - return; - } - var z = model.get("z") || 0; - var zlevel = model.get("zlevel") || 0; - view.eachRendered(function(el) { - doUpdateZ(el, z, zlevel, -Infinity); - return true; - }); - } - function doUpdateZ(el, z, zlevel, maxZ2) { - var label = el.getTextContent(); - var labelLine = el.getTextGuideLine(); - var isGroup = el.isGroup; - if (isGroup) { - var children = el.childrenRef(); - for (var i = 0; i < children.length; i++) { - maxZ2 = Math.max(doUpdateZ(children[i], z, zlevel, maxZ2), maxZ2); - } - } else { - el.z = z; - el.zlevel = zlevel; - maxZ2 = Math.max(el.z2, maxZ2); - } - if (label) { - label.z = z; - label.zlevel = zlevel; - isFinite(maxZ2) && (label.z2 = maxZ2 + 2); - } - if (labelLine) { - var textGuideLineConfig = el.textGuideLineConfig; - labelLine.z = z; - labelLine.zlevel = zlevel; - isFinite(maxZ2) && (labelLine.z2 = maxZ2 + (textGuideLineConfig && textGuideLineConfig.showAbove ? 1 : -1)); - } - return maxZ2; - } - function clearStates(model, view) { - view.eachRendered(function(el) { - if (isElementRemoved(el)) { - return; - } - var textContent = el.getTextContent(); - var textGuide = el.getTextGuideLine(); - if (el.stateTransition) { - el.stateTransition = null; - } - if (textContent && textContent.stateTransition) { - textContent.stateTransition = null; - } - if (textGuide && textGuide.stateTransition) { - textGuide.stateTransition = null; - } - if (el.hasState()) { - el.prevStates = el.currentStates; - el.clearStates(); - } else if (el.prevStates) { - el.prevStates = null; - } - }); - } - function updateStates(model, view) { - var stateAnimationModel = model.getModel("stateAnimation"); - var enableAnimation = model.isAnimationEnabled(); - var duration = stateAnimationModel.get("duration"); - var stateTransition = duration > 0 ? { - duration, - delay: stateAnimationModel.get("delay"), - easing: stateAnimationModel.get("easing") - // additive: stateAnimationModel.get('additive') - } : null; - view.eachRendered(function(el) { - if (el.states && el.states.emphasis) { - if (isElementRemoved(el)) { - return; - } - if (el instanceof Path) { - savePathStates(el); - } - if (el.__dirty) { - var prevStates = el.prevStates; - if (prevStates) { - el.useStates(prevStates); - } - } - if (enableAnimation) { - el.stateTransition = stateTransition; - var textContent = el.getTextContent(); - var textGuide = el.getTextGuideLine(); - if (textContent) { - textContent.stateTransition = stateTransition; - } - if (textGuide) { - textGuide.stateTransition = stateTransition; - } - } - if (el.__dirty) { - applyElementStates(el); - } - } - }); - } - createExtensionAPI = function(ecIns) { - return new /** @class */ - (function(_super2) { - __extends(class_1, _super2); - function class_1() { - return _super2 !== null && _super2.apply(this, arguments) || this; - } - class_1.prototype.getCoordinateSystems = function() { - return ecIns._coordSysMgr.getCoordinateSystems(); - }; - class_1.prototype.getComponentByElement = function(el) { - while (el) { - var modelInfo = el.__ecComponentInfo; - if (modelInfo != null) { - return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index); - } - el = el.parent; - } - }; - class_1.prototype.enterEmphasis = function(el, highlightDigit) { - enterEmphasis(el, highlightDigit); - markStatusToUpdate(ecIns); - }; - class_1.prototype.leaveEmphasis = function(el, highlightDigit) { - leaveEmphasis(el, highlightDigit); - markStatusToUpdate(ecIns); - }; - class_1.prototype.enterBlur = function(el) { - enterBlur(el); - markStatusToUpdate(ecIns); - }; - class_1.prototype.leaveBlur = function(el) { - leaveBlur(el); - markStatusToUpdate(ecIns); - }; - class_1.prototype.enterSelect = function(el) { - enterSelect(el); - markStatusToUpdate(ecIns); - }; - class_1.prototype.leaveSelect = function(el) { - leaveSelect(el); - markStatusToUpdate(ecIns); - }; - class_1.prototype.getModel = function() { - return ecIns.getModel(); - }; - class_1.prototype.getViewOfComponentModel = function(componentModel) { - return ecIns.getViewOfComponentModel(componentModel); - }; - class_1.prototype.getViewOfSeriesModel = function(seriesModel) { - return ecIns.getViewOfSeriesModel(seriesModel); - }; - return class_1; - }(ExtensionAPI$1))(ecIns); - }; - enableConnect = function(chart) { - function updateConnectedChartsStatus(charts, status) { - for (var i = 0; i < charts.length; i++) { - var otherChart = charts[i]; - otherChart[CONNECT_STATUS_KEY] = status; - } - } - each$2(eventActionMap, function(actionType, eventType) { - chart._messageCenter.on(eventType, function(event) { - if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) { - if (event && event.escapeConnect) { - return; - } - var action_1 = chart.makeActionFromEvent(event); - var otherCharts_1 = []; - each$2(instances, function(otherChart) { - if (otherChart !== chart && otherChart.group === chart.group) { - otherCharts_1.push(otherChart); - } - }); - updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING); - each$2(otherCharts_1, function(otherChart) { - if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) { - otherChart.dispatchAction(action_1); - } - }); - updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED); - } - }); - }); - }; - }(); - return ECharts2; - }(Eventful) -); -var echartsProto = ECharts.prototype; -echartsProto.on = createRegisterEventWithLowercaseECharts("on"); -echartsProto.off = createRegisterEventWithLowercaseECharts("off"); -echartsProto.one = function(eventName, cb, ctx) { - var self = this; - function wrapped() { - var args2 = []; - for (var _i = 0; _i < arguments.length; _i++) { - args2[_i] = arguments[_i]; - } - cb && cb.apply && cb.apply(this, args2); - self.off(eventName, wrapped); - } - this.on.call(this, eventName, wrapped, ctx); -}; -var MOUSE_EVENT_NAMES = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout", "contextmenu"]; -function disposedWarning(id) { -} -var actions = {}; -var eventActionMap = {}; -var dataProcessorFuncs = []; -var optionPreprocessorFuncs = []; -var visualFuncs = []; -var themeStorage = {}; -var loadingEffects = {}; -var instances = {}; -var connectedGroups = {}; -var idBase = +/* @__PURE__ */ new Date() - 0; -var groupIdBase = +/* @__PURE__ */ new Date() - 0; -var DOM_ATTRIBUTE_KEY = "_echarts_instance_"; -function init(dom, theme2, opts) { - var isClient = !(opts && opts.ssr); - if (isClient) { - var existInstance = getInstanceByDom(dom); - if (existInstance) { - return existInstance; - } - } - var chart = new ECharts(dom, theme2, opts); - chart.id = "ec_" + idBase++; - instances[chart.id] = chart; - isClient && setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id); - enableConnect(chart); - lifecycle$1.trigger("afterinit", chart); - return chart; -} -function connect(groupId) { - if (isArray(groupId)) { - var charts = groupId; - groupId = null; - each$2(charts, function(chart) { - if (chart.group != null) { - groupId = chart.group; - } - }); - groupId = groupId || "g_" + groupIdBase++; - each$2(charts, function(chart) { - chart.group = groupId; - }); - } - connectedGroups[groupId] = true; - return groupId; -} -function disConnect(groupId) { - connectedGroups[groupId] = false; -} -var disconnect = disConnect; -function dispose(chart) { - if (isString(chart)) { - chart = instances[chart]; - } else if (!(chart instanceof ECharts)) { - chart = getInstanceByDom(chart); - } - if (chart instanceof ECharts && !chart.isDisposed()) { - chart.dispose(); - } -} -function getInstanceByDom(dom) { - return instances[getAttribute(dom, DOM_ATTRIBUTE_KEY)]; -} -function getInstanceById(key) { - return instances[key]; -} -function registerTheme(name, theme2) { - themeStorage[name] = theme2; -} -function registerPreprocessor(preprocessorFunc) { - if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) { - optionPreprocessorFuncs.push(preprocessorFunc); - } -} -function registerProcessor(priority, processor) { - normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT); -} -function registerPostInit(postInitFunc) { - registerUpdateLifecycle("afterinit", postInitFunc); -} -function registerPostUpdate(postUpdateFunc) { - registerUpdateLifecycle("afterupdate", postUpdateFunc); -} -function registerUpdateLifecycle(name, cb) { - lifecycle$1.on(name, cb); -} -function registerAction(actionInfo, eventName, action) { - if (isFunction(eventName)) { - action = eventName; - eventName = ""; - } - var actionType = isObject$2(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = { - event: eventName - }][0]; - actionInfo.event = (actionInfo.event || actionType).toLowerCase(); - eventName = actionInfo.event; - if (eventActionMap[eventName]) { - return; - } - assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName)); - if (!actions[actionType]) { - actions[actionType] = { - action, - actionInfo - }; - } - eventActionMap[eventName] = actionType; -} -function registerCoordinateSystem(type, coordSysCreator) { - CoordinateSystem.register(type, coordSysCreator); -} -function getCoordinateSystemDimensions(type) { - var coordSysCreator = CoordinateSystem.get(type); - if (coordSysCreator) { - return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice(); - } -} -function registerLayout(priority, layoutTask) { - normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, "layout"); -} -function registerVisual(priority, visualTask) { - normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, "visual"); -} -var registeredTasks = []; -function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) { - if (isFunction(priority) || isObject$2(priority)) { - fn = priority; - priority = defaultPriority; - } - if (indexOf(registeredTasks, fn) >= 0) { - return; - } - registeredTasks.push(fn); - var stageHandler = Scheduler$1.wrapStageHandler(fn, visualType); - stageHandler.__prio = priority; - stageHandler.__raw = fn; - targetList.push(stageHandler); -} -function registerLoading(name, loadingFx) { - loadingEffects[name] = loadingFx; -} -function setCanvasCreator(creator) { - setPlatformAPI({ - createCanvas: creator - }); -} -function registerMap(mapName, geoJson, specialAreas) { - var registerMap2 = getImpl("registerMap"); - registerMap2 && registerMap2(mapName, geoJson, specialAreas); -} -function getMap(mapName) { - var getMap2 = getImpl("getMap"); - return getMap2 && getMap2(mapName); -} -var registerTransform = registerExternalTransform; -registerVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask); -registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask); -registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask); -registerVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask); -registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask); -registerVisual(PRIORITY_VISUAL_DECAL, decalVisual); -registerPreprocessor(globalBackwardCompat); -registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack); -registerLoading("default", defaultLoading); -registerAction({ - type: HIGHLIGHT_ACTION_TYPE, - event: HIGHLIGHT_ACTION_TYPE, - update: HIGHLIGHT_ACTION_TYPE -}, noop); -registerAction({ - type: DOWNPLAY_ACTION_TYPE, - event: DOWNPLAY_ACTION_TYPE, - update: DOWNPLAY_ACTION_TYPE -}, noop); -registerAction({ - type: SELECT_ACTION_TYPE, - event: SELECT_ACTION_TYPE, - update: SELECT_ACTION_TYPE -}, noop); -registerAction({ - type: UNSELECT_ACTION_TYPE, - event: UNSELECT_ACTION_TYPE, - update: UNSELECT_ACTION_TYPE -}, noop); -registerAction({ - type: TOGGLE_SELECT_ACTION_TYPE, - event: TOGGLE_SELECT_ACTION_TYPE, - update: TOGGLE_SELECT_ACTION_TYPE -}, noop); -registerTheme("light", lightTheme); -registerTheme("dark", darkTheme); -var dataTool = {}; -function dataIndexMapValueLength(valNumOrArrLengthMoreThan2) { - return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1; -} -function defaultKeyGetter(item) { - return item; -} -var DataDiffer = ( - /** @class */ - function() { - function DataDiffer2(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) { - this._old = oldArr; - this._new = newArr; - this._oldKeyGetter = oldKeyGetter || defaultKeyGetter; - this._newKeyGetter = newKeyGetter || defaultKeyGetter; - this.context = context; - this._diffModeMultiple = diffMode === "multiple"; - } - DataDiffer2.prototype.add = function(func) { - this._add = func; - return this; - }; - DataDiffer2.prototype.update = function(func) { - this._update = func; - return this; - }; - DataDiffer2.prototype.updateManyToOne = function(func) { - this._updateManyToOne = func; - return this; - }; - DataDiffer2.prototype.updateOneToMany = function(func) { - this._updateOneToMany = func; - return this; - }; - DataDiffer2.prototype.updateManyToMany = function(func) { - this._updateManyToMany = func; - return this; - }; - DataDiffer2.prototype.remove = function(func) { - this._remove = func; - return this; - }; - DataDiffer2.prototype.execute = function() { - this[this._diffModeMultiple ? "_executeMultiple" : "_executeOneToOne"](); - }; - DataDiffer2.prototype._executeOneToOne = function() { - var oldArr = this._old; - var newArr = this._new; - var newDataIndexMap = {}; - var oldDataKeyArr = new Array(oldArr.length); - var newDataKeyArr = new Array(newArr.length); - this._initIndexMap(oldArr, null, oldDataKeyArr, "_oldKeyGetter"); - this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, "_newKeyGetter"); - for (var i = 0; i < oldArr.length; i++) { - var oldKey = oldDataKeyArr[i]; - var newIdxMapVal = newDataIndexMap[oldKey]; - var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal); - if (newIdxMapValLen > 1) { - var newIdx = newIdxMapVal.shift(); - if (newIdxMapVal.length === 1) { - newDataIndexMap[oldKey] = newIdxMapVal[0]; - } - this._update && this._update(newIdx, i); - } else if (newIdxMapValLen === 1) { - newDataIndexMap[oldKey] = null; - this._update && this._update(newIdxMapVal, i); - } else { - this._remove && this._remove(i); - } - } - this._performRestAdd(newDataKeyArr, newDataIndexMap); - }; - DataDiffer2.prototype._executeMultiple = function() { - var oldArr = this._old; - var newArr = this._new; - var oldDataIndexMap = {}; - var newDataIndexMap = {}; - var oldDataKeyArr = []; - var newDataKeyArr = []; - this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, "_oldKeyGetter"); - this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, "_newKeyGetter"); - for (var i = 0; i < oldDataKeyArr.length; i++) { - var oldKey = oldDataKeyArr[i]; - var oldIdxMapVal = oldDataIndexMap[oldKey]; - var newIdxMapVal = newDataIndexMap[oldKey]; - var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal); - var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal); - if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) { - this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal); - newDataIndexMap[oldKey] = null; - } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) { - this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal); - newDataIndexMap[oldKey] = null; - } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) { - this._update && this._update(newIdxMapVal, oldIdxMapVal); - newDataIndexMap[oldKey] = null; - } else if (oldIdxMapValLen > 1 && newIdxMapValLen > 1) { - this._updateManyToMany && this._updateManyToMany(newIdxMapVal, oldIdxMapVal); - newDataIndexMap[oldKey] = null; - } else if (oldIdxMapValLen > 1) { - for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) { - this._remove && this._remove(oldIdxMapVal[i_1]); - } - } else { - this._remove && this._remove(oldIdxMapVal); - } - } - this._performRestAdd(newDataKeyArr, newDataIndexMap); - }; - DataDiffer2.prototype._performRestAdd = function(newDataKeyArr, newDataIndexMap) { - for (var i = 0; i < newDataKeyArr.length; i++) { - var newKey = newDataKeyArr[i]; - var newIdxMapVal = newDataIndexMap[newKey]; - var idxMapValLen = dataIndexMapValueLength(newIdxMapVal); - if (idxMapValLen > 1) { - for (var j = 0; j < idxMapValLen; j++) { - this._add && this._add(newIdxMapVal[j]); - } - } else if (idxMapValLen === 1) { - this._add && this._add(newIdxMapVal); - } - newDataIndexMap[newKey] = null; - } - }; - DataDiffer2.prototype._initIndexMap = function(arr, map2, keyArr, keyGetterName) { - var cbModeMultiple = this._diffModeMultiple; - for (var i = 0; i < arr.length; i++) { - var key = "_ec_" + this[keyGetterName](arr[i], i); - if (!cbModeMultiple) { - keyArr[i] = key; - } - if (!map2) { - continue; - } - var idxMapVal = map2[key]; - var idxMapValLen = dataIndexMapValueLength(idxMapVal); - if (idxMapValLen === 0) { - map2[key] = i; - if (cbModeMultiple) { - keyArr.push(key); - } - } else if (idxMapValLen === 1) { - map2[key] = [idxMapVal, i]; - } else { - idxMapVal.push(i); - } - } - }; - return DataDiffer2; - }() -); -const DataDiffer$1 = DataDiffer; -var DimensionUserOuput = ( - /** @class */ - function() { - function DimensionUserOuput2(encode, dimRequest) { - this._encode = encode; - this._schema = dimRequest; - } - DimensionUserOuput2.prototype.get = function() { - return { - // Do not generate full dimension name until fist used. - fullDimensions: this._getFullDimensionNames(), - encode: this._encode - }; - }; - DimensionUserOuput2.prototype._getFullDimensionNames = function() { - if (!this._cachedDimNames) { - this._cachedDimNames = this._schema ? this._schema.makeOutputDimensionNames() : []; - } - return this._cachedDimNames; - }; - return DimensionUserOuput2; - }() -); -function summarizeDimensions(data, schema) { - var summary = {}; - var encode = summary.encode = {}; - var notExtraCoordDimMap = createHashMap(); - var defaultedLabel = []; - var defaultedTooltip = []; - var userOutputEncode = {}; - each$2(data.dimensions, function(dimName) { - var dimItem = data.getDimensionInfo(dimName); - var coordDim = dimItem.coordDim; - if (coordDim) { - var coordDimIndex = dimItem.coordDimIndex; - getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName; - if (!dimItem.isExtraCoord) { - notExtraCoordDimMap.set(coordDim, 1); - if (mayLabelDimType(dimItem.type)) { - defaultedLabel[0] = dimName; - } - getOrCreateEncodeArr(userOutputEncode, coordDim)[coordDimIndex] = data.getDimensionIndex(dimItem.name); - } - if (dimItem.defaultTooltip) { - defaultedTooltip.push(dimName); - } - } - VISUAL_DIMENSIONS.each(function(v, otherDim) { - var encodeArr = getOrCreateEncodeArr(encode, otherDim); - var dimIndex = dimItem.otherDims[otherDim]; - if (dimIndex != null && dimIndex !== false) { - encodeArr[dimIndex] = dimItem.name; - } - }); - }); - var dataDimsOnCoord = []; - var encodeFirstDimNotExtra = {}; - notExtraCoordDimMap.each(function(v, coordDim) { - var dimArr = encode[coordDim]; - encodeFirstDimNotExtra[coordDim] = dimArr[0]; - dataDimsOnCoord = dataDimsOnCoord.concat(dimArr); - }); - summary.dataDimsOnCoord = dataDimsOnCoord; - summary.dataDimIndicesOnCoord = map$1(dataDimsOnCoord, function(dimName) { - return data.getDimensionInfo(dimName).storeDimIndex; - }); - summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra; - var encodeLabel = encode.label; - if (encodeLabel && encodeLabel.length) { - defaultedLabel = encodeLabel.slice(); - } - var encodeTooltip = encode.tooltip; - if (encodeTooltip && encodeTooltip.length) { - defaultedTooltip = encodeTooltip.slice(); - } else if (!defaultedTooltip.length) { - defaultedTooltip = defaultedLabel.slice(); - } - encode.defaultedLabel = defaultedLabel; - encode.defaultedTooltip = defaultedTooltip; - summary.userOutput = new DimensionUserOuput(userOutputEncode, schema); - return summary; -} -function getOrCreateEncodeArr(encode, dim) { - if (!encode.hasOwnProperty(dim)) { - encode[dim] = []; - } - return encode[dim]; -} -function getDimensionTypeByAxis(axisType) { - return axisType === "category" ? "ordinal" : axisType === "time" ? "time" : "float"; -} -function mayLabelDimType(dimType) { - return !(dimType === "ordinal" || dimType === "time"); -} -var SeriesDimensionDefine = ( - /** @class */ - function() { - function SeriesDimensionDefine2(opt) { - this.otherDims = {}; - if (opt != null) { - extend(this, opt); - } - } - return SeriesDimensionDefine2; - }() -); -const SeriesDimensionDefine$1 = SeriesDimensionDefine; -var inner$1 = makeInner(); -var dimTypeShort = { - float: "f", - int: "i", - ordinal: "o", - number: "n", - time: "t" -}; -var SeriesDataSchema = ( - /** @class */ - function() { - function SeriesDataSchema2(opt) { - this.dimensions = opt.dimensions; - this._dimOmitted = opt.dimensionOmitted; - this.source = opt.source; - this._fullDimCount = opt.fullDimensionCount; - this._updateDimOmitted(opt.dimensionOmitted); - } - SeriesDataSchema2.prototype.isDimensionOmitted = function() { - return this._dimOmitted; - }; - SeriesDataSchema2.prototype._updateDimOmitted = function(dimensionOmitted) { - this._dimOmitted = dimensionOmitted; - if (!dimensionOmitted) { - return; - } - if (!this._dimNameMap) { - this._dimNameMap = ensureSourceDimNameMap(this.source); - } - }; - SeriesDataSchema2.prototype.getSourceDimensionIndex = function(dimName) { - return retrieve2(this._dimNameMap.get(dimName), -1); - }; - SeriesDataSchema2.prototype.getSourceDimension = function(dimIndex) { - var dimensionsDefine = this.source.dimensionsDefine; - if (dimensionsDefine) { - return dimensionsDefine[dimIndex]; - } - }; - SeriesDataSchema2.prototype.makeStoreSchema = function() { - var dimCount = this._fullDimCount; - var willRetrieveDataByName = shouldRetrieveDataByName(this.source); - var makeHashStrict = !shouldOmitUnusedDimensions(dimCount); - var dimHash = ""; - var dims = []; - for (var fullDimIdx = 0, seriesDimIdx = 0; fullDimIdx < dimCount; fullDimIdx++) { - var property = void 0; - var type = void 0; - var ordinalMeta = void 0; - var seriesDimDef = this.dimensions[seriesDimIdx]; - if (seriesDimDef && seriesDimDef.storeDimIndex === fullDimIdx) { - property = willRetrieveDataByName ? seriesDimDef.name : null; - type = seriesDimDef.type; - ordinalMeta = seriesDimDef.ordinalMeta; - seriesDimIdx++; - } else { - var sourceDimDef = this.getSourceDimension(fullDimIdx); - if (sourceDimDef) { - property = willRetrieveDataByName ? sourceDimDef.name : null; - type = sourceDimDef.type; - } - } - dims.push({ - property, - type, - ordinalMeta - }); - if (willRetrieveDataByName && property != null && (!seriesDimDef || !seriesDimDef.isCalculationCoord)) { - dimHash += makeHashStrict ? property.replace(/\`/g, "`1").replace(/\$/g, "`2") : property; - } - dimHash += "$"; - dimHash += dimTypeShort[type] || "f"; - if (ordinalMeta) { - dimHash += ordinalMeta.uid; - } - dimHash += "$"; - } - var source = this.source; - var hash = [source.seriesLayoutBy, source.startIndex, dimHash].join("$$"); - return { - dimensions: dims, - hash - }; - }; - SeriesDataSchema2.prototype.makeOutputDimensionNames = function() { - var result = []; - for (var fullDimIdx = 0, seriesDimIdx = 0; fullDimIdx < this._fullDimCount; fullDimIdx++) { - var name_1 = void 0; - var seriesDimDef = this.dimensions[seriesDimIdx]; - if (seriesDimDef && seriesDimDef.storeDimIndex === fullDimIdx) { - if (!seriesDimDef.isCalculationCoord) { - name_1 = seriesDimDef.name; - } - seriesDimIdx++; - } else { - var sourceDimDef = this.getSourceDimension(fullDimIdx); - if (sourceDimDef) { - name_1 = sourceDimDef.name; - } - } - result.push(name_1); - } - return result; - }; - SeriesDataSchema2.prototype.appendCalculationDimension = function(dimDef) { - this.dimensions.push(dimDef); - dimDef.isCalculationCoord = true; - this._fullDimCount++; - this._updateDimOmitted(true); - }; - return SeriesDataSchema2; - }() -); -function isSeriesDataSchema(schema) { - return schema instanceof SeriesDataSchema; -} -function createDimNameMap(dimsDef) { - var dataDimNameMap = createHashMap(); - for (var i = 0; i < (dimsDef || []).length; i++) { - var dimDefItemRaw = dimsDef[i]; - var userDimName = isObject$2(dimDefItemRaw) ? dimDefItemRaw.name : dimDefItemRaw; - if (userDimName != null && dataDimNameMap.get(userDimName) == null) { - dataDimNameMap.set(userDimName, i); - } - } - return dataDimNameMap; -} -function ensureSourceDimNameMap(source) { - var innerSource = inner$1(source); - return innerSource.dimNameMap || (innerSource.dimNameMap = createDimNameMap(source.dimensionsDefine)); -} -function shouldOmitUnusedDimensions(dimCount) { - return dimCount > 30; -} -var isObject = isObject$2; -var map = map$1; -var CtorInt32Array = typeof Int32Array === "undefined" ? Array : Int32Array; -var ID_PREFIX = "e\0\0"; -var INDEX_NOT_FOUND = -1; -var TRANSFERABLE_PROPERTIES = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_dimSummary", "userOutput", "_rawData", "_dimValueGetter", "_nameDimIdx", "_idDimIdx", "_nameRepeatCount"]; -var CLONE_PROPERTIES = ["_approximateExtent"]; -var prepareInvertedIndex; -var getId; -var getIdNameFromStore; -var normalizeDimensions; -var transferProperties; -var cloneListForMapAndSample; -var makeIdFromName; -var SeriesData = ( - /** @class */ - function() { - function SeriesData2(dimensionsInput, hostModel) { - this.type = "list"; - this._dimOmitted = false; - this._nameList = []; - this._idList = []; - this._visual = {}; - this._layout = {}; - this._itemVisuals = []; - this._itemLayouts = []; - this._graphicEls = []; - this._approximateExtent = {}; - this._calculationInfo = {}; - this.hasItemOption = false; - this.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "lttbDownSample", "map"]; - this.CHANGABLE_METHODS = ["filterSelf", "selectRange"]; - this.DOWNSAMPLE_METHODS = ["downSample", "lttbDownSample"]; - var dimensions; - var assignStoreDimIdx = false; - if (isSeriesDataSchema(dimensionsInput)) { - dimensions = dimensionsInput.dimensions; - this._dimOmitted = dimensionsInput.isDimensionOmitted(); - this._schema = dimensionsInput; - } else { - assignStoreDimIdx = true; - dimensions = dimensionsInput; - } - dimensions = dimensions || ["x", "y"]; - var dimensionInfos = {}; - var dimensionNames = []; - var invertedIndicesMap = {}; - var needsHasOwn = false; - var emptyObj = {}; - for (var i = 0; i < dimensions.length; i++) { - var dimInfoInput = dimensions[i]; - var dimensionInfo = isString(dimInfoInput) ? new SeriesDimensionDefine$1({ - name: dimInfoInput - }) : !(dimInfoInput instanceof SeriesDimensionDefine$1) ? new SeriesDimensionDefine$1(dimInfoInput) : dimInfoInput; - var dimensionName = dimensionInfo.name; - dimensionInfo.type = dimensionInfo.type || "float"; - if (!dimensionInfo.coordDim) { - dimensionInfo.coordDim = dimensionName; - dimensionInfo.coordDimIndex = 0; - } - var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {}; - dimensionNames.push(dimensionName); - dimensionInfos[dimensionName] = dimensionInfo; - if (emptyObj[dimensionName] != null) { - needsHasOwn = true; - } - if (dimensionInfo.createInvertedIndices) { - invertedIndicesMap[dimensionName] = []; - } - if (otherDims.itemName === 0) { - this._nameDimIdx = i; - } - if (otherDims.itemId === 0) { - this._idDimIdx = i; - } - if (assignStoreDimIdx) { - dimensionInfo.storeDimIndex = i; - } - } - this.dimensions = dimensionNames; - this._dimInfos = dimensionInfos; - this._initGetDimensionInfo(needsHasOwn); - this.hostModel = hostModel; - this._invertedIndicesMap = invertedIndicesMap; - if (this._dimOmitted) { - var dimIdxToName_1 = this._dimIdxToName = createHashMap(); - each$2(dimensionNames, function(dimName) { - dimIdxToName_1.set(dimensionInfos[dimName].storeDimIndex, dimName); - }); - } - } - SeriesData2.prototype.getDimension = function(dim) { - var dimIdx = this._recognizeDimIndex(dim); - if (dimIdx == null) { - return dim; - } - dimIdx = dim; - if (!this._dimOmitted) { - return this.dimensions[dimIdx]; - } - var dimName = this._dimIdxToName.get(dimIdx); - if (dimName != null) { - return dimName; - } - var sourceDimDef = this._schema.getSourceDimension(dimIdx); - if (sourceDimDef) { - return sourceDimDef.name; - } - }; - SeriesData2.prototype.getDimensionIndex = function(dim) { - var dimIdx = this._recognizeDimIndex(dim); - if (dimIdx != null) { - return dimIdx; - } - if (dim == null) { - return -1; - } - var dimInfo = this._getDimInfo(dim); - return dimInfo ? dimInfo.storeDimIndex : this._dimOmitted ? this._schema.getSourceDimensionIndex(dim) : -1; - }; - SeriesData2.prototype._recognizeDimIndex = function(dim) { - if (isNumber(dim) || dim != null && !isNaN(dim) && !this._getDimInfo(dim) && (!this._dimOmitted || this._schema.getSourceDimensionIndex(dim) < 0)) { - return +dim; - } - }; - SeriesData2.prototype._getStoreDimIndex = function(dim) { - var dimIdx = this.getDimensionIndex(dim); - return dimIdx; - }; - SeriesData2.prototype.getDimensionInfo = function(dim) { - return this._getDimInfo(this.getDimension(dim)); - }; - SeriesData2.prototype._initGetDimensionInfo = function(needsHasOwn) { - var dimensionInfos = this._dimInfos; - this._getDimInfo = needsHasOwn ? function(dimName) { - return dimensionInfos.hasOwnProperty(dimName) ? dimensionInfos[dimName] : void 0; - } : function(dimName) { - return dimensionInfos[dimName]; - }; - }; - SeriesData2.prototype.getDimensionsOnCoord = function() { - return this._dimSummary.dataDimsOnCoord.slice(); - }; - SeriesData2.prototype.mapDimension = function(coordDim, idx) { - var dimensionsSummary = this._dimSummary; - if (idx == null) { - return dimensionsSummary.encodeFirstDimNotExtra[coordDim]; - } - var dims = dimensionsSummary.encode[coordDim]; - return dims ? dims[idx] : null; - }; - SeriesData2.prototype.mapDimensionsAll = function(coordDim) { - var dimensionsSummary = this._dimSummary; - var dims = dimensionsSummary.encode[coordDim]; - return (dims || []).slice(); - }; - SeriesData2.prototype.getStore = function() { - return this._store; - }; - SeriesData2.prototype.initData = function(data, nameList, dimValueGetter) { - var _this = this; - var store; - if (data instanceof DataStore$1) { - store = data; - } - if (!store) { - var dimensions = this.dimensions; - var provider = isSourceInstance(data) || isArrayLike(data) ? new DefaultDataProvider(data, dimensions.length) : data; - store = new DataStore$1(); - var dimensionInfos = map(dimensions, function(dimName) { - return { - type: _this._dimInfos[dimName].type, - property: dimName - }; - }); - store.initData(provider, dimensionInfos, dimValueGetter); - } - this._store = store; - this._nameList = (nameList || []).slice(); - this._idList = []; - this._nameRepeatCount = {}; - this._doInit(0, store.count()); - this._dimSummary = summarizeDimensions(this, this._schema); - this.userOutput = this._dimSummary.userOutput; - }; - SeriesData2.prototype.appendData = function(data) { - var range = this._store.appendData(data); - this._doInit(range[0], range[1]); - }; - SeriesData2.prototype.appendValues = function(values, names) { - var _a2 = this._store.appendValues(values, names.length), start = _a2.start, end = _a2.end; - var shouldMakeIdFromName = this._shouldMakeIdFromName(); - this._updateOrdinalMeta(); - if (names) { - for (var idx = start; idx < end; idx++) { - var sourceIdx = idx - start; - this._nameList[idx] = names[sourceIdx]; - if (shouldMakeIdFromName) { - makeIdFromName(this, idx); - } - } - } - }; - SeriesData2.prototype._updateOrdinalMeta = function() { - var store = this._store; - var dimensions = this.dimensions; - for (var i = 0; i < dimensions.length; i++) { - var dimInfo = this._dimInfos[dimensions[i]]; - if (dimInfo.ordinalMeta) { - store.collectOrdinalMeta(dimInfo.storeDimIndex, dimInfo.ordinalMeta); - } - } - }; - SeriesData2.prototype._shouldMakeIdFromName = function() { - var provider = this._store.getProvider(); - return this._idDimIdx == null && provider.getSource().sourceFormat !== SOURCE_FORMAT_TYPED_ARRAY && !provider.fillStorage; - }; - SeriesData2.prototype._doInit = function(start, end) { - if (start >= end) { - return; - } - var store = this._store; - var provider = store.getProvider(); - this._updateOrdinalMeta(); - var nameList = this._nameList; - var idList = this._idList; - var sourceFormat = provider.getSource().sourceFormat; - var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL; - if (isFormatOriginal && !provider.pure) { - var sharedDataItem = []; - for (var idx = start; idx < end; idx++) { - var dataItem = provider.getItem(idx, sharedDataItem); - if (!this.hasItemOption && isDataItemOption(dataItem)) { - this.hasItemOption = true; - } - if (dataItem) { - var itemName = dataItem.name; - if (nameList[idx] == null && itemName != null) { - nameList[idx] = convertOptionIdName(itemName, null); - } - var itemId = dataItem.id; - if (idList[idx] == null && itemId != null) { - idList[idx] = convertOptionIdName(itemId, null); - } - } - } - } - if (this._shouldMakeIdFromName()) { - for (var idx = start; idx < end; idx++) { - makeIdFromName(this, idx); - } - } - prepareInvertedIndex(this); - }; - SeriesData2.prototype.getApproximateExtent = function(dim) { - return this._approximateExtent[dim] || this._store.getDataExtent(this._getStoreDimIndex(dim)); - }; - SeriesData2.prototype.setApproximateExtent = function(extent3, dim) { - dim = this.getDimension(dim); - this._approximateExtent[dim] = extent3.slice(); - }; - SeriesData2.prototype.getCalculationInfo = function(key) { - return this._calculationInfo[key]; - }; - SeriesData2.prototype.setCalculationInfo = function(key, value) { - isObject(key) ? extend(this._calculationInfo, key) : this._calculationInfo[key] = value; - }; - SeriesData2.prototype.getName = function(idx) { - var rawIndex = this.getRawIndex(idx); - var name = this._nameList[rawIndex]; - if (name == null && this._nameDimIdx != null) { - name = getIdNameFromStore(this, this._nameDimIdx, rawIndex); - } - if (name == null) { - name = ""; - } - return name; - }; - SeriesData2.prototype._getCategory = function(dimIdx, idx) { - var ordinal = this._store.get(dimIdx, idx); - var ordinalMeta = this._store.getOrdinalMeta(dimIdx); - if (ordinalMeta) { - return ordinalMeta.categories[ordinal]; - } - return ordinal; - }; - SeriesData2.prototype.getId = function(idx) { - return getId(this, this.getRawIndex(idx)); - }; - SeriesData2.prototype.count = function() { - return this._store.count(); - }; - SeriesData2.prototype.get = function(dim, idx) { - var store = this._store; - var dimInfo = this._dimInfos[dim]; - if (dimInfo) { - return store.get(dimInfo.storeDimIndex, idx); - } - }; - SeriesData2.prototype.getByRawIndex = function(dim, rawIdx) { - var store = this._store; - var dimInfo = this._dimInfos[dim]; - if (dimInfo) { - return store.getByRawIndex(dimInfo.storeDimIndex, rawIdx); - } - }; - SeriesData2.prototype.getIndices = function() { - return this._store.getIndices(); - }; - SeriesData2.prototype.getDataExtent = function(dim) { - return this._store.getDataExtent(this._getStoreDimIndex(dim)); - }; - SeriesData2.prototype.getSum = function(dim) { - return this._store.getSum(this._getStoreDimIndex(dim)); - }; - SeriesData2.prototype.getMedian = function(dim) { - return this._store.getMedian(this._getStoreDimIndex(dim)); - }; - SeriesData2.prototype.getValues = function(dimensions, idx) { - var _this = this; - var store = this._store; - return isArray(dimensions) ? store.getValues(map(dimensions, function(dim) { - return _this._getStoreDimIndex(dim); - }), idx) : store.getValues(dimensions); - }; - SeriesData2.prototype.hasValue = function(idx) { - var dataDimIndicesOnCoord = this._dimSummary.dataDimIndicesOnCoord; - for (var i = 0, len = dataDimIndicesOnCoord.length; i < len; i++) { - if (isNaN(this._store.get(dataDimIndicesOnCoord[i], idx))) { - return false; - } - } - return true; - }; - SeriesData2.prototype.indexOfName = function(name) { - for (var i = 0, len = this._store.count(); i < len; i++) { - if (this.getName(i) === name) { - return i; - } - } - return -1; - }; - SeriesData2.prototype.getRawIndex = function(idx) { - return this._store.getRawIndex(idx); - }; - SeriesData2.prototype.indexOfRawIndex = function(rawIndex) { - return this._store.indexOfRawIndex(rawIndex); - }; - SeriesData2.prototype.rawIndexOf = function(dim, value) { - var invertedIndices = dim && this._invertedIndicesMap[dim]; - var rawIndex = invertedIndices[value]; - if (rawIndex == null || isNaN(rawIndex)) { - return INDEX_NOT_FOUND; - } - return rawIndex; - }; - SeriesData2.prototype.indicesOfNearest = function(dim, value, maxDistance) { - return this._store.indicesOfNearest(this._getStoreDimIndex(dim), value, maxDistance); - }; - SeriesData2.prototype.each = function(dims, cb, ctx) { - if (isFunction(dims)) { - ctx = cb; - cb = dims; - dims = []; - } - var fCtx = ctx || this; - var dimIndices = map(normalizeDimensions(dims), this._getStoreDimIndex, this); - this._store.each(dimIndices, fCtx ? bind(cb, fCtx) : cb); - }; - SeriesData2.prototype.filterSelf = function(dims, cb, ctx) { - if (isFunction(dims)) { - ctx = cb; - cb = dims; - dims = []; - } - var fCtx = ctx || this; - var dimIndices = map(normalizeDimensions(dims), this._getStoreDimIndex, this); - this._store = this._store.filter(dimIndices, fCtx ? bind(cb, fCtx) : cb); - return this; - }; - SeriesData2.prototype.selectRange = function(range) { - var _this = this; - var innerRange = {}; - var dims = keys(range); - each$2(dims, function(dim) { - var dimIdx = _this._getStoreDimIndex(dim); - innerRange[dimIdx] = range[dim]; - }); - this._store = this._store.selectRange(innerRange); - return this; - }; - SeriesData2.prototype.mapArray = function(dims, cb, ctx) { - if (isFunction(dims)) { - ctx = cb; - cb = dims; - dims = []; - } - ctx = ctx || this; - var result = []; - this.each(dims, function() { - result.push(cb && cb.apply(this, arguments)); - }, ctx); - return result; - }; - SeriesData2.prototype.map = function(dims, cb, ctx, ctxCompat) { - var fCtx = ctx || ctxCompat || this; - var dimIndices = map(normalizeDimensions(dims), this._getStoreDimIndex, this); - var list = cloneListForMapAndSample(this); - list._store = this._store.map(dimIndices, fCtx ? bind(cb, fCtx) : cb); - return list; - }; - SeriesData2.prototype.modify = function(dims, cb, ctx, ctxCompat) { - var fCtx = ctx || ctxCompat || this; - var dimIndices = map(normalizeDimensions(dims), this._getStoreDimIndex, this); - this._store.modify(dimIndices, fCtx ? bind(cb, fCtx) : cb); - }; - SeriesData2.prototype.downSample = function(dimension, rate, sampleValue, sampleIndex) { - var list = cloneListForMapAndSample(this); - list._store = this._store.downSample(this._getStoreDimIndex(dimension), rate, sampleValue, sampleIndex); - return list; - }; - SeriesData2.prototype.lttbDownSample = function(valueDimension, rate) { - var list = cloneListForMapAndSample(this); - list._store = this._store.lttbDownSample(this._getStoreDimIndex(valueDimension), rate); - return list; - }; - SeriesData2.prototype.getRawDataItem = function(idx) { - return this._store.getRawDataItem(idx); - }; - SeriesData2.prototype.getItemModel = function(idx) { - var hostModel = this.hostModel; - var dataItem = this.getRawDataItem(idx); - return new Model$1(dataItem, hostModel, hostModel && hostModel.ecModel); - }; - SeriesData2.prototype.diff = function(otherList) { - var thisList = this; - return new DataDiffer$1(otherList ? otherList.getStore().getIndices() : [], this.getStore().getIndices(), function(idx) { - return getId(otherList, idx); - }, function(idx) { - return getId(thisList, idx); - }); - }; - SeriesData2.prototype.getVisual = function(key) { - var visual = this._visual; - return visual && visual[key]; - }; - SeriesData2.prototype.setVisual = function(kvObj, val) { - this._visual = this._visual || {}; - if (isObject(kvObj)) { - extend(this._visual, kvObj); - } else { - this._visual[kvObj] = val; - } - }; - SeriesData2.prototype.getItemVisual = function(idx, key) { - var itemVisual = this._itemVisuals[idx]; - var val = itemVisual && itemVisual[key]; - if (val == null) { - return this.getVisual(key); - } - return val; - }; - SeriesData2.prototype.hasItemVisual = function() { - return this._itemVisuals.length > 0; - }; - SeriesData2.prototype.ensureUniqueItemVisual = function(idx, key) { - var itemVisuals = this._itemVisuals; - var itemVisual = itemVisuals[idx]; - if (!itemVisual) { - itemVisual = itemVisuals[idx] = {}; - } - var val = itemVisual[key]; - if (val == null) { - val = this.getVisual(key); - if (isArray(val)) { - val = val.slice(); - } else if (isObject(val)) { - val = extend({}, val); - } - itemVisual[key] = val; - } - return val; - }; - SeriesData2.prototype.setItemVisual = function(idx, key, value) { - var itemVisual = this._itemVisuals[idx] || {}; - this._itemVisuals[idx] = itemVisual; - if (isObject(key)) { - extend(itemVisual, key); - } else { - itemVisual[key] = value; - } - }; - SeriesData2.prototype.clearAllVisual = function() { - this._visual = {}; - this._itemVisuals = []; - }; - SeriesData2.prototype.setLayout = function(key, val) { - isObject(key) ? extend(this._layout, key) : this._layout[key] = val; - }; - SeriesData2.prototype.getLayout = function(key) { - return this._layout[key]; - }; - SeriesData2.prototype.getItemLayout = function(idx) { - return this._itemLayouts[idx]; - }; - SeriesData2.prototype.setItemLayout = function(idx, layout2, merge2) { - this._itemLayouts[idx] = merge2 ? extend(this._itemLayouts[idx] || {}, layout2) : layout2; - }; - SeriesData2.prototype.clearItemLayouts = function() { - this._itemLayouts.length = 0; - }; - SeriesData2.prototype.setItemGraphicEl = function(idx, el) { - var seriesIndex = this.hostModel && this.hostModel.seriesIndex; - setCommonECData(seriesIndex, this.dataType, idx, el); - this._graphicEls[idx] = el; - }; - SeriesData2.prototype.getItemGraphicEl = function(idx) { - return this._graphicEls[idx]; - }; - SeriesData2.prototype.eachItemGraphicEl = function(cb, context) { - each$2(this._graphicEls, function(el, idx) { - if (el) { - cb && cb.call(context, el, idx); - } - }); - }; - SeriesData2.prototype.cloneShallow = function(list) { - if (!list) { - list = new SeriesData2(this._schema ? this._schema : map(this.dimensions, this._getDimInfo, this), this.hostModel); - } - transferProperties(list, this); - list._store = this._store; - return list; - }; - SeriesData2.prototype.wrapMethod = function(methodName, injectFunction) { - var originalMethod = this[methodName]; - if (!isFunction(originalMethod)) { - return; - } - this.__wrappedMethods = this.__wrappedMethods || []; - this.__wrappedMethods.push(methodName); - this[methodName] = function() { - var res = originalMethod.apply(this, arguments); - return injectFunction.apply(this, [res].concat(slice(arguments))); - }; - }; - SeriesData2.internalField = function() { - prepareInvertedIndex = function(data) { - var invertedIndicesMap = data._invertedIndicesMap; - each$2(invertedIndicesMap, function(invertedIndices, dim) { - var dimInfo = data._dimInfos[dim]; - var ordinalMeta = dimInfo.ordinalMeta; - var store = data._store; - if (ordinalMeta) { - invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length); - for (var i = 0; i < invertedIndices.length; i++) { - invertedIndices[i] = INDEX_NOT_FOUND; - } - for (var i = 0; i < store.count(); i++) { - invertedIndices[store.get(dimInfo.storeDimIndex, i)] = i; - } - } - }); - }; - getIdNameFromStore = function(data, dimIdx, idx) { - return convertOptionIdName(data._getCategory(dimIdx, idx), null); - }; - getId = function(data, rawIndex) { - var id = data._idList[rawIndex]; - if (id == null && data._idDimIdx != null) { - id = getIdNameFromStore(data, data._idDimIdx, rawIndex); - } - if (id == null) { - id = ID_PREFIX + rawIndex; - } - return id; - }; - normalizeDimensions = function(dimensions) { - if (!isArray(dimensions)) { - dimensions = dimensions != null ? [dimensions] : []; - } - return dimensions; - }; - cloneListForMapAndSample = function(original) { - var list = new SeriesData2(original._schema ? original._schema : map(original.dimensions, original._getDimInfo, original), original.hostModel); - transferProperties(list, original); - return list; - }; - transferProperties = function(target, source) { - each$2(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function(propName) { - if (source.hasOwnProperty(propName)) { - target[propName] = source[propName]; - } - }); - target.__wrappedMethods = source.__wrappedMethods; - each$2(CLONE_PROPERTIES, function(propName) { - target[propName] = clone$1(source[propName]); - }); - target._calculationInfo = extend({}, source._calculationInfo); - }; - makeIdFromName = function(data, idx) { - var nameList = data._nameList; - var idList = data._idList; - var nameDimIdx = data._nameDimIdx; - var idDimIdx = data._idDimIdx; - var name = nameList[idx]; - var id = idList[idx]; - if (name == null && nameDimIdx != null) { - nameList[idx] = name = getIdNameFromStore(data, nameDimIdx, idx); - } - if (id == null && idDimIdx != null) { - idList[idx] = id = getIdNameFromStore(data, idDimIdx, idx); - } - if (id == null && name != null) { - var nameRepeatCount = data._nameRepeatCount; - var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1; - id = name; - if (nmCnt > 1) { - id += "__ec__" + nmCnt; - } - idList[idx] = id; - } - }; - }(); - return SeriesData2; - }() -); -const SeriesData$1 = SeriesData; -function enableDataStack(seriesModel, dimensionsInput, opt) { - opt = opt || {}; - var byIndex = opt.byIndex; - var stackedCoordDimension = opt.stackedCoordDimension; - var dimensionDefineList; - var schema; - var store; - if (isLegacyDimensionsInput(dimensionsInput)) { - dimensionDefineList = dimensionsInput; - } else { - schema = dimensionsInput.schema; - dimensionDefineList = schema.dimensions; - store = dimensionsInput.store; - } - var mayStack = !!(seriesModel && seriesModel.get("stack")); - var stackedByDimInfo; - var stackedDimInfo; - var stackResultDimension; - var stackedOverDimension; - each$2(dimensionDefineList, function(dimensionInfo, index) { - if (isString(dimensionInfo)) { - dimensionDefineList[index] = dimensionInfo = { - name: dimensionInfo - }; - } - if (mayStack && !dimensionInfo.isExtraCoord) { - if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) { - stackedByDimInfo = dimensionInfo; - } - if (!stackedDimInfo && dimensionInfo.type !== "ordinal" && dimensionInfo.type !== "time" && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) { - stackedDimInfo = dimensionInfo; - } - } - }); - if (stackedDimInfo && !byIndex && !stackedByDimInfo) { - byIndex = true; - } - if (stackedDimInfo) { - stackResultDimension = "__\0ecstackresult_" + seriesModel.id; - stackedOverDimension = "__\0ecstackedover_" + seriesModel.id; - if (stackedByDimInfo) { - stackedByDimInfo.createInvertedIndices = true; - } - var stackedDimCoordDim_1 = stackedDimInfo.coordDim; - var stackedDimType = stackedDimInfo.type; - var stackedDimCoordIndex_1 = 0; - each$2(dimensionDefineList, function(dimensionInfo) { - if (dimensionInfo.coordDim === stackedDimCoordDim_1) { - stackedDimCoordIndex_1++; - } - }); - var stackedOverDimensionDefine = { - name: stackResultDimension, - coordDim: stackedDimCoordDim_1, - coordDimIndex: stackedDimCoordIndex_1, - type: stackedDimType, - isExtraCoord: true, - isCalculationCoord: true, - storeDimIndex: dimensionDefineList.length - }; - var stackResultDimensionDefine = { - name: stackedOverDimension, - // This dimension contains stack base (generally, 0), so do not set it as - // `stackedDimCoordDim` to avoid extent calculation, consider log scale. - coordDim: stackedOverDimension, - coordDimIndex: stackedDimCoordIndex_1 + 1, - type: stackedDimType, - isExtraCoord: true, - isCalculationCoord: true, - storeDimIndex: dimensionDefineList.length + 1 - }; - if (schema) { - if (store) { - stackedOverDimensionDefine.storeDimIndex = store.ensureCalculationDimension(stackedOverDimension, stackedDimType); - stackResultDimensionDefine.storeDimIndex = store.ensureCalculationDimension(stackResultDimension, stackedDimType); - } - schema.appendCalculationDimension(stackedOverDimensionDefine); - schema.appendCalculationDimension(stackResultDimensionDefine); - } else { - dimensionDefineList.push(stackedOverDimensionDefine); - dimensionDefineList.push(stackResultDimensionDefine); - } - } - return { - stackedDimension: stackedDimInfo && stackedDimInfo.name, - stackedByDimension: stackedByDimInfo && stackedByDimInfo.name, - isStackedByIndex: byIndex, - stackedOverDimension, - stackResultDimension - }; -} -function isLegacyDimensionsInput(dimensionsInput) { - return !isSeriesDataSchema(dimensionsInput.schema); -} -function isDimensionStacked(data, stackedDim) { - return !!stackedDim && stackedDim === data.getCalculationInfo("stackedDimension"); -} -function getStackedDimension(data, targetDim) { - return isDimensionStacked(data, targetDim) ? data.getCalculationInfo("stackResultDimension") : targetDim; -} -var Scale = ( - /** @class */ - function() { - function Scale2(setting) { - this._setting = setting || {}; - this._extent = [Infinity, -Infinity]; - } - Scale2.prototype.getSetting = function(name) { - return this._setting[name]; - }; - Scale2.prototype.unionExtent = function(other) { - var extent3 = this._extent; - other[0] < extent3[0] && (extent3[0] = other[0]); - other[1] > extent3[1] && (extent3[1] = other[1]); - }; - Scale2.prototype.unionExtentFromData = function(data, dim) { - this.unionExtent(data.getApproximateExtent(dim)); - }; - Scale2.prototype.getExtent = function() { - return this._extent.slice(); - }; - Scale2.prototype.setExtent = function(start, end) { - var thisExtent = this._extent; - if (!isNaN(start)) { - thisExtent[0] = start; - } - if (!isNaN(end)) { - thisExtent[1] = end; - } - }; - Scale2.prototype.isInExtentRange = function(value) { - return this._extent[0] <= value && this._extent[1] >= value; - }; - Scale2.prototype.isBlank = function() { - return this._isBlank; - }; - Scale2.prototype.setBlank = function(isBlank) { - this._isBlank = isBlank; - }; - return Scale2; - }() -); -enableClassManagement(Scale); -const Scale$1 = Scale; -var uidBase = 0; -var OrdinalMeta = ( - /** @class */ - function() { - function OrdinalMeta2(opt) { - this.categories = opt.categories || []; - this._needCollect = opt.needCollect; - this._deduplication = opt.deduplication; - this.uid = ++uidBase; - } - OrdinalMeta2.createByAxisModel = function(axisModel) { - var option = axisModel.option; - var data = option.data; - var categories = data && map$1(data, getName); - return new OrdinalMeta2({ - categories, - needCollect: !categories, - // deduplication is default in axis. - deduplication: option.dedplication !== false - }); - }; - OrdinalMeta2.prototype.getOrdinal = function(category) { - return this._getOrCreateMap().get(category); - }; - OrdinalMeta2.prototype.parseAndCollect = function(category) { - var index; - var needCollect = this._needCollect; - if (!isString(category) && !needCollect) { - return category; - } - if (needCollect && !this._deduplication) { - index = this.categories.length; - this.categories[index] = category; - return index; - } - var map2 = this._getOrCreateMap(); - index = map2.get(category); - if (index == null) { - if (needCollect) { - index = this.categories.length; - this.categories[index] = category; - map2.set(category, index); - } else { - index = NaN; - } - } - return index; - }; - OrdinalMeta2.prototype._getOrCreateMap = function() { - return this._map || (this._map = createHashMap(this.categories)); - }; - return OrdinalMeta2; - }() -); -function getName(obj) { - if (isObject$2(obj) && obj.value != null) { - return obj.value; - } else { - return obj + ""; - } -} -const OrdinalMeta$1 = OrdinalMeta; -function isIntervalOrLogScale(scale2) { - return scale2.type === "interval" || scale2.type === "log"; -} -function intervalScaleNiceTicks(extent3, splitNumber, minInterval, maxInterval) { - var result = {}; - var span = extent3[1] - extent3[0]; - var interval = result.interval = nice(span / splitNumber, true); - if (minInterval != null && interval < minInterval) { - interval = result.interval = minInterval; - } - if (maxInterval != null && interval > maxInterval) { - interval = result.interval = maxInterval; - } - var precision = result.intervalPrecision = getIntervalPrecision(interval); - var niceTickExtent = result.niceTickExtent = [round(Math.ceil(extent3[0] / interval) * interval, precision), round(Math.floor(extent3[1] / interval) * interval, precision)]; - fixExtent(niceTickExtent, extent3); - return result; -} -function increaseInterval(interval) { - var exp10 = Math.pow(10, quantityExponent(interval)); - var f = interval / exp10; - if (!f) { - f = 1; - } else if (f === 2) { - f = 3; - } else if (f === 3) { - f = 5; - } else { - f *= 2; - } - return round(f * exp10); -} -function getIntervalPrecision(interval) { - return getPrecision(interval) + 2; -} -function clamp(niceTickExtent, idx, extent3) { - niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent3[1]), extent3[0]); -} -function fixExtent(niceTickExtent, extent3) { - !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent3[0]); - !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent3[1]); - clamp(niceTickExtent, 0, extent3); - clamp(niceTickExtent, 1, extent3); - if (niceTickExtent[0] > niceTickExtent[1]) { - niceTickExtent[0] = niceTickExtent[1]; - } -} -function contain$1(val, extent3) { - return val >= extent3[0] && val <= extent3[1]; -} -function normalize(val, extent3) { - if (extent3[1] === extent3[0]) { - return 0.5; - } - return (val - extent3[0]) / (extent3[1] - extent3[0]); -} -function scale(val, extent3) { - return val * (extent3[1] - extent3[0]) + extent3[0]; -} -var OrdinalScale = ( - /** @class */ - function(_super) { - __extends(OrdinalScale2, _super); - function OrdinalScale2(setting) { - var _this = _super.call(this, setting) || this; - _this.type = "ordinal"; - var ordinalMeta = _this.getSetting("ordinalMeta"); - if (!ordinalMeta) { - ordinalMeta = new OrdinalMeta$1({}); - } - if (isArray(ordinalMeta)) { - ordinalMeta = new OrdinalMeta$1({ - categories: map$1(ordinalMeta, function(item) { - return isObject$2(item) ? item.value : item; - }) - }); - } - _this._ordinalMeta = ordinalMeta; - _this._extent = _this.getSetting("extent") || [0, ordinalMeta.categories.length - 1]; - return _this; - } - OrdinalScale2.prototype.parse = function(val) { - if (val == null) { - return NaN; - } - return isString(val) ? this._ordinalMeta.getOrdinal(val) : Math.round(val); - }; - OrdinalScale2.prototype.contain = function(rank) { - rank = this.parse(rank); - return contain$1(rank, this._extent) && this._ordinalMeta.categories[rank] != null; - }; - OrdinalScale2.prototype.normalize = function(val) { - val = this._getTickNumber(this.parse(val)); - return normalize(val, this._extent); - }; - OrdinalScale2.prototype.scale = function(val) { - val = Math.round(scale(val, this._extent)); - return this.getRawOrdinalNumber(val); - }; - OrdinalScale2.prototype.getTicks = function() { - var ticks = []; - var extent3 = this._extent; - var rank = extent3[0]; - while (rank <= extent3[1]) { - ticks.push({ - value: rank - }); - rank++; - } - return ticks; - }; - OrdinalScale2.prototype.getMinorTicks = function(splitNumber) { - return; - }; - OrdinalScale2.prototype.setSortInfo = function(info) { - if (info == null) { - this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null; - return; - } - var infoOrdinalNumbers = info.ordinalNumbers; - var ordinalsByTick = this._ordinalNumbersByTick = []; - var ticksByOrdinal = this._ticksByOrdinalNumber = []; - var tickNum = 0; - var allCategoryLen = this._ordinalMeta.categories.length; - for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) { - var ordinalNumber = infoOrdinalNumbers[tickNum]; - ordinalsByTick[tickNum] = ordinalNumber; - ticksByOrdinal[ordinalNumber] = tickNum; - } - var unusedOrdinal = 0; - for (; tickNum < allCategoryLen; ++tickNum) { - while (ticksByOrdinal[unusedOrdinal] != null) { - unusedOrdinal++; - } - ordinalsByTick.push(unusedOrdinal); - ticksByOrdinal[unusedOrdinal] = tickNum; - } - }; - OrdinalScale2.prototype._getTickNumber = function(ordinal) { - var ticksByOrdinalNumber = this._ticksByOrdinalNumber; - return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal; - }; - OrdinalScale2.prototype.getRawOrdinalNumber = function(tickNumber) { - var ordinalNumbersByTick = this._ordinalNumbersByTick; - return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber; - }; - OrdinalScale2.prototype.getLabel = function(tick) { - if (!this.isBlank()) { - var ordinalNumber = this.getRawOrdinalNumber(tick.value); - var cateogry = this._ordinalMeta.categories[ordinalNumber]; - return cateogry == null ? "" : cateogry + ""; - } - }; - OrdinalScale2.prototype.count = function() { - return this._extent[1] - this._extent[0] + 1; - }; - OrdinalScale2.prototype.unionExtentFromData = function(data, dim) { - this.unionExtent(data.getApproximateExtent(dim)); - }; - OrdinalScale2.prototype.isInExtentRange = function(value) { - value = this._getTickNumber(value); - return this._extent[0] <= value && this._extent[1] >= value; - }; - OrdinalScale2.prototype.getOrdinalMeta = function() { - return this._ordinalMeta; - }; - OrdinalScale2.prototype.calcNiceTicks = function() { - }; - OrdinalScale2.prototype.calcNiceExtent = function() { - }; - OrdinalScale2.type = "ordinal"; - return OrdinalScale2; - }(Scale$1) -); -Scale$1.registerClass(OrdinalScale); -const OrdinalScale$1 = OrdinalScale; -var roundNumber = round; -var IntervalScale = ( - /** @class */ - function(_super) { - __extends(IntervalScale2, _super); - function IntervalScale2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "interval"; - _this._interval = 0; - _this._intervalPrecision = 2; - return _this; - } - IntervalScale2.prototype.parse = function(val) { - return val; - }; - IntervalScale2.prototype.contain = function(val) { - return contain$1(val, this._extent); - }; - IntervalScale2.prototype.normalize = function(val) { - return normalize(val, this._extent); - }; - IntervalScale2.prototype.scale = function(val) { - return scale(val, this._extent); - }; - IntervalScale2.prototype.setExtent = function(start, end) { - var thisExtent = this._extent; - if (!isNaN(start)) { - thisExtent[0] = parseFloat(start); - } - if (!isNaN(end)) { - thisExtent[1] = parseFloat(end); - } - }; - IntervalScale2.prototype.unionExtent = function(other) { - var extent3 = this._extent; - other[0] < extent3[0] && (extent3[0] = other[0]); - other[1] > extent3[1] && (extent3[1] = other[1]); - this.setExtent(extent3[0], extent3[1]); - }; - IntervalScale2.prototype.getInterval = function() { - return this._interval; - }; - IntervalScale2.prototype.setInterval = function(interval) { - this._interval = interval; - this._niceExtent = this._extent.slice(); - this._intervalPrecision = getIntervalPrecision(interval); - }; - IntervalScale2.prototype.getTicks = function(expandToNicedExtent) { - var interval = this._interval; - var extent3 = this._extent; - var niceTickExtent = this._niceExtent; - var intervalPrecision = this._intervalPrecision; - var ticks = []; - if (!interval) { - return ticks; - } - var safeLimit = 1e4; - if (extent3[0] < niceTickExtent[0]) { - if (expandToNicedExtent) { - ticks.push({ - value: roundNumber(niceTickExtent[0] - interval, intervalPrecision) - }); - } else { - ticks.push({ - value: extent3[0] - }); - } - } - var tick = niceTickExtent[0]; - while (tick <= niceTickExtent[1]) { - ticks.push({ - value: tick - }); - tick = roundNumber(tick + interval, intervalPrecision); - if (tick === ticks[ticks.length - 1].value) { - break; - } - if (ticks.length > safeLimit) { - return []; - } - } - var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1]; - if (extent3[1] > lastNiceTick) { - if (expandToNicedExtent) { - ticks.push({ - value: roundNumber(lastNiceTick + interval, intervalPrecision) - }); - } else { - ticks.push({ - value: extent3[1] - }); - } - } - return ticks; - }; - IntervalScale2.prototype.getMinorTicks = function(splitNumber) { - var ticks = this.getTicks(true); - var minorTicks = []; - var extent3 = this.getExtent(); - for (var i = 1; i < ticks.length; i++) { - var nextTick = ticks[i]; - var prevTick = ticks[i - 1]; - var count = 0; - var minorTicksGroup = []; - var interval = nextTick.value - prevTick.value; - var minorInterval = interval / splitNumber; - while (count < splitNumber - 1) { - var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval); - if (minorTick > extent3[0] && minorTick < extent3[1]) { - minorTicksGroup.push(minorTick); - } - count++; - } - minorTicks.push(minorTicksGroup); - } - return minorTicks; - }; - IntervalScale2.prototype.getLabel = function(data, opt) { - if (data == null) { - return ""; - } - var precision = opt && opt.precision; - if (precision == null) { - precision = getPrecision(data.value) || 0; - } else if (precision === "auto") { - precision = this._intervalPrecision; - } - var dataNum = roundNumber(data.value, precision, true); - return addCommas(dataNum); - }; - IntervalScale2.prototype.calcNiceTicks = function(splitNumber, minInterval, maxInterval) { - splitNumber = splitNumber || 5; - var extent3 = this._extent; - var span = extent3[1] - extent3[0]; - if (!isFinite(span)) { - return; - } - if (span < 0) { - span = -span; - extent3.reverse(); - } - var result = intervalScaleNiceTicks(extent3, splitNumber, minInterval, maxInterval); - this._intervalPrecision = result.intervalPrecision; - this._interval = result.interval; - this._niceExtent = result.niceTickExtent; - }; - IntervalScale2.prototype.calcNiceExtent = function(opt) { - var extent3 = this._extent; - if (extent3[0] === extent3[1]) { - if (extent3[0] !== 0) { - var expandSize = Math.abs(extent3[0]); - if (!opt.fixMax) { - extent3[1] += expandSize / 2; - extent3[0] -= expandSize / 2; - } else { - extent3[0] -= expandSize / 2; - } - } else { - extent3[1] = 1; - } - } - var span = extent3[1] - extent3[0]; - if (!isFinite(span)) { - extent3[0] = 0; - extent3[1] = 1; - } - this.calcNiceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); - var interval = this._interval; - if (!opt.fixMin) { - extent3[0] = roundNumber(Math.floor(extent3[0] / interval) * interval); - } - if (!opt.fixMax) { - extent3[1] = roundNumber(Math.ceil(extent3[1] / interval) * interval); - } - }; - IntervalScale2.prototype.setNiceExtent = function(min2, max2) { - this._niceExtent = [min2, max2]; - }; - IntervalScale2.type = "interval"; - return IntervalScale2; - }(Scale$1) -); -Scale$1.registerClass(IntervalScale); -const IntervalScale$1 = IntervalScale; -var supportFloat32Array = typeof Float32Array !== "undefined"; -var Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array; -function createFloat32Array(arg) { - if (isArray(arg)) { - return supportFloat32Array ? new Float32Array(arg) : arg; - } - return new Float32ArrayCtor(arg); -} -var STACK_PREFIX = "__ec_stack_"; -function getSeriesStackId(seriesModel) { - return seriesModel.get("stack") || STACK_PREFIX + seriesModel.seriesIndex; -} -function getAxisKey(axis) { - return axis.dim + axis.index; -} -function getLayoutOnAxis(opt) { - var params = []; - var baseAxis = opt.axis; - var axisKey = "axis0"; - if (baseAxis.type !== "category") { - return; - } - var bandWidth = baseAxis.getBandWidth(); - for (var i = 0; i < opt.count || 0; i++) { - params.push(defaults({ - bandWidth, - axisKey, - stackId: STACK_PREFIX + i - }, opt)); - } - var widthAndOffsets = doCalBarWidthAndOffset(params); - var result = []; - for (var i = 0; i < opt.count; i++) { - var item = widthAndOffsets[axisKey][STACK_PREFIX + i]; - item.offsetCenter = item.offset + item.width / 2; - result.push(item); - } - return result; -} -function prepareLayoutBarSeries(seriesType2, ecModel) { - var seriesModels = []; - ecModel.eachSeriesByType(seriesType2, function(seriesModel) { - if (isOnCartesian(seriesModel)) { - seriesModels.push(seriesModel); - } - }); - return seriesModels; -} -function getValueAxesMinGaps(barSeries) { - var axisValues = {}; - each$2(barSeries, function(seriesModel) { - var cartesian = seriesModel.coordinateSystem; - var baseAxis = cartesian.getBaseAxis(); - if (baseAxis.type !== "time" && baseAxis.type !== "value") { - return; - } - var data = seriesModel.getData(); - var key2 = baseAxis.dim + "_" + baseAxis.index; - var dimIdx = data.getDimensionIndex(data.mapDimension(baseAxis.dim)); - var store = data.getStore(); - for (var i = 0, cnt = store.count(); i < cnt; ++i) { - var value = store.get(dimIdx, i); - if (!axisValues[key2]) { - axisValues[key2] = [value]; - } else { - axisValues[key2].push(value); - } - } - }); - var axisMinGaps = {}; - for (var key in axisValues) { - if (axisValues.hasOwnProperty(key)) { - var valuesInAxis = axisValues[key]; - if (valuesInAxis) { - valuesInAxis.sort(function(a, b) { - return a - b; - }); - var min2 = null; - for (var j = 1; j < valuesInAxis.length; ++j) { - var delta = valuesInAxis[j] - valuesInAxis[j - 1]; - if (delta > 0) { - min2 = min2 === null ? delta : Math.min(min2, delta); - } - } - axisMinGaps[key] = min2; - } - } - } - return axisMinGaps; -} -function makeColumnLayout(barSeries) { - var axisMinGaps = getValueAxesMinGaps(barSeries); - var seriesInfoList = []; - each$2(barSeries, function(seriesModel) { - var cartesian = seriesModel.coordinateSystem; - var baseAxis = cartesian.getBaseAxis(); - var axisExtent = baseAxis.getExtent(); - var bandWidth; - if (baseAxis.type === "category") { - bandWidth = baseAxis.getBandWidth(); - } else if (baseAxis.type === "value" || baseAxis.type === "time") { - var key = baseAxis.dim + "_" + baseAxis.index; - var minGap = axisMinGaps[key]; - var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]); - var scale2 = baseAxis.scale.getExtent(); - var scaleSpan = Math.abs(scale2[1] - scale2[0]); - bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan; - } else { - var data = seriesModel.getData(); - bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count(); - } - var barWidth = parsePercent(seriesModel.get("barWidth"), bandWidth); - var barMaxWidth = parsePercent(seriesModel.get("barMaxWidth"), bandWidth); - var barMinWidth = parsePercent( - // barMinWidth by default is 0.5 / 1 in cartesian. Because in value axis, - // the auto-calculated bar width might be less than 0.5 / 1. - seriesModel.get("barMinWidth") || (isInLargeMode(seriesModel) ? 0.5 : 1), - bandWidth - ); - var barGap = seriesModel.get("barGap"); - var barCategoryGap = seriesModel.get("barCategoryGap"); - seriesInfoList.push({ - bandWidth, - barWidth, - barMaxWidth, - barMinWidth, - barGap, - barCategoryGap, - axisKey: getAxisKey(baseAxis), - stackId: getSeriesStackId(seriesModel) - }); - }); - return doCalBarWidthAndOffset(seriesInfoList); -} -function doCalBarWidthAndOffset(seriesInfoList) { - var columnsMap = {}; - each$2(seriesInfoList, function(seriesInfo, idx) { - var axisKey = seriesInfo.axisKey; - var bandWidth = seriesInfo.bandWidth; - var columnsOnAxis = columnsMap[axisKey] || { - bandWidth, - remainedWidth: bandWidth, - autoWidthCount: 0, - categoryGap: null, - gap: "20%", - stacks: {} - }; - var stacks = columnsOnAxis.stacks; - columnsMap[axisKey] = columnsOnAxis; - var stackId = seriesInfo.stackId; - if (!stacks[stackId]) { - columnsOnAxis.autoWidthCount++; - } - stacks[stackId] = stacks[stackId] || { - width: 0, - maxWidth: 0 - }; - var barWidth = seriesInfo.barWidth; - if (barWidth && !stacks[stackId].width) { - stacks[stackId].width = barWidth; - barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth); - columnsOnAxis.remainedWidth -= barWidth; - } - var barMaxWidth = seriesInfo.barMaxWidth; - barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth); - var barMinWidth = seriesInfo.barMinWidth; - barMinWidth && (stacks[stackId].minWidth = barMinWidth); - var barGap = seriesInfo.barGap; - barGap != null && (columnsOnAxis.gap = barGap); - var barCategoryGap = seriesInfo.barCategoryGap; - barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap); - }); - var result = {}; - each$2(columnsMap, function(columnsOnAxis, coordSysName) { - result[coordSysName] = {}; - var stacks = columnsOnAxis.stacks; - var bandWidth = columnsOnAxis.bandWidth; - var categoryGapPercent = columnsOnAxis.categoryGap; - if (categoryGapPercent == null) { - var columnCount = keys(stacks).length; - categoryGapPercent = Math.max(35 - columnCount * 4, 15) + "%"; - } - var categoryGap = parsePercent(categoryGapPercent, bandWidth); - var barGapPercent = parsePercent(columnsOnAxis.gap, 1); - var remainedWidth = columnsOnAxis.remainedWidth; - var autoWidthCount = columnsOnAxis.autoWidthCount; - var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent); - autoWidth = Math.max(autoWidth, 0); - each$2(stacks, function(column) { - var maxWidth = column.maxWidth; - var minWidth = column.minWidth; - if (!column.width) { - var finalWidth = autoWidth; - if (maxWidth && maxWidth < finalWidth) { - finalWidth = Math.min(maxWidth, remainedWidth); - } - if (minWidth && minWidth > finalWidth) { - finalWidth = minWidth; - } - if (finalWidth !== autoWidth) { - column.width = finalWidth; - remainedWidth -= finalWidth + barGapPercent * finalWidth; - autoWidthCount--; - } - } else { - var finalWidth = column.width; - if (maxWidth) { - finalWidth = Math.min(finalWidth, maxWidth); - } - if (minWidth) { - finalWidth = Math.max(finalWidth, minWidth); - } - column.width = finalWidth; - remainedWidth -= finalWidth + barGapPercent * finalWidth; - autoWidthCount--; - } - }); - autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent); - autoWidth = Math.max(autoWidth, 0); - var widthSum = 0; - var lastColumn; - each$2(stacks, function(column, idx) { - if (!column.width) { - column.width = autoWidth; - } - lastColumn = column; - widthSum += column.width * (1 + barGapPercent); - }); - if (lastColumn) { - widthSum -= lastColumn.width * barGapPercent; - } - var offset = -widthSum / 2; - each$2(stacks, function(column, stackId) { - result[coordSysName][stackId] = result[coordSysName][stackId] || { - bandWidth, - offset, - width: column.width - }; - offset += column.width * (1 + barGapPercent); - }); - }); - return result; -} -function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) { - if (barWidthAndOffset && axis) { - var result = barWidthAndOffset[getAxisKey(axis)]; - if (result != null && seriesModel != null) { - return result[getSeriesStackId(seriesModel)]; - } - return result; - } -} -function layout(seriesType2, ecModel) { - var seriesModels = prepareLayoutBarSeries(seriesType2, ecModel); - var barWidthAndOffset = makeColumnLayout(seriesModels); - each$2(seriesModels, function(seriesModel) { - var data = seriesModel.getData(); - var cartesian = seriesModel.coordinateSystem; - var baseAxis = cartesian.getBaseAxis(); - var stackId = getSeriesStackId(seriesModel); - var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId]; - var columnOffset = columnLayoutInfo.offset; - var columnWidth = columnLayoutInfo.width; - data.setLayout({ - bandWidth: columnLayoutInfo.bandWidth, - offset: columnOffset, - size: columnWidth - }); - }); -} -function createProgressiveLayout(seriesType2) { - return { - seriesType: seriesType2, - plan: createRenderPlanner(), - reset: function(seriesModel) { - if (!isOnCartesian(seriesModel)) { - return; - } - var data = seriesModel.getData(); - var cartesian = seriesModel.coordinateSystem; - var baseAxis = cartesian.getBaseAxis(); - var valueAxis = cartesian.getOtherAxis(baseAxis); - var valueDimIdx = data.getDimensionIndex(data.mapDimension(valueAxis.dim)); - var baseDimIdx = data.getDimensionIndex(data.mapDimension(baseAxis.dim)); - var drawBackground = seriesModel.get("showBackground", true); - var valueDim = data.mapDimension(valueAxis.dim); - var stackResultDim = data.getCalculationInfo("stackResultDimension"); - var stacked = isDimensionStacked(data, valueDim) && !!data.getCalculationInfo("stackedOnSeries"); - var isValueAxisH = valueAxis.isHorizontal(); - var valueAxisStart = getValueAxisStart(baseAxis, valueAxis); - var isLarge = isInLargeMode(seriesModel); - var barMinHeight = seriesModel.get("barMinHeight") || 0; - var stackedDimIdx = stackResultDim && data.getDimensionIndex(stackResultDim); - var columnWidth = data.getLayout("size"); - var columnOffset = data.getLayout("offset"); - return { - progress: function(params, data2) { - var count = params.count; - var largePoints = isLarge && createFloat32Array(count * 3); - var largeBackgroundPoints = isLarge && drawBackground && createFloat32Array(count * 3); - var largeDataIndices = isLarge && createFloat32Array(count); - var coordLayout = cartesian.master.getRect(); - var bgSize = isValueAxisH ? coordLayout.width : coordLayout.height; - var dataIndex; - var store = data2.getStore(); - var idxOffset = 0; - while ((dataIndex = params.next()) != null) { - var value = store.get(stacked ? stackedDimIdx : valueDimIdx, dataIndex); - var baseValue = store.get(baseDimIdx, dataIndex); - var baseCoord = valueAxisStart; - var startValue = void 0; - if (stacked) { - startValue = +value - store.get(valueDimIdx, dataIndex); - } - var x = void 0; - var y = void 0; - var width = void 0; - var height = void 0; - if (isValueAxisH) { - var coord = cartesian.dataToPoint([value, baseValue]); - if (stacked) { - var startCoord = cartesian.dataToPoint([startValue, baseValue]); - baseCoord = startCoord[0]; - } - x = baseCoord; - y = coord[1] + columnOffset; - width = coord[0] - baseCoord; - height = columnWidth; - if (Math.abs(width) < barMinHeight) { - width = (width < 0 ? -1 : 1) * barMinHeight; - } - } else { - var coord = cartesian.dataToPoint([baseValue, value]); - if (stacked) { - var startCoord = cartesian.dataToPoint([baseValue, startValue]); - baseCoord = startCoord[1]; - } - x = coord[0] + columnOffset; - y = baseCoord; - width = columnWidth; - height = coord[1] - baseCoord; - if (Math.abs(height) < barMinHeight) { - height = (height <= 0 ? -1 : 1) * barMinHeight; - } - } - if (!isLarge) { - data2.setItemLayout(dataIndex, { - x, - y, - width, - height - }); - } else { - largePoints[idxOffset] = x; - largePoints[idxOffset + 1] = y; - largePoints[idxOffset + 2] = isValueAxisH ? width : height; - if (largeBackgroundPoints) { - largeBackgroundPoints[idxOffset] = isValueAxisH ? coordLayout.x : x; - largeBackgroundPoints[idxOffset + 1] = isValueAxisH ? y : coordLayout.y; - largeBackgroundPoints[idxOffset + 2] = bgSize; - } - largeDataIndices[dataIndex] = dataIndex; - } - idxOffset += 3; - } - if (isLarge) { - data2.setLayout({ - largePoints, - largeDataIndices, - largeBackgroundPoints, - valueAxisHorizontal: isValueAxisH - }); - } - } - }; - } - }; -} -function isOnCartesian(seriesModel) { - return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === "cartesian2d"; -} -function isInLargeMode(seriesModel) { - return seriesModel.pipelineContext && seriesModel.pipelineContext.large; -} -function getValueAxisStart(baseAxis, valueAxis) { - return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === "log" ? 1 : 0)); -} -var bisect = function(a, x, lo, hi) { - while (lo < hi) { - var mid = lo + hi >>> 1; - if (a[mid][1] < x) { - lo = mid + 1; - } else { - hi = mid; - } - } - return lo; -}; -var TimeScale = ( - /** @class */ - function(_super) { - __extends(TimeScale2, _super); - function TimeScale2(settings) { - var _this = _super.call(this, settings) || this; - _this.type = "time"; - return _this; - } - TimeScale2.prototype.getLabel = function(tick) { - var useUTC = this.getSetting("useUTC"); - return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting("locale")); - }; - TimeScale2.prototype.getFormattedLabel = function(tick, idx, labelFormatter) { - var isUTC = this.getSetting("useUTC"); - var lang = this.getSetting("locale"); - return leveledFormat(tick, idx, labelFormatter, lang, isUTC); - }; - TimeScale2.prototype.getTicks = function() { - var interval = this._interval; - var extent3 = this._extent; - var ticks = []; - if (!interval) { - return ticks; - } - ticks.push({ - value: extent3[0], - level: 0 - }); - var useUTC = this.getSetting("useUTC"); - var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent3); - ticks = ticks.concat(innerTicks); - ticks.push({ - value: extent3[1], - level: 0 - }); - return ticks; - }; - TimeScale2.prototype.calcNiceExtent = function(opt) { - var extent3 = this._extent; - if (extent3[0] === extent3[1]) { - extent3[0] -= ONE_DAY; - extent3[1] += ONE_DAY; - } - if (extent3[1] === -Infinity && extent3[0] === Infinity) { - var d = /* @__PURE__ */ new Date(); - extent3[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate()); - extent3[0] = extent3[1] - ONE_DAY; - } - this.calcNiceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); - }; - TimeScale2.prototype.calcNiceTicks = function(approxTickNum, minInterval, maxInterval) { - approxTickNum = approxTickNum || 10; - var extent3 = this._extent; - var span = extent3[1] - extent3[0]; - this._approxInterval = span / approxTickNum; - if (minInterval != null && this._approxInterval < minInterval) { - this._approxInterval = minInterval; - } - if (maxInterval != null && this._approxInterval > maxInterval) { - this._approxInterval = maxInterval; - } - var scaleIntervalsLen = scaleIntervals.length; - var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1); - this._interval = scaleIntervals[idx][1]; - this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0]; - }; - TimeScale2.prototype.parse = function(val) { - return isNumber(val) ? val : +parseDate(val); - }; - TimeScale2.prototype.contain = function(val) { - return contain$1(this.parse(val), this._extent); - }; - TimeScale2.prototype.normalize = function(val) { - return normalize(this.parse(val), this._extent); - }; - TimeScale2.prototype.scale = function(val) { - return scale(val, this._extent); - }; - TimeScale2.type = "time"; - return TimeScale2; - }(IntervalScale$1) -); -var scaleIntervals = [ - // Format interval - ["second", ONE_SECOND], - ["minute", ONE_MINUTE], - ["hour", ONE_HOUR], - ["quarter-day", ONE_HOUR * 6], - ["half-day", ONE_HOUR * 12], - ["day", ONE_DAY * 1.2], - ["half-week", ONE_DAY * 3.5], - ["week", ONE_DAY * 7], - ["month", ONE_DAY * 31], - ["quarter", ONE_DAY * 95], - ["half-year", ONE_YEAR / 2], - ["year", ONE_YEAR] - // 1Y -]; -function isUnitValueSame(unit, valueA, valueB, isUTC) { - var dateA = parseDate(valueA); - var dateB = parseDate(valueB); - var isSame = function(unit2) { - return getUnitValue(dateA, unit2, isUTC) === getUnitValue(dateB, unit2, isUTC); - }; - var isSameYear = function() { - return isSame("year"); - }; - var isSameMonth = function() { - return isSameYear() && isSame("month"); - }; - var isSameDay = function() { - return isSameMonth() && isSame("day"); - }; - var isSameHour = function() { - return isSameDay() && isSame("hour"); - }; - var isSameMinute = function() { - return isSameHour() && isSame("minute"); - }; - var isSameSecond = function() { - return isSameMinute() && isSame("second"); - }; - var isSameMilliSecond = function() { - return isSameSecond() && isSame("millisecond"); - }; - switch (unit) { - case "year": - return isSameYear(); - case "month": - return isSameMonth(); - case "day": - return isSameDay(); - case "hour": - return isSameHour(); - case "minute": - return isSameMinute(); - case "second": - return isSameSecond(); - case "millisecond": - return isSameMilliSecond(); - } -} -function getDateInterval(approxInterval, daysInMonth) { - approxInterval /= ONE_DAY; - return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1; -} -function getMonthInterval(approxInterval) { - var APPROX_ONE_MONTH = 30 * ONE_DAY; - approxInterval /= APPROX_ONE_MONTH; - return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1; -} -function getHourInterval(approxInterval) { - approxInterval /= ONE_HOUR; - return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1; -} -function getMinutesAndSecondsInterval(approxInterval, isMinutes) { - approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND; - return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1; -} -function getMillisecondsInterval(approxInterval) { - return nice(approxInterval, true); -} -function getFirstTimestampOfUnit(date, unitName, isUTC) { - var outDate = new Date(date); - switch (getPrimaryTimeUnit(unitName)) { - case "year": - case "month": - outDate[monthSetterName(isUTC)](0); - case "day": - outDate[dateSetterName(isUTC)](1); - case "hour": - outDate[hoursSetterName(isUTC)](0); - case "minute": - outDate[minutesSetterName(isUTC)](0); - case "second": - outDate[secondsSetterName(isUTC)](0); - outDate[millisecondsSetterName(isUTC)](0); - } - return outDate.getTime(); -} -function getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent3) { - var safeLimit = 1e4; - var unitNames = timeUnits; - var iter = 0; - function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out2) { - var date = new Date(minTimestamp); - var dateTime = minTimestamp; - var d = date[getMethodName](); - while (dateTime < maxTimestamp && dateTime <= extent3[1]) { - out2.push({ - value: dateTime - }); - d += interval; - date[setMethodName](d); - dateTime = date.getTime(); - } - out2.push({ - value: dateTime, - notAdd: true - }); - } - function addLevelTicks(unitName, lastLevelTicks, levelTicks2) { - var newAddedTicks = []; - var isFirstLevel = !lastLevelTicks.length; - if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent3[0], extent3[1], isUTC)) { - return; - } - if (isFirstLevel) { - lastLevelTicks = [{ - // TODO Optimize. Not include so may ticks. - value: getFirstTimestampOfUnit(new Date(extent3[0]), unitName, isUTC) - }, { - value: extent3[1] - }]; - } - for (var i2 = 0; i2 < lastLevelTicks.length - 1; i2++) { - var startTick = lastLevelTicks[i2].value; - var endTick = lastLevelTicks[i2 + 1].value; - if (startTick === endTick) { - continue; - } - var interval = void 0; - var getterName = void 0; - var setterName = void 0; - var isDate = false; - switch (unitName) { - case "year": - interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365)); - getterName = fullYearGetterName(isUTC); - setterName = fullYearSetterName(isUTC); - break; - case "half-year": - case "quarter": - case "month": - interval = getMonthInterval(approxInterval); - getterName = monthGetterName(isUTC); - setterName = monthSetterName(isUTC); - break; - case "week": - case "half-week": - case "day": - interval = getDateInterval(approxInterval); - getterName = dateGetterName(isUTC); - setterName = dateSetterName(isUTC); - isDate = true; - break; - case "half-day": - case "quarter-day": - case "hour": - interval = getHourInterval(approxInterval); - getterName = hoursGetterName(isUTC); - setterName = hoursSetterName(isUTC); - break; - case "minute": - interval = getMinutesAndSecondsInterval(approxInterval, true); - getterName = minutesGetterName(isUTC); - setterName = minutesSetterName(isUTC); - break; - case "second": - interval = getMinutesAndSecondsInterval(approxInterval, false); - getterName = secondsGetterName(isUTC); - setterName = secondsSetterName(isUTC); - break; - case "millisecond": - interval = getMillisecondsInterval(approxInterval); - getterName = millisecondsGetterName(isUTC); - setterName = millisecondsSetterName(isUTC); - break; - } - addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks); - if (unitName === "year" && levelTicks2.length > 1 && i2 === 0) { - levelTicks2.unshift({ - value: levelTicks2[0].value - interval - }); - } - } - for (var i2 = 0; i2 < newAddedTicks.length; i2++) { - levelTicks2.push(newAddedTicks[i2]); - } - return newAddedTicks; - } - var levelsTicks = []; - var currentLevelTicks = []; - var tickCount = 0; - var lastLevelTickCount = 0; - for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) { - var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]); - if (!isPrimaryTimeUnit(unitNames[i])) { - continue; - } - addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks); - var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null; - if (primaryTimeUnit !== nextPrimaryTimeUnit) { - if (currentLevelTicks.length) { - lastLevelTickCount = tickCount; - currentLevelTicks.sort(function(a, b) { - return a.value - b.value; - }); - var levelTicksRemoveDuplicated = []; - for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) { - var tickValue = currentLevelTicks[i_1].value; - if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) { - levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]); - if (tickValue >= extent3[0] && tickValue <= extent3[1]) { - tickCount++; - } - } - } - var targetTickNum = (extent3[1] - extent3[0]) / approxInterval; - if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) { - break; - } - levelsTicks.push(levelTicksRemoveDuplicated); - if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) { - break; - } - } - currentLevelTicks = []; - } - } - var levelsTicksInExtent = filter(map$1(levelsTicks, function(levelTicks2) { - return filter(levelTicks2, function(tick) { - return tick.value >= extent3[0] && tick.value <= extent3[1] && !tick.notAdd; - }); - }), function(levelTicks2) { - return levelTicks2.length > 0; - }); - var ticks = []; - var maxLevel = levelsTicksInExtent.length - 1; - for (var i = 0; i < levelsTicksInExtent.length; ++i) { - var levelTicks = levelsTicksInExtent[i]; - for (var k = 0; k < levelTicks.length; ++k) { - ticks.push({ - value: levelTicks[k].value, - level: maxLevel - i - }); - } - } - ticks.sort(function(a, b) { - return a.value - b.value; - }); - var result = []; - for (var i = 0; i < ticks.length; ++i) { - if (i === 0 || ticks[i].value !== ticks[i - 1].value) { - result.push(ticks[i]); - } - } - return result; -} -Scale$1.registerClass(TimeScale); -const TimeScale$1 = TimeScale; -var scaleProto = Scale$1.prototype; -var intervalScaleProto = IntervalScale$1.prototype; -var roundingErrorFix = round; -var mathFloor = Math.floor; -var mathCeil = Math.ceil; -var mathPow = Math.pow; -var mathLog = Math.log; -var LogScale = ( - /** @class */ - function(_super) { - __extends(LogScale2, _super); - function LogScale2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "log"; - _this.base = 10; - _this._originalScale = new IntervalScale$1(); - _this._interval = 0; - return _this; - } - LogScale2.prototype.getTicks = function(expandToNicedExtent) { - var originalScale = this._originalScale; - var extent3 = this._extent; - var originalExtent = originalScale.getExtent(); - var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent); - return map$1(ticks, function(tick) { - var val = tick.value; - var powVal = round(mathPow(this.base, val)); - powVal = val === extent3[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal; - powVal = val === extent3[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal; - return { - value: powVal - }; - }, this); - }; - LogScale2.prototype.setExtent = function(start, end) { - var base2 = mathLog(this.base); - start = mathLog(Math.max(0, start)) / base2; - end = mathLog(Math.max(0, end)) / base2; - intervalScaleProto.setExtent.call(this, start, end); - }; - LogScale2.prototype.getExtent = function() { - var base2 = this.base; - var extent3 = scaleProto.getExtent.call(this); - extent3[0] = mathPow(base2, extent3[0]); - extent3[1] = mathPow(base2, extent3[1]); - var originalScale = this._originalScale; - var originalExtent = originalScale.getExtent(); - this._fixMin && (extent3[0] = fixRoundingError(extent3[0], originalExtent[0])); - this._fixMax && (extent3[1] = fixRoundingError(extent3[1], originalExtent[1])); - return extent3; - }; - LogScale2.prototype.unionExtent = function(extent3) { - this._originalScale.unionExtent(extent3); - var base2 = this.base; - extent3[0] = mathLog(extent3[0]) / mathLog(base2); - extent3[1] = mathLog(extent3[1]) / mathLog(base2); - scaleProto.unionExtent.call(this, extent3); - }; - LogScale2.prototype.unionExtentFromData = function(data, dim) { - this.unionExtent(data.getApproximateExtent(dim)); - }; - LogScale2.prototype.calcNiceTicks = function(approxTickNum) { - approxTickNum = approxTickNum || 10; - var extent3 = this._extent; - var span = extent3[1] - extent3[0]; - if (span === Infinity || span <= 0) { - return; - } - var interval = quantity(span); - var err = approxTickNum / span * interval; - if (err <= 0.5) { - interval *= 10; - } - while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) { - interval *= 10; - } - var niceExtent = [round(mathCeil(extent3[0] / interval) * interval), round(mathFloor(extent3[1] / interval) * interval)]; - this._interval = interval; - this._niceExtent = niceExtent; - }; - LogScale2.prototype.calcNiceExtent = function(opt) { - intervalScaleProto.calcNiceExtent.call(this, opt); - this._fixMin = opt.fixMin; - this._fixMax = opt.fixMax; - }; - LogScale2.prototype.parse = function(val) { - return val; - }; - LogScale2.prototype.contain = function(val) { - val = mathLog(val) / mathLog(this.base); - return contain$1(val, this._extent); - }; - LogScale2.prototype.normalize = function(val) { - val = mathLog(val) / mathLog(this.base); - return normalize(val, this._extent); - }; - LogScale2.prototype.scale = function(val) { - val = scale(val, this._extent); - return mathPow(this.base, val); - }; - LogScale2.type = "log"; - return LogScale2; - }(Scale$1) -); -var proto = LogScale.prototype; -proto.getMinorTicks = intervalScaleProto.getMinorTicks; -proto.getLabel = intervalScaleProto.getLabel; -function fixRoundingError(val, originalVal) { - return roundingErrorFix(val, getPrecision(originalVal)); -} -Scale$1.registerClass(LogScale); -const LogScale$1 = LogScale; -var ScaleRawExtentInfo = ( - /** @class */ - function() { - function ScaleRawExtentInfo2(scale2, model, originalExtent) { - this._prepareParams(scale2, model, originalExtent); - } - ScaleRawExtentInfo2.prototype._prepareParams = function(scale2, model, dataExtent) { - if (dataExtent[1] < dataExtent[0]) { - dataExtent = [NaN, NaN]; - } - this._dataMin = dataExtent[0]; - this._dataMax = dataExtent[1]; - var isOrdinal = this._isOrdinal = scale2.type === "ordinal"; - this._needCrossZero = scale2.type === "interval" && model.getNeedCrossZero && model.getNeedCrossZero(); - var modelMinRaw = this._modelMinRaw = model.get("min", true); - if (isFunction(modelMinRaw)) { - this._modelMinNum = parseAxisModelMinMax(scale2, modelMinRaw({ - min: dataExtent[0], - max: dataExtent[1] - })); - } else if (modelMinRaw !== "dataMin") { - this._modelMinNum = parseAxisModelMinMax(scale2, modelMinRaw); - } - var modelMaxRaw = this._modelMaxRaw = model.get("max", true); - if (isFunction(modelMaxRaw)) { - this._modelMaxNum = parseAxisModelMinMax(scale2, modelMaxRaw({ - min: dataExtent[0], - max: dataExtent[1] - })); - } else if (modelMaxRaw !== "dataMax") { - this._modelMaxNum = parseAxisModelMinMax(scale2, modelMaxRaw); - } - if (isOrdinal) { - this._axisDataLen = model.getCategories().length; - } else { - var boundaryGap = model.get("boundaryGap"); - var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0]; - if (typeof boundaryGapArr[0] === "boolean" || typeof boundaryGapArr[1] === "boolean") { - this._boundaryGapInner = [0, 0]; - } else { - this._boundaryGapInner = [parsePercent$1(boundaryGapArr[0], 1), parsePercent$1(boundaryGapArr[1], 1)]; - } - } - }; - ScaleRawExtentInfo2.prototype.calculate = function() { - var isOrdinal = this._isOrdinal; - var dataMin = this._dataMin; - var dataMax = this._dataMax; - var axisDataLen = this._axisDataLen; - var boundaryGapInner = this._boundaryGapInner; - var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null; - var min2 = this._modelMinRaw === "dataMin" ? dataMin : this._modelMinNum; - var max2 = this._modelMaxRaw === "dataMax" ? dataMax : this._modelMaxNum; - var minFixed = min2 != null; - var maxFixed = max2 != null; - if (min2 == null) { - min2 = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span; - } - if (max2 == null) { - max2 = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span; - } - (min2 == null || !isFinite(min2)) && (min2 = NaN); - (max2 == null || !isFinite(max2)) && (max2 = NaN); - var isBlank = eqNaN(min2) || eqNaN(max2) || isOrdinal && !axisDataLen; - if (this._needCrossZero) { - if (min2 > 0 && max2 > 0 && !minFixed) { - min2 = 0; - } - if (min2 < 0 && max2 < 0 && !maxFixed) { - max2 = 0; - } - } - var determinedMin = this._determinedMin; - var determinedMax = this._determinedMax; - if (determinedMin != null) { - min2 = determinedMin; - minFixed = true; - } - if (determinedMax != null) { - max2 = determinedMax; - maxFixed = true; - } - return { - min: min2, - max: max2, - minFixed, - maxFixed, - isBlank - }; - }; - ScaleRawExtentInfo2.prototype.modifyDataMinMax = function(minMaxName, val) { - this[DATA_MIN_MAX_ATTR[minMaxName]] = val; - }; - ScaleRawExtentInfo2.prototype.setDeterminedMinMax = function(minMaxName, val) { - var attr = DETERMINED_MIN_MAX_ATTR[minMaxName]; - this[attr] = val; - }; - ScaleRawExtentInfo2.prototype.freeze = function() { - this.frozen = true; - }; - return ScaleRawExtentInfo2; - }() -); -var DETERMINED_MIN_MAX_ATTR = { - min: "_determinedMin", - max: "_determinedMax" -}; -var DATA_MIN_MAX_ATTR = { - min: "_dataMin", - max: "_dataMax" -}; -function ensureScaleRawExtentInfo(scale2, model, originalExtent) { - var rawExtentInfo = scale2.rawExtentInfo; - if (rawExtentInfo) { - return rawExtentInfo; - } - rawExtentInfo = new ScaleRawExtentInfo(scale2, model, originalExtent); - scale2.rawExtentInfo = rawExtentInfo; - return rawExtentInfo; -} -function parseAxisModelMinMax(scale2, minMax) { - return minMax == null ? null : eqNaN(minMax) ? NaN : scale2.parse(minMax); -} -function getScaleExtent(scale2, model) { - var scaleType = scale2.type; - var rawExtentResult = ensureScaleRawExtentInfo(scale2, model, scale2.getExtent()).calculate(); - scale2.setBlank(rawExtentResult.isBlank); - var min2 = rawExtentResult.min; - var max2 = rawExtentResult.max; - var ecModel = model.ecModel; - if (ecModel && scaleType === "time") { - var barSeriesModels = prepareLayoutBarSeries("bar", ecModel); - var isBaseAxisAndHasBarSeries_1 = false; - each$2(barSeriesModels, function(seriesModel) { - isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis; - }); - if (isBaseAxisAndHasBarSeries_1) { - var barWidthAndOffset = makeColumnLayout(barSeriesModels); - var adjustedScale = adjustScaleForOverflow(min2, max2, model, barWidthAndOffset); - min2 = adjustedScale.min; - max2 = adjustedScale.max; - } - } - return { - extent: [min2, max2], - // "fix" means "fixed", the value should not be - // changed in the subsequent steps. - fixMin: rawExtentResult.minFixed, - fixMax: rawExtentResult.maxFixed - }; -} -function adjustScaleForOverflow(min2, max2, model, barWidthAndOffset) { - var axisExtent = model.axis.getExtent(); - var axisLength = axisExtent[1] - axisExtent[0]; - var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis); - if (barsOnCurrentAxis === void 0) { - return { - min: min2, - max: max2 - }; - } - var minOverflow = Infinity; - each$2(barsOnCurrentAxis, function(item) { - minOverflow = Math.min(item.offset, minOverflow); - }); - var maxOverflow = -Infinity; - each$2(barsOnCurrentAxis, function(item) { - maxOverflow = Math.max(item.offset + item.width, maxOverflow); - }); - minOverflow = Math.abs(minOverflow); - maxOverflow = Math.abs(maxOverflow); - var totalOverFlow = minOverflow + maxOverflow; - var oldRange = max2 - min2; - var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength; - var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange; - max2 += overflowBuffer * (maxOverflow / totalOverFlow); - min2 -= overflowBuffer * (minOverflow / totalOverFlow); - return { - min: min2, - max: max2 - }; -} -function niceScaleExtent(scale2, inModel) { - var model = inModel; - var extentInfo = getScaleExtent(scale2, model); - var extent3 = extentInfo.extent; - var splitNumber = model.get("splitNumber"); - if (scale2 instanceof LogScale$1) { - scale2.base = model.get("logBase"); - } - var scaleType = scale2.type; - var interval = model.get("interval"); - var isIntervalOrTime = scaleType === "interval" || scaleType === "time"; - scale2.setExtent(extent3[0], extent3[1]); - scale2.calcNiceExtent({ - splitNumber, - fixMin: extentInfo.fixMin, - fixMax: extentInfo.fixMax, - minInterval: isIntervalOrTime ? model.get("minInterval") : null, - maxInterval: isIntervalOrTime ? model.get("maxInterval") : null - }); - if (interval != null) { - scale2.setInterval && scale2.setInterval(interval); - } -} -function createScaleByModel(model, axisType) { - axisType = axisType || model.get("type"); - if (axisType) { - switch (axisType) { - case "category": - return new OrdinalScale$1({ - ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(), - extent: [Infinity, -Infinity] - }); - case "time": - return new TimeScale$1({ - locale: model.ecModel.getLocaleModel(), - useUTC: model.ecModel.get("useUTC") - }); - default: - return new (Scale$1.getClass(axisType) || IntervalScale$1)(); - } - } -} -function ifAxisCrossZero(axis) { - var dataExtent = axis.scale.getExtent(); - var min2 = dataExtent[0]; - var max2 = dataExtent[1]; - return !(min2 > 0 && max2 > 0 || min2 < 0 && max2 < 0); -} -function makeLabelFormatter(axis) { - var labelFormatter = axis.getLabelModel().get("formatter"); - var categoryTickStart = axis.type === "category" ? axis.scale.getExtent()[0] : null; - if (axis.scale.type === "time") { - return function(tpl) { - return function(tick, idx) { - return axis.scale.getFormattedLabel(tick, idx, tpl); - }; - }(labelFormatter); - } else if (isString(labelFormatter)) { - return function(tpl) { - return function(tick) { - var label = axis.scale.getLabel(tick); - var text = tpl.replace("{value}", label != null ? label : ""); - return text; - }; - }(labelFormatter); - } else if (isFunction(labelFormatter)) { - return function(cb) { - return function(tick, idx) { - if (categoryTickStart != null) { - idx = tick.value - categoryTickStart; - } - return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? { - level: tick.level - } : null); - }; - }(labelFormatter); - } else { - return function(tick) { - return axis.scale.getLabel(tick); - }; - } -} -function getAxisRawValue(axis, tick) { - return axis.type === "category" ? axis.scale.getLabel(tick) : tick.value; -} -function estimateLabelUnionRect(axis) { - var axisModel = axis.model; - var scale2 = axis.scale; - if (!axisModel.get(["axisLabel", "show"]) || scale2.isBlank()) { - return; - } - var realNumberScaleTicks; - var tickCount; - var categoryScaleExtent = scale2.getExtent(); - if (scale2 instanceof OrdinalScale$1) { - tickCount = scale2.count(); - } else { - realNumberScaleTicks = scale2.getTicks(); - tickCount = realNumberScaleTicks.length; - } - var axisLabelModel = axis.getLabelModel(); - var labelFormatter = makeLabelFormatter(axis); - var rect; - var step = 1; - if (tickCount > 40) { - step = Math.ceil(tickCount / 40); - } - for (var i = 0; i < tickCount; i += step) { - var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : { - value: categoryScaleExtent[0] + i - }; - var label = labelFormatter(tick, i); - var unrotatedSingleRect = axisLabelModel.getTextRect(label); - var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get("rotate") || 0); - rect ? rect.union(singleRect) : rect = singleRect; - } - return rect; -} -function rotateTextRect(textRect, rotate) { - var rotateRadians = rotate * Math.PI / 180; - var beforeWidth = textRect.width; - var beforeHeight = textRect.height; - var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians)); - var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians)); - var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight); - return rotatedRect; -} -function getOptionCategoryInterval(model) { - var interval = model.get("interval"); - return interval == null ? "auto" : interval; -} -function shouldShowAllLabels(axis) { - return axis.type === "category" && getOptionCategoryInterval(axis.getLabelModel()) === 0; -} -function getDataDimensionsOnAxis(data, axisDim) { - var dataDimMap = {}; - each$2(data.mapDimensionsAll(axisDim), function(dataDim) { - dataDimMap[getStackedDimension(data, dataDim)] = true; - }); - return keys(dataDimMap); -} -function unionAxisExtentFromData(dataExtent, data, axisDim) { - if (data) { - each$2(getDataDimensionsOnAxis(data, axisDim), function(dim) { - var seriesExtent = data.getApproximateExtent(dim); - seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]); - seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]); - }); - } -} -var AxisModelCommonMixin = ( - /** @class */ - function() { - function AxisModelCommonMixin2() { - } - AxisModelCommonMixin2.prototype.getNeedCrossZero = function() { - var option = this.option; - return !option.scale; - }; - AxisModelCommonMixin2.prototype.getCoordSysModel = function() { - return; - }; - return AxisModelCommonMixin2; - }() -); -var extensions = []; -var extensionRegisters = { - registerPreprocessor, - registerProcessor, - registerPostInit, - registerPostUpdate, - registerUpdateLifecycle, - registerAction, - registerCoordinateSystem, - registerLayout, - registerVisual, - registerTransform, - registerLoading, - registerMap, - registerImpl, - PRIORITY, - ComponentModel: ComponentModel$1, - ComponentView: ComponentView$1, - SeriesModel: SeriesModel$1, - ChartView: ChartView$1, - // TODO Use ComponentModel and SeriesModel instead of Constructor - registerComponentModel: function(ComponentModelClass) { - ComponentModel$1.registerClass(ComponentModelClass); - }, - registerComponentView: function(ComponentViewClass) { - ComponentView$1.registerClass(ComponentViewClass); - }, - registerSeriesModel: function(SeriesModelClass) { - SeriesModel$1.registerClass(SeriesModelClass); - }, - registerChartView: function(ChartViewClass) { - ChartView$1.registerClass(ChartViewClass); - }, - registerSubTypeDefaulter: function(componentType, defaulter) { - ComponentModel$1.registerSubTypeDefaulter(componentType, defaulter); - }, - registerPainter: function(painterType, PainterCtor) { - registerPainter(painterType, PainterCtor); - } -}; -function use(ext) { - if (isArray(ext)) { - each$2(ext, function(singleExt) { - use(singleExt); - }); - return; - } - if (indexOf(extensions, ext) >= 0) { - return; - } - extensions.push(ext); - if (isFunction(ext)) { - ext = { - install: ext - }; - } - ext.install(extensionRegisters); -} -var EPSILON = 1e-8; -function isAroundEqual(a, b) { - return Math.abs(a - b) < EPSILON; -} -function contain(points2, x, y) { - var w = 0; - var p = points2[0]; - if (!p) { - return false; - } - for (var i = 1; i < points2.length; i++) { - var p2 = points2[i]; - w += windingLine(p[0], p[1], p2[0], p2[1], x, y); - p = p2; - } - var p0 = points2[0]; - if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) { - w += windingLine(p[0], p[1], p0[0], p0[1], x, y); - } - return w !== 0; -} -var TMP_TRANSFORM = []; -function transformPoints(points2, transform) { - for (var p = 0; p < points2.length; p++) { - applyTransform$1(points2[p], points2[p], transform); - } -} -function updateBBoxFromPoints(points2, min$1, max$1, projection) { - for (var i = 0; i < points2.length; i++) { - var p = points2[i]; - if (projection) { - p = projection.project(p); - } - if (p && isFinite(p[0]) && isFinite(p[1])) { - min(min$1, min$1, p); - max(max$1, max$1, p); - } - } -} -function centroid(points2) { - var signedArea = 0; - var cx = 0; - var cy = 0; - var len = points2.length; - var x0 = points2[len - 1][0]; - var y0 = points2[len - 1][1]; - for (var i = 0; i < len; i++) { - var x1 = points2[i][0]; - var y1 = points2[i][1]; - var a = x0 * y1 - x1 * y0; - signedArea += a; - cx += (x0 + x1) * a; - cy += (y0 + y1) * a; - x0 = x1; - y0 = y1; - } - return signedArea ? [cx / signedArea / 3, cy / signedArea / 3, signedArea] : [points2[0][0] || 0, points2[0][1] || 0]; -} -var Region = ( - /** @class */ - function() { - function Region2(name) { - this.name = name; - } - Region2.prototype.setCenter = function(center2) { - this._center = center2; - }; - Region2.prototype.getCenter = function() { - var center2 = this._center; - if (!center2) { - center2 = this._center = this.calcCenter(); - } - return center2; - }; - return Region2; - }() -); -var GeoJSONPolygonGeometry = ( - /** @class */ - function() { - function GeoJSONPolygonGeometry2(exterior, interiors) { - this.type = "polygon"; - this.exterior = exterior; - this.interiors = interiors; - } - return GeoJSONPolygonGeometry2; - }() -); -var GeoJSONLineStringGeometry = ( - /** @class */ - function() { - function GeoJSONLineStringGeometry2(points2) { - this.type = "linestring"; - this.points = points2; - } - return GeoJSONLineStringGeometry2; - }() -); -var GeoJSONRegion = ( - /** @class */ - function(_super) { - __extends(GeoJSONRegion2, _super); - function GeoJSONRegion2(name, geometries, cp) { - var _this = _super.call(this, name) || this; - _this.type = "geoJSON"; - _this.geometries = geometries; - _this._center = cp && [cp[0], cp[1]]; - return _this; - } - GeoJSONRegion2.prototype.calcCenter = function() { - var geometries = this.geometries; - var largestGeo; - var largestGeoSize = 0; - for (var i = 0; i < geometries.length; i++) { - var geo = geometries[i]; - var exterior = geo.exterior; - var size = exterior && exterior.length; - if (size > largestGeoSize) { - largestGeo = geo; - largestGeoSize = size; - } - } - if (largestGeo) { - return centroid(largestGeo.exterior); - } - var rect = this.getBoundingRect(); - return [rect.x + rect.width / 2, rect.y + rect.height / 2]; - }; - GeoJSONRegion2.prototype.getBoundingRect = function(projection) { - var rect = this._rect; - if (rect && !projection) { - return rect; - } - var min2 = [Infinity, Infinity]; - var max2 = [-Infinity, -Infinity]; - var geometries = this.geometries; - each$2(geometries, function(geo) { - if (geo.type === "polygon") { - updateBBoxFromPoints(geo.exterior, min2, max2, projection); - } else { - each$2(geo.points, function(points2) { - updateBBoxFromPoints(points2, min2, max2, projection); - }); - } - }); - if (!(isFinite(min2[0]) && isFinite(min2[1]) && isFinite(max2[0]) && isFinite(max2[1]))) { - min2[0] = min2[1] = max2[0] = max2[1] = 0; - } - rect = new BoundingRect(min2[0], min2[1], max2[0] - min2[0], max2[1] - min2[1]); - if (!projection) { - this._rect = rect; - } - return rect; - }; - GeoJSONRegion2.prototype.contain = function(coord) { - var rect = this.getBoundingRect(); - var geometries = this.geometries; - if (!rect.contain(coord[0], coord[1])) { - return false; - } - loopGeo: - for (var i = 0, len = geometries.length; i < len; i++) { - var geo = geometries[i]; - if (geo.type !== "polygon") { - continue; - } - var exterior = geo.exterior; - var interiors = geo.interiors; - if (contain(exterior, coord[0], coord[1])) { - for (var k = 0; k < (interiors ? interiors.length : 0); k++) { - if (contain(interiors[k], coord[0], coord[1])) { - continue loopGeo; - } - } - return true; - } - } - return false; - }; - GeoJSONRegion2.prototype.transformTo = function(x, y, width, height) { - var rect = this.getBoundingRect(); - var aspect = rect.width / rect.height; - if (!width) { - width = aspect * height; - } else if (!height) { - height = width / aspect; - } - var target = new BoundingRect(x, y, width, height); - var transform = rect.calculateTransform(target); - var geometries = this.geometries; - for (var i = 0; i < geometries.length; i++) { - var geo = geometries[i]; - if (geo.type === "polygon") { - transformPoints(geo.exterior, transform); - each$2(geo.interiors, function(interior) { - transformPoints(interior, transform); - }); - } else { - each$2(geo.points, function(points2) { - transformPoints(points2, transform); - }); - } - } - rect = this._rect; - rect.copy(target); - this._center = [rect.x + rect.width / 2, rect.y + rect.height / 2]; - }; - GeoJSONRegion2.prototype.cloneShallow = function(name) { - name == null && (name = this.name); - var newRegion = new GeoJSONRegion2(name, this.geometries, this._center); - newRegion._rect = this._rect; - newRegion.transformTo = null; - return newRegion; - }; - return GeoJSONRegion2; - }(Region) -); -var GeoSVGRegion = ( - /** @class */ - function(_super) { - __extends(GeoSVGRegion2, _super); - function GeoSVGRegion2(name, elOnlyForCalculate) { - var _this = _super.call(this, name) || this; - _this.type = "geoSVG"; - _this._elOnlyForCalculate = elOnlyForCalculate; - return _this; - } - GeoSVGRegion2.prototype.calcCenter = function() { - var el = this._elOnlyForCalculate; - var rect = el.getBoundingRect(); - var center2 = [rect.x + rect.width / 2, rect.y + rect.height / 2]; - var mat = identity(TMP_TRANSFORM); - var target = el; - while (target && !target.isGeoSVGGraphicRoot) { - mul(mat, target.getLocalTransform(), mat); - target = target.parent; - } - invert(mat, mat); - applyTransform$1(center2, center2, mat); - return center2; - }; - return GeoSVGRegion2; - }(Region) -); -function decode(json) { - if (!json.UTF8Encoding) { - return json; - } - var jsonCompressed = json; - var encodeScale = jsonCompressed.UTF8Scale; - if (encodeScale == null) { - encodeScale = 1024; - } - var features = jsonCompressed.features; - each$2(features, function(feature) { - var geometry = feature.geometry; - var encodeOffsets = geometry.encodeOffsets; - var coordinates = geometry.coordinates; - if (!encodeOffsets) { - return; - } - switch (geometry.type) { - case "LineString": - geometry.coordinates = decodeRing(coordinates, encodeOffsets, encodeScale); - break; - case "Polygon": - decodeRings(coordinates, encodeOffsets, encodeScale); - break; - case "MultiLineString": - decodeRings(coordinates, encodeOffsets, encodeScale); - break; - case "MultiPolygon": - each$2(coordinates, function(rings, idx) { - return decodeRings(rings, encodeOffsets[idx], encodeScale); - }); - } - }); - jsonCompressed.UTF8Encoding = false; - return jsonCompressed; -} -function decodeRings(rings, encodeOffsets, encodeScale) { - for (var c = 0; c < rings.length; c++) { - rings[c] = decodeRing(rings[c], encodeOffsets[c], encodeScale); - } -} -function decodeRing(coordinate, encodeOffsets, encodeScale) { - var result = []; - var prevX = encodeOffsets[0]; - var prevY = encodeOffsets[1]; - for (var i = 0; i < coordinate.length; i += 2) { - var x = coordinate.charCodeAt(i) - 64; - var y = coordinate.charCodeAt(i + 1) - 64; - x = x >> 1 ^ -(x & 1); - y = y >> 1 ^ -(y & 1); - x += prevX; - y += prevY; - prevX = x; - prevY = y; - result.push([x / encodeScale, y / encodeScale]); - } - return result; -} -function parseGeoJSON(geoJson, nameProperty) { - geoJson = decode(geoJson); - return map$1(filter(geoJson.features, function(featureObj) { - return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0; - }), function(featureObj) { - var properties = featureObj.properties; - var geo = featureObj.geometry; - var geometries = []; - switch (geo.type) { - case "Polygon": - var coordinates = geo.coordinates; - geometries.push(new GeoJSONPolygonGeometry(coordinates[0], coordinates.slice(1))); - break; - case "MultiPolygon": - each$2(geo.coordinates, function(item) { - if (item[0]) { - geometries.push(new GeoJSONPolygonGeometry(item[0], item.slice(1))); - } - }); - break; - case "LineString": - geometries.push(new GeoJSONLineStringGeometry([geo.coordinates])); - break; - case "MultiLineString": - geometries.push(new GeoJSONLineStringGeometry(geo.coordinates)); - } - var region = new GeoJSONRegion(properties[nameProperty || "name"], geometries, properties.cp); - region.properties = properties; - return region; - }); -} -var inner = makeInner(); -function createAxisLabels(axis) { - return axis.type === "category" ? makeCategoryLabels(axis) : makeRealNumberLabels(axis); -} -function createAxisTicks(axis, tickModel) { - return axis.type === "category" ? makeCategoryTicks(axis, tickModel) : { - ticks: map$1(axis.scale.getTicks(), function(tick) { - return tick.value; - }) - }; -} -function makeCategoryLabels(axis) { - var labelModel = axis.getLabelModel(); - var result = makeCategoryLabelsActually(axis, labelModel); - return !labelModel.get("show") || axis.scale.isBlank() ? { - labels: [], - labelCategoryInterval: result.labelCategoryInterval - } : result; -} -function makeCategoryLabelsActually(axis, labelModel) { - var labelsCache = getListCache(axis, "labels"); - var optionLabelInterval = getOptionCategoryInterval(labelModel); - var result = listCacheGet(labelsCache, optionLabelInterval); - if (result) { - return result; - } - var labels; - var numericLabelInterval; - if (isFunction(optionLabelInterval)) { - labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval); - } else { - numericLabelInterval = optionLabelInterval === "auto" ? makeAutoCategoryInterval(axis) : optionLabelInterval; - labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval); - } - return listCacheSet(labelsCache, optionLabelInterval, { - labels, - labelCategoryInterval: numericLabelInterval - }); -} -function makeCategoryTicks(axis, tickModel) { - var ticksCache = getListCache(axis, "ticks"); - var optionTickInterval = getOptionCategoryInterval(tickModel); - var result = listCacheGet(ticksCache, optionTickInterval); - if (result) { - return result; - } - var ticks; - var tickCategoryInterval; - if (!tickModel.get("show") || axis.scale.isBlank()) { - ticks = []; - } - if (isFunction(optionTickInterval)) { - ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true); - } else if (optionTickInterval === "auto") { - var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel()); - tickCategoryInterval = labelsResult.labelCategoryInterval; - ticks = map$1(labelsResult.labels, function(labelItem) { - return labelItem.tickValue; - }); - } else { - tickCategoryInterval = optionTickInterval; - ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true); - } - return listCacheSet(ticksCache, optionTickInterval, { - ticks, - tickCategoryInterval - }); -} -function makeRealNumberLabels(axis) { - var ticks = axis.scale.getTicks(); - var labelFormatter = makeLabelFormatter(axis); - return { - labels: map$1(ticks, function(tick, idx) { - return { - level: tick.level, - formattedLabel: labelFormatter(tick, idx), - rawLabel: axis.scale.getLabel(tick), - tickValue: tick.value - }; - }) - }; -} -function getListCache(axis, prop) { - return inner(axis)[prop] || (inner(axis)[prop] = []); -} -function listCacheGet(cache, key) { - for (var i = 0; i < cache.length; i++) { - if (cache[i].key === key) { - return cache[i].value; - } - } -} -function listCacheSet(cache, key, value) { - cache.push({ - key, - value - }); - return value; -} -function makeAutoCategoryInterval(axis) { - var result = inner(axis).autoInterval; - return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval(); -} -function calculateCategoryInterval(axis) { - var params = fetchAutoCategoryIntervalCalculationParams(axis); - var labelFormatter = makeLabelFormatter(axis); - var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI; - var ordinalScale = axis.scale; - var ordinalExtent = ordinalScale.getExtent(); - var tickCount = ordinalScale.count(); - if (ordinalExtent[1] - ordinalExtent[0] < 1) { - return 0; - } - var step = 1; - if (tickCount > 40) { - step = Math.max(1, Math.floor(tickCount / 40)); - } - var tickValue = ordinalExtent[0]; - var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue); - var unitW = Math.abs(unitSpan * Math.cos(rotation)); - var unitH = Math.abs(unitSpan * Math.sin(rotation)); - var maxW = 0; - var maxH = 0; - for (; tickValue <= ordinalExtent[1]; tickValue += step) { - var width = 0; - var height = 0; - var rect = getBoundingRect(labelFormatter({ - value: tickValue - }), params.font, "center", "top"); - width = rect.width * 1.3; - height = rect.height * 1.3; - maxW = Math.max(maxW, width, 7); - maxH = Math.max(maxH, height, 7); - } - var dw = maxW / unitW; - var dh = maxH / unitH; - isNaN(dw) && (dw = Infinity); - isNaN(dh) && (dh = Infinity); - var interval = Math.max(0, Math.floor(Math.min(dw, dh))); - var cache = inner(axis.model); - var axisExtent = axis.getExtent(); - var lastAutoInterval = cache.lastAutoInterval; - var lastTickCount = cache.lastTickCount; - if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) { - interval = lastAutoInterval; - } else { - cache.lastTickCount = tickCount; - cache.lastAutoInterval = interval; - cache.axisExtent0 = axisExtent[0]; - cache.axisExtent1 = axisExtent[1]; - } - return interval; -} -function fetchAutoCategoryIntervalCalculationParams(axis) { - var labelModel = axis.getLabelModel(); - return { - axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0, - labelRotate: labelModel.get("rotate") || 0, - font: labelModel.getFont() - }; -} -function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) { - var labelFormatter = makeLabelFormatter(axis); - var ordinalScale = axis.scale; - var ordinalExtent = ordinalScale.getExtent(); - var labelModel = axis.getLabelModel(); - var result = []; - var step = Math.max((categoryInterval || 0) + 1, 1); - var startTick = ordinalExtent[0]; - var tickCount = ordinalScale.count(); - if (startTick !== 0 && step > 1 && tickCount / step > 2) { - startTick = Math.round(Math.ceil(startTick / step) * step); - } - var showAllLabel = shouldShowAllLabels(axis); - var includeMinLabel = labelModel.get("showMinLabel") || showAllLabel; - var includeMaxLabel = labelModel.get("showMaxLabel") || showAllLabel; - if (includeMinLabel && startTick !== ordinalExtent[0]) { - addItem(ordinalExtent[0]); - } - var tickValue = startTick; - for (; tickValue <= ordinalExtent[1]; tickValue += step) { - addItem(tickValue); - } - if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) { - addItem(ordinalExtent[1]); - } - function addItem(tickValue2) { - var tickObj = { - value: tickValue2 - }; - result.push(onlyTick ? tickValue2 : { - formattedLabel: labelFormatter(tickObj), - rawLabel: ordinalScale.getLabel(tickObj), - tickValue: tickValue2 - }); - } - return result; -} -function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) { - var ordinalScale = axis.scale; - var labelFormatter = makeLabelFormatter(axis); - var result = []; - each$2(ordinalScale.getTicks(), function(tick) { - var rawLabel = ordinalScale.getLabel(tick); - var tickValue = tick.value; - if (categoryInterval(tick.value, rawLabel)) { - result.push(onlyTick ? tickValue : { - formattedLabel: labelFormatter(tick), - rawLabel, - tickValue - }); - } - }); - return result; -} -var NORMALIZED_EXTENT = [0, 1]; -var Axis = ( - /** @class */ - function() { - function Axis2(dim, scale2, extent3) { - this.onBand = false; - this.inverse = false; - this.dim = dim; - this.scale = scale2; - this._extent = extent3 || [0, 0]; - } - Axis2.prototype.contain = function(coord) { - var extent3 = this._extent; - var min2 = Math.min(extent3[0], extent3[1]); - var max2 = Math.max(extent3[0], extent3[1]); - return coord >= min2 && coord <= max2; - }; - Axis2.prototype.containData = function(data) { - return this.scale.contain(data); - }; - Axis2.prototype.getExtent = function() { - return this._extent.slice(); - }; - Axis2.prototype.getPixelPrecision = function(dataExtent) { - return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent); - }; - Axis2.prototype.setExtent = function(start, end) { - var extent3 = this._extent; - extent3[0] = start; - extent3[1] = end; - }; - Axis2.prototype.dataToCoord = function(data, clamp2) { - var extent3 = this._extent; - var scale2 = this.scale; - data = scale2.normalize(data); - if (this.onBand && scale2.type === "ordinal") { - extent3 = extent3.slice(); - fixExtentWithBands(extent3, scale2.count()); - } - return linearMap(data, NORMALIZED_EXTENT, extent3, clamp2); - }; - Axis2.prototype.coordToData = function(coord, clamp2) { - var extent3 = this._extent; - var scale2 = this.scale; - if (this.onBand && scale2.type === "ordinal") { - extent3 = extent3.slice(); - fixExtentWithBands(extent3, scale2.count()); - } - var t = linearMap(coord, extent3, NORMALIZED_EXTENT, clamp2); - return this.scale.scale(t); - }; - Axis2.prototype.pointToData = function(point, clamp2) { - return; - }; - Axis2.prototype.getTicksCoords = function(opt) { - opt = opt || {}; - var tickModel = opt.tickModel || this.getTickModel(); - var result = createAxisTicks(this, tickModel); - var ticks = result.ticks; - var ticksCoords = map$1(ticks, function(tickVal) { - return { - coord: this.dataToCoord(this.scale.type === "ordinal" ? this.scale.getRawOrdinalNumber(tickVal) : tickVal), - tickValue: tickVal - }; - }, this); - var alignWithLabel = tickModel.get("alignWithLabel"); - fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp); - return ticksCoords; - }; - Axis2.prototype.getMinorTicksCoords = function() { - if (this.scale.type === "ordinal") { - return []; - } - var minorTickModel = this.model.getModel("minorTick"); - var splitNumber = minorTickModel.get("splitNumber"); - if (!(splitNumber > 0 && splitNumber < 100)) { - splitNumber = 5; - } - var minorTicks = this.scale.getMinorTicks(splitNumber); - var minorTicksCoords = map$1(minorTicks, function(minorTicksGroup) { - return map$1(minorTicksGroup, function(minorTick) { - return { - coord: this.dataToCoord(minorTick), - tickValue: minorTick - }; - }, this); - }, this); - return minorTicksCoords; - }; - Axis2.prototype.getViewLabels = function() { - return createAxisLabels(this).labels; - }; - Axis2.prototype.getLabelModel = function() { - return this.model.getModel("axisLabel"); - }; - Axis2.prototype.getTickModel = function() { - return this.model.getModel("axisTick"); - }; - Axis2.prototype.getBandWidth = function() { - var axisExtent = this._extent; - var dataExtent = this.scale.getExtent(); - var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0); - len === 0 && (len = 1); - var size = Math.abs(axisExtent[1] - axisExtent[0]); - return Math.abs(size) / len; - }; - Axis2.prototype.calculateCategoryInterval = function() { - return calculateCategoryInterval(this); - }; - return Axis2; - }() -); -function fixExtentWithBands(extent3, nTick) { - var size = extent3[1] - extent3[0]; - var len = nTick; - var margin = size / len / 2; - extent3[0] += margin; - extent3[1] -= margin; -} -function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp2) { - var ticksLen = ticksCoords.length; - if (!axis.onBand || alignWithLabel || !ticksLen) { - return; - } - var axisExtent = axis.getExtent(); - var last; - var diffSize; - if (ticksLen === 1) { - ticksCoords[0].coord = axisExtent[0]; - last = ticksCoords[1] = { - coord: axisExtent[0] - }; - } else { - var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue; - var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen; - each$2(ticksCoords, function(ticksItem) { - ticksItem.coord -= shift_1 / 2; - }); - var dataExtent = axis.scale.getExtent(); - diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue; - last = { - coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize - }; - ticksCoords.push(last); - } - var inverse = axisExtent[0] > axisExtent[1]; - if (littleThan(ticksCoords[0].coord, axisExtent[0])) { - clamp2 ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift(); - } - if (clamp2 && littleThan(axisExtent[0], ticksCoords[0].coord)) { - ticksCoords.unshift({ - coord: axisExtent[0] - }); - } - if (littleThan(axisExtent[1], last.coord)) { - clamp2 ? last.coord = axisExtent[1] : ticksCoords.pop(); - } - if (clamp2 && littleThan(last.coord, axisExtent[1])) { - ticksCoords.push({ - coord: axisExtent[1] - }); - } - function littleThan(a, b) { - a = round(a); - b = round(b); - return inverse ? a > b : a < b; - } -} -const Axis$1 = Axis; -export { - makePath as $, - AxisModelCommonMixin as A, - remRadian as B, - round as C, - format as D, - Arc$1 as E, - BezierCurve$1 as F, - Circle$1 as G, - Ellipse$1 as H, - Group$1 as I, - IncrementalDisplayable$1 as J, - LinearGradient$1 as K, - Line$1 as L, - Model$1 as M, - Polyline$1 as N, - Ring$1 as O, - Polygon$1 as P, - clipPointsByRect as Q, - RadialGradient$1 as R, - Sector$1 as S, - clipRectByRect as T, - createIcon as U, - extendPath as V, - extendShape as W, - getShapeClass as X, - getTransform as Y, - initProps as Z, - makeImage as _, - createTextStyle as a, - makeSeriesEncodeForAxisCoordSys as a$, - mergePath as a0, - registerShape as a1, - resizePath as a2, - updateProps as a3, - addCommas as a4, - capitalFirst as a5, - formatTime as a6, - formatTpl as a7, - getTooltipMarker as a8, - normalizeCssArray as a9, - registerLoading as aA, - setCanvasCreator as aB, - registerMap as aC, - getMap as aD, - registerTransform as aE, - dataTool as aF, - registerLocale as aG, - zrender as aH, - SeriesData$1 as aI, - throttle as aJ, - use as aK, - parseGeoJSON as aL, - Axis$1 as aM, - isSourceInstance as aN, - createSourceFromSeriesDataOption as aO, - shouldOmitUnusedDimensions as aP, - ensureSourceDimNameMap as aQ, - createDimNameMap as aR, - CtorInt32Array$1 as aS, - normalizeToArray as aT, - VISUAL_DIMENSIONS as aU, - guessOrdinal as aV, - BE_ORDINAL as aW, - SeriesDataSchema as aX, - SeriesDimensionDefine$1 as aY, - SINGLE_REFERRING as aZ, - SOURCE_FORMAT_ORIGINAL as a_, - toCamelCase as aa, - ComponentModel$1 as ab, - ComponentView$1 as ac, - SeriesModel$1 as ad, - ChartView$1 as ae, - version as af, - dependencies as ag, - PRIORITY as ah, - init as ai, - connect as aj, - disConnect as ak, - disconnect as al, - dispose as am, - getInstanceByDom as an, - getInstanceById as ao, - registerTheme as ap, - registerPreprocessor as aq, - registerProcessor as ar, - registerPostInit as as, - registerPostUpdate as at, - registerUpdateLifecycle as au, - registerAction as av, - registerCoordinateSystem as aw, - getCoordinateSystemDimensions as ax, - registerLayout as ay, - registerVisual as az, - createSymbol as b, - fetchLayoutMode as b$, - getDataItemValue as b0, - CoordinateSystem as b1, - getDimensionTypeByAxis as b2, - DISPLAY_STATES as b3, - SPECIAL_STATES as b4, - createFloat32Array as b5, - convertToColorString as b6, - setStatesStylesFromModel as b7, - toggleHoverEmphasis as b8, - queryDataIndex as b9, - removeElement as bA, - convertOptionIdName as bB, - getDecalFromPalette as bC, - positionElement as bD, - getAvailableSize as bE, - makeStyleMapper as bF, - DataDiffer$1 as bG, - windowOpen as bH, - isHighDownDispatcher as bI, - setAsHighDownDispatcher as bJ, - enableHoverFocus as bK, - defaultSeriesFormatTooltip as bL, - setCommonECData as bM, - animateLabelValue as bN, - enterEmphasis as bO, - leaveEmphasis as bP, - groupData as bQ, - SOURCE_FORMAT_ARRAY_ROWS as bR, - throwError as bS, - subPixelOptimize as bT, - normalizeSymbolOffset as bU, - createOrUpdatePatternFromDecal as bV, - createTextConfig as bW, - getLayoutOnAxis as bX, - getFont as bY, - OrientedBoundingRect$1 as bZ, - retrieveRawValue as b_, - setStatesFlag as ba, - setLabelStyle as bb, - getLabelStatesModels as bc, - interpolateRawValues as bd, - labelInner as be, - createRenderPlanner as bf, - inheritDefaultOption as bg, - traverseElements as bh, - saveOldStyle as bi, - removeElementWithFadeOut as bj, - setLabelValueAnimation as bk, - layout as bl, - createProgressiveLayout as bm, - parsePercent as bn, - makeSeriesEncodeForNameBased as bo, - getPercentSeats as bp, - defaultEmphasis as bq, - makeInner as br, - createLegacyDataSelectAction as bs, - graphic as bt, - normalizeSymbolSize as bu, - retrieveVisualColorForTooltipMarker as bv, - createTooltipMarkup as bw, - Z2_EMPHASIS_LIFT as bx, - HOVER_STATE_BLUR as by, - setDefaultStateProxy as bz, - createScaleByModel as c, - symbolBuildProxies as c$, - getLayoutParams as c0, - mergeLayoutParam as c1, - OrdinalMeta$1 as c2, - IntervalScale$1 as c3, - getScaleExtent as c4, - increaseInterval as c5, - estimateLabelUnionRect as c6, - getDataDimensionsOnAxis as c7, - ifAxisCrossZero as c8, - isIntervalOrLogScale as c9, - unionAxisExtentFromData as cA, - ensureScaleRawExtentInfo as cB, - box as cC, - addEventListener as cD, - parseFinder as cE, - registerInternalOptionCreator as cF, - makeInternalComponentId as cG, - normalizeEvent as cH, - getPaddingFromTooltipModel as cI, - getTooltipRenderMode as cJ, - normalizeTooltipFormatResult as cK, - buildTooltipMarkup as cL, - preParseFinder as cM, - queryReferringComponents as cN, - TooltipMarkupStyleCreator as cO, - getItemVisualFromData as cP, - setItemVisualFromData as cQ, - contain as cR, - linePolygonIntersect as cS, - DataFormatMixin as cT, - TimeScale$1 as cU, - OrdinalScale$1 as cV, - parseDataValue as cW, - enterBlur as cX, - leaveBlur as cY, - getVisualFromData as cZ, - isNameSpecified as c_, - subPixelOptimizeLine as ca, - setTooltipConfig as cb, - shouldShowAllLabels as cc, - groupTransition as cd, - isMiddleOrRightButtonOnMouseUpDown as ce, - stop as cf, - createFromString as cg, - GeoSVGRegion as ch, - GeoJSONRegion as ci, - getUID as cj, - enableComponentHighDownFeatures as ck, - findEventDispatcher as cl, - warn as cm, - createOrUpdate as cn, - clear as co, - applyTransform as cp, - transformDirection as cq, - getAnimationConfig as cr, - getAxisRawValue as cs, - sizeCalculable as ct, - formatTplSimple as cu, - getLocaleModel as cv, - mappingToExists as cw, - copyLayoutParams as cx, - LOCATION_PARAMS as cy, - MULTIPLE_REFERRING as cz, - enableHoverEmphasis as d, - compressBatches as d0, - getRawValueParser as d1, - createFilterComparator as d2, - SortOrderComparator as d3, - SOURCE_FORMAT_OBJECT_ROWS as d4, - SourceManager as d5, - disableTransformOptionMerge as d6, - SERIES_LAYOUT_BY_COLUMN as d7, - enableDataStack as e, - getECData as f, - getStackedDimension as g, - getLayoutRect as h, - isDimensionStacked as i, - MAX_SAFE_INTEGER as j, - asc as k, - getPercentWithPrecision as l, - getPixelPrecision as m, - niceScaleExtent as n, - getPrecision as o, - getPrecisionSafe as p, - isNumeric as q, - isRadianAroundZero as r, - linearMap as s, - nice as t, - numericToNumber as u, - parseDate as v, - quantile as w, - quantity as x, - quantityExponent as y, - reformIntervals as z -}; diff --git a/templates/assets/dist/assets/Axis-b5ea7d9c.js b/templates/assets/dist/assets/Axis-b5ea7d9c.js new file mode 100644 index 00000000..4a9e8d4e --- /dev/null +++ b/templates/assets/dist/assets/Axis-b5ea7d9c.js @@ -0,0 +1,16 @@ +import{z as K,D as oc,E as sc,_ as V,F as lt,B as be,g as w,G as uc,H as lc,j as fe,I as Zi,J as fc,q as P,K as Qe,L as cc,M as vc,N as Fe,O as J,P as Ki,Q as Qi,s as on,p as O,o as z,S as re,T as Ra,l as E,U as Ue,V as H,k as hc,h as A,n as Y,W as uu,X as Q,Y as wn,$ as Ji,a0 as dc,a1 as Ot,a2 as ka,a3 as nr,a4 as ar,a5 as pc,a6 as gc,a7 as Yn,a8 as ji,a9 as eo,aa as lu,ab as to,ac as ro,ad as mc,ae as no,af as ao,ag as io,ah as oo,ai as Te,aj as yc,a as bn,ak as fu,al as cu,f as Ye,R as it,am as _c,an as Sc,ao as vu,ap as bt,aq as wc,C as bc,Z as yr,ar as Mn,r as ae,c as X,m as Mt,as as Mc,e as _e,d as ui,at as Ie,i as Ce,b as me,au as sn,av as Tc,aw as Dc,ax as hu,A as Cc,y as xc,ay as Ic,az as so,aA as La,aB as uo,aC as Ac}from"./graphic-083f2b2f.js";var Ct=function(){function e(t,r){this.target=t,this.topTarget=r&&r.topTarget}return e}(),Ec=function(){function e(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return e.prototype._dragStart=function(t){for(var r=t.target;r&&!r.draggable;)r=r.parent||r.__hostTarget;r&&(this._draggingTarget=r,r.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new Ct(r,t),"dragstart",t.event))},e.prototype._drag=function(t){var r=this._draggingTarget;if(r){var n=t.offsetX,a=t.offsetY,i=n-this._x,o=a-this._y;this._x=n,this._y=a,r.drift(i,o,t),this.handler.dispatchToElement(new Ct(r,t),"drag",t.event);var s=this.handler.findHover(n,a,r).target,u=this._dropTarget;this._dropTarget=s,r!==s&&(u&&s!==u&&this.handler.dispatchToElement(new Ct(u,t),"dragleave",t.event),s&&s!==u&&this.handler.dispatchToElement(new Ct(s,t),"dragenter",t.event))}},e.prototype._dragEnd=function(t){var r=this._draggingTarget;r&&(r.dragging=!1),this.handler.dispatchToElement(new Ct(r,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new Ct(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},e}();const Rc=Ec;var kc=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Xn=[],Lc=K.browser.firefox&&+K.browser.version.split(".")[0]<39;function Pa(e,t,r,n){return r=r||{},n?lo(e,t,r):Lc&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):lo(e,t,r),r}function lo(e,t,r){if(K.domSupported&&e.getBoundingClientRect){var n=t.clientX,a=t.clientY;if(oc(e)){var i=e.getBoundingClientRect();r.zrX=n-i.left,r.zrY=a-i.top;return}else if(sc(Xn,e,n,a)){r.zrX=Xn[0],r.zrY=Xn[1];return}}r.zrX=r.zrY=0}function li(e){return e||window.event}function Pe(e,t,r){if(t=li(t),t.zrX!=null)return t;var n=t.type,a=n&&n.indexOf("touch")>=0;if(a){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&Pa(e,o,t,r)}else{Pa(e,t,t,r);var i=Pc(t);t.zrDelta=i?i/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&kc.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function Pc(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var a=Math.abs(n!==0?n:r),i=n>0?-1:n<0?1:r>0?-1:1;return 3*a*i}function Oc(e,t,r,n){e.addEventListener(t,r,n)}function Nc(e,t,r,n){e.removeEventListener(t,r,n)}var Bc=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0};function $y(e){return e.which===2||e.which===3}var Fc=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var a=t.touches;if(a){for(var i={points:[],touches:[],target:r,event:t},o=0,s=a.length;o1&&n&&n.length>1){var i=fo(n)/fo(a);!isFinite(i)&&(i=1),t.pinchScale=i;var o=zc(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}},du="silent";function Vc(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:Gc}}function Gc(){Bc(this.event)}var Hc=function(e){V(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(lt),Wt=function(){function e(t,r){this.x=t,this.y=r}return e}(),Uc=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],qn=new be(0,0,0,0),pu=function(e){V(t,e);function t(r,n,a,i,o){var s=e.call(this)||this;return s._hovered=new Wt(0,0),s.storage=r,s.painter=n,s.painterRoot=i,s._pointerSize=o,a=a||new Hc,s.proxy=null,s.setHandlerProxy(a),s._draggingMgr=new Rc(s),s}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(w(Uc,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,a=r.zrY,i=gu(this,n,a),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var u=this._hovered=i?new Wt(n,a):this.findHover(n,a),l=u.target,v=this.proxy;v.setCursor&&v.setCursor(l?l.cursor:"default"),s&&l!==s&&this.dispatchToElement(o,"mouseout",r),this.dispatchToElement(u,"mousemove",r),l&&l!==s&&this.dispatchToElement(u,"mouseover",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",r),n!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:r})},t.prototype.resize=function(){this._hovered=new Wt(0,0)},t.prototype.dispatch=function(r,n){var a=this[r];a&&a.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,a){r=r||{};var i=r.target;if(!(i&&i.silent)){for(var o="on"+n,s=Vc(n,r,a);i&&(i[o]&&(s.cancelBubble=!!i[o].call(i,s)),i.trigger(n,s),i=i.__hostTarget?i.__hostTarget:i.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(n,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(u){typeof u[o]=="function"&&u[o].call(u,s),u.trigger&&u.trigger(n,s)}))}},t.prototype.findHover=function(r,n,a){var i=this.storage.getDisplayList(),o=new Wt(r,n);if(co(i,o,r,n,a),this._pointerSize&&!o.target){for(var s=[],u=this._pointerSize,l=u/2,v=new be(r-l,n-l,u,u),c=i.length-1;c>=0;c--){var h=i[c];h!==a&&!h.ignore&&!h.ignoreCoarsePointer&&(!h.parent||!h.parent.ignoreCoarsePointer)&&(qn.copy(h.getBoundingRect()),h.transform&&qn.applyTransform(h.transform),qn.intersect(v)&&s.push(h))}if(s.length)for(var f=4,d=Math.PI/12,m=Math.PI*2,p=0;p4)return;this._downPoint=null}this.dispatchToElement(i,e,t)}});function Wc(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,a=void 0,i=!1;n;){if(n.ignoreClip&&(i=!0),!i){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1;n.silent&&(a=!0)}var s=n.__hostTarget;n=s||n.parent}return a?du:!0}return!1}function co(e,t,r,n,a){for(var i=e.length-1;i>=0;i--){var o=e[i],s=void 0;if(o!==a&&!o.ignore&&(s=Wc(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==du)){t.target=o;break}}}function gu(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}const Yc=pu;var mu=32,Yt=7;function Xc(e){for(var t=0;e>=mu;)t|=e&1,e>>=1;return e+t}function vo(e,t,r,n){var a=t+1;if(a===r)return 1;if(n(e[a++],e[t])<0){for(;a=0;)a++;return a-t}function $c(e,t,r){for(r--;t>>1,a(i,e[u])<0?s=u:o=u+1;var l=n-o;switch(l){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;l>0;)e[o+l]=e[o+l-1],l--}e[o]=i}}function Zn(e,t,r,n,a,i){var o=0,s=0,u=1;if(i(e,t[r+a])>0){for(s=n-a;u0;)o=u,u=(u<<1)+1,u<=0&&(u=s);u>s&&(u=s),o+=a,u+=a}else{for(s=a+1;us&&(u=s);var l=o;o=a-u,u=a-l}for(o++;o>>1);i(e,t[r+v])>0?o=v+1:u=v}return u}function Kn(e,t,r,n,a,i){var o=0,s=0,u=1;if(i(e,t[r+a])<0){for(s=a+1;us&&(u=s);var l=o;o=a-u,u=a-l}else{for(s=n-a;u=0;)o=u,u=(u<<1)+1,u<=0&&(u=s);u>s&&(u=s),o+=a,u+=a}for(o++;o>>1);i(e,t[r+v])<0?u=v:o=v+1}return u}function qc(e,t){var r=Yt,n,a,i=0;e.length;var o=[];n=[],a=[];function s(f,d){n[i]=f,a[i]=d,i+=1}function u(){for(;i>1;){var f=i-2;if(f>=1&&a[f-1]<=a[f]+a[f+1]||f>=2&&a[f-2]<=a[f]+a[f-1])a[f-1]a[f+1])break;v(f)}}function l(){for(;i>1;){var f=i-2;f>0&&a[f-1]=Yt||T>=Yt);if(C)break;M<0&&(M=0),M+=2}if(r=M,r<1&&(r=1),d===1){for(g=0;g=0;g--)e[b+g]=e[M+g];e[S]=o[_];return}for(var T=r;;){var C=0,D=0,x=!1;do if(t(o[_],e[y])<0){if(e[S--]=e[y--],C++,D=0,--d===0){x=!0;break}}else if(e[S--]=o[_--],D++,C=0,--p===1){x=!0;break}while((C|D)=0;g--)e[b+g]=e[M+g];if(d===0){x=!0;break}}if(e[S--]=o[_--],--p===1){x=!0;break}if(D=p-Zn(e[y],o,0,p,p-1,t),D!==0){for(S-=D,_-=D,p-=D,b=S+1,M=_+1,g=0;g=Yt||D>=Yt);if(x)break;T<0&&(T=0),T+=2}if(r=T,r<1&&(r=1),p===1){for(S-=d,y-=d,b=S+1,M=y+1,g=d-1;g>=0;g--)e[b+g]=e[M+g];e[S]=o[_]}else{if(p===0)throw new Error;for(M=S-(p-1),g=0;gs&&(u=s),ho(e,r,r+u,r+i,t),i=u}o.pushRun(r,i),o.mergeRuns(),a-=i,r+=i}while(a!==0);o.forceMergeRuns()}}var po=!1;function Qn(){po||(po=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function go(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var Zc=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=go}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(v.__clipPaths=[]),isNaN(v.z)&&(Qn(),v.z=0),isNaN(v.z2)&&(Qn(),v.z2=0),isNaN(v.zlevel)&&(Qn(),v.zlevel=0),this._displayList[this._displayListLen++]=v}var c=t.getDecalElement&&t.getDecalElement();c&&this._updateAndAddDisplayable(c,r,n);var h=t.getTextGuideLine();h&&this._updateAndAddDisplayable(h,r,n);var f=t.getTextContent();f&&this._updateAndAddDisplayable(f,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r=0&&this._roots.splice(a,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}();const Kc=Zc;function Pt(){return new Date().getTime()}var Qc=function(e){V(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,a=r.next;n?n.next=a:this._head=a,a?a.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=Pt()-this._pausedTime,a=n-this._time,i=this._head;i;){var o=i.next,s=i.step(n,a);s&&(i.ondestroy(),this.removeClip(i)),i=o}this._time=n,r||(this.trigger("frame",a),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(Zi(n),!r._paused&&r.update())}Zi(n)},t.prototype.start=function(){this._running||(this._time=Pt(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=Pt(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=Pt()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var a=new fc(r,n.loop);return this.addAnimator(a),a},t}(lt);const Jc=Qc;var jc=300,Jn=K.domSupported,jn=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=P(e,function(a){var i=a.replace("mouse","pointer");return r.hasOwnProperty(i)?i:a});return{mouse:e,touch:t,pointer:n}}(),mo={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},yo=!1;function Oa(e){var t=e.pointerType;return t==="pen"||t==="touch"}function ev(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function ea(e){e&&(e.zrByTouch=!0)}function tv(e,t){return Pe(e.dom,new rv(e,t),!0)}function yu(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var rv=function(){function e(t,r){this.stopPropagation=Qe,this.stopImmediatePropagation=Qe,this.preventDefault=Qe,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),Oe={mousedown:function(e){e=Pe(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Pe(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Pe(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Pe(this.dom,e);var t=e.toElement||e.relatedTarget;yu(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){yo=!0,e=Pe(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){yo||(e=Pe(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Pe(this.dom,e),ea(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),Oe.mousemove.call(this,e),Oe.mousedown.call(this,e)},touchmove:function(e){e=Pe(this.dom,e),ea(e),this.handler.processGesture(e,"change"),Oe.mousemove.call(this,e)},touchend:function(e){e=Pe(this.dom,e),ea(e),this.handler.processGesture(e,"end"),Oe.mouseup.call(this,e),+new Date-+this.__lastTouchMoment=0&&(a.splice(i,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var a=fe(this._children,r);return a>=0&&this.replaceAt(n,a),this},t.prototype.replaceAt=function(r,n){var a=this._children,i=a[n];if(r&&r!==this&&r.parent!==this&&r!==i){a[n]=r,i.parent=null;var o=this.__zr;o&&i.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,a=this._children,i=fe(a,r);return i<0?this:(a.splice(i,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,a=0;a0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover()},e.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},e.prototype.clearAnimation=function(){this.animation.clear()},e.prototype.getWidth=function(){return this.painter.getWidth()},e.prototype.getHeight=function(){return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this.handler.off(t,r)},e.prototype.trigger=function(t,r){this.handler.trigger(t,r)},e.prototype.clear=function(){for(var t=this.storage.getRoots(),r=0;r0){if(e<=a)return o;if(e>=i)return s}else{if(e>=a)return o;if(e<=i)return s}else{if(e===a)return o;if(e===i)return s}return(e-a)/u*l+o}function ne(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return O(e)?dv(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function Se(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),wu),e=(+e).toFixed(t),r?e:+e}function Zy(e){return e.sort(function(t,r){return t-r}),e}function Ke(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return pv(e)}function pv(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,a=r>0?r:t.length,i=t.indexOf("."),o=i<0?0:a-1-i;return Math.max(0,o-n)}function gv(e,t){var r=Math.log,n=Math.LN10,a=Math.floor(r(e[1]-e[0])/n),i=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-a+i,0),20);return isFinite(o)?o:20}function Ky(e,t,r){if(!e[t])return 0;var n=mv(e,r);return n[t]||0}function mv(e,t){var r=on(e,function(f,d){return f+(isNaN(d)?0:d)},0);if(r===0)return[];for(var n=Math.pow(10,t),a=P(e,function(f){return(isNaN(f)?0:f)/r*n*100}),i=n*100,o=P(a,function(f){return Math.floor(f)}),s=on(o,function(f,d){return f+d},0),u=P(a,function(f,d){return f-o[d]});sl&&(l=u[c],v=c);++o[v],u[v]=0,++s}return P(o,function(f){return f/n})}function yv(e,t){var r=Math.max(Ke(e),Ke(t)),n=e+t;return r>wu?n:Se(n,r)}var Qy=9007199254740991;function Jy(e){var t=Math.PI*2;return(e%t+t)%t}function jy(e){return e>-So&&e=10&&t++,t}function bu(e,t){var r=fi(e),n=Math.pow(10,r),a=e/n,i;return t?a<1.5?i=1:a<2.5?i=2:a<4?i=3:a<7?i=5:i=10:a<1?i=1:a<2?i=2:a<3?i=3:a<5?i=5:i=10,e=i*n,r>=-20?+e.toFixed(r<0?-r:0):e}function e_(e,t){var r=(e.length-1)*t+1,n=Math.floor(r),a=+e[n-1],i=r-n;return i?a+i*(e[n]-a):a}function t_(e){e.sort(function(u,l){return s(u,l,0)?-1:1});for(var t=-1/0,r=1,n=0;n=0||i&&fe(i,u)<0)){var l=n.getShallow(u,t);l!=null&&(o[e[s][0]]=l)}}return o}}var Xv=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],$v=Sr(Xv),qv=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return $v(this,t,r)},e}(),we=ve(),Zv=function(e,t,r,n){if(n){var a=we(n);a.dataIndex=r,a.dataType=t,a.seriesIndex=e,n.type==="group"&&n.traverse(function(i){var o=we(i);o.seriesIndex=e,o.dataIndex=r,o.dataType=t})}},xo=1,Io={},Lu=ve(),hi=ve(),di=0,In=1,An=2,ut=["emphasis","blur","select"],Ao=["normal","emphasis","blur","select"],Kv=10,Qv=9,St="highlight",en="downplay",lr="select",tn="unselect",fr="toggleSelect";function xt(e){return e!=null&&e!=="none"}var Eo=new uu(100);function Ro(e){if(O(e)){var t=Eo.get(e);return t||(t=Ji(e,-.1),Eo.put(e,t)),t}else if(dc(e)){var r=A({},e);return r.colorStops=P(e.colorStops,function(n){return{offset:n.offset,color:Ji(n.color,-.1)}}),r}return e}function En(e,t,r){e.onHoverStateChange&&(e.hoverState||0)!==r&&e.onHoverStateChange(t),e.hoverState=r}function Pu(e){En(e,"emphasis",An)}function Ou(e){e.hoverState===An&&En(e,"normal",di)}function pi(e){En(e,"blur",In)}function Nu(e){e.hoverState===In&&En(e,"normal",di)}function Jv(e){e.selected=!0}function jv(e){e.selected=!1}function ko(e,t,r){t(e,r)}function et(e,t,r){ko(e,t,r),e.isGroup&&e.traverse(function(n){ko(n,t,r)})}function u_(e,t){switch(t){case"emphasis":e.hoverState=An;break;case"normal":e.hoverState=di;break;case"blur":e.hoverState=In;break;case"select":e.selected=!0}}function eh(e,t,r,n){for(var a=e.style,i={},o=0;o=0,i=!1;if(e instanceof Q){var o=Lu(e),s=a&&o.selectFill||o.normalFill,u=a&&o.selectStroke||o.normalStroke;if(xt(s)||xt(u)){n=n||{};var l=n.style||{};l.fill==="inherit"?(i=!0,n=A({},n),l=A({},l),l.fill=s):!xt(l.fill)&&xt(s)?(i=!0,n=A({},n),l=A({},l),l.fill=Ro(s)):!xt(l.stroke)&&xt(u)&&(i||(n=A({},n),l=A({},l)),l.stroke=Ro(u)),n.style=l}}if(n&&n.z2==null){i||(n=A({},n));var v=e.z2EmphasisLift;n.z2=e.z2+(v??Kv)}return n}function rh(e,t,r){if(r&&r.z2==null){r=A({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??Qv)}return r}function nh(e,t,r){var n=fe(e.currentStates,t)>=0,a=e.style.opacity,i=n?null:eh(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=A({},r),o=A({opacity:n?a:i.opacity*.1},o),r.style=o),r}function na(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return th(this,e,t,r);if(e==="blur")return nh(this,e,r);if(e==="select")return rh(this,e,r)}return r}function ah(e){e.stateProxy=na;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=na),r&&(r.stateProxy=na)}function Lo(e,t){!Vu(e,t)&&!e.__highByOuter&&et(e,Pu)}function Po(e,t){!Vu(e,t)&&!e.__highByOuter&&et(e,Ou)}function Fa(e,t){e.__highByOuter|=1<<(t||0),et(e,Pu)}function za(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&et(e,Ou)}function ih(e){et(e,pi)}function Bu(e){et(e,Nu)}function Fu(e){et(e,Jv)}function zu(e){et(e,jv)}function Vu(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function Gu(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(a,i){var o=hi(i),s=a==="series",u=s?e.getViewOfSeriesModel(i):e.getViewOfComponentModel(i);!s&&n.push(u),o.isBlured&&(u.group.traverse(function(l){Nu(l)}),s&&r.push(i)),o.isBlured=!1}),w(n,function(a){a&&a.toggleBlurSeries&&a.toggleBlurSeries(r,!1,t)})}function Va(e,t,r,n){var a=n.getModel();r=r||"coordinateSystem";function i(l,v){for(var c=0;c0){var s={dataIndex:o,seriesIndex:r.seriesIndex};i!=null&&(s.dataType=i),t.push(s)}})}),t}function ch(e,t,r){Hu(e,!0),et(e,ah),hh(e,t,r)}function vh(e){Hu(e,!1)}function l_(e,t,r,n){n?vh(e):ch(e,t,r)}function hh(e,t,r){var n=we(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var No=["emphasis","blur","select"],dh={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function f_(e,t,r,n){r=r||"itemStyle";for(var a=0;a1&&(o*=aa(d),s*=aa(d));var m=(a===i?-1:1)*aa((o*o*(s*s)-o*o*(f*f)-s*s*(h*h))/(o*o*(f*f)+s*s*(h*h)))||0,p=m*o*f/s,g=m*-s*h/o,y=(e+r)/2+kr(c)*p-Rr(c)*g,_=(t+n)/2+Rr(c)*p+kr(c)*g,S=Vo([1,0],[(h-p)/o,(f-g)/s]),M=[(h-p)/o,(f-g)/s],b=[(-1*h-p)/o,(-1*f-g)/s],T=Vo(M,b);if(Wa(M,b)<=-1&&(T=Xt),Wa(M,b)>=1&&(T=0),T<0){var C=Math.round(T/Xt*1e6)/1e6;T=Xt*2+C%2*Xt}v.addData(l,y,_,o,s,S,T,c,i)}var Sh=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,wh=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function bh(e){var t=new ka;if(!e)return t;var r=0,n=0,a=r,i=n,o,s=ka.CMD,u=e.match(Sh);if(!u)return t;for(var l=0;lR*R+B*B&&(C=x,D=I),{cx:C,cy:D,x0:-v,y0:-c,x1:C*(a/M-1),y1:D*(a/M-1)}}function Eh(e){var t;if(E(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function Rh(e,t){var r,n=ir(t.r,0),a=ir(t.r0||0,0),i=n>0,o=a>0;if(!(!i&&!o)){if(i||(n=a,a=0),a>n){var s=n;n=a,a=s}var u=t.startAngle,l=t.endAngle;if(!(isNaN(u)||isNaN(l))){var v=t.cx,c=t.cy,h=!!t.clockwise,f=Ho(l-u),d=f>ia&&f%ia;if(d>Le&&(f=d),!(n>Le))e.moveTo(v,c);else if(f>ia-Le)e.moveTo(v+n*At(u),c+n*ct(u)),e.arc(v,c,n,u,l,!h),a>Le&&(e.moveTo(v+a*At(l),c+a*ct(l)),e.arc(v,c,a,l,u,h));else{var m=void 0,p=void 0,g=void 0,y=void 0,_=void 0,S=void 0,M=void 0,b=void 0,T=void 0,C=void 0,D=void 0,x=void 0,I=void 0,L=void 0,N=void 0,R=void 0,B=n*At(u),G=n*ct(u),q=a*At(l),F=a*ct(l),U=f>Le;if(U){var $=t.cornerRadius;$&&(r=Eh($),m=r[0],p=r[1],g=r[2],y=r[3]);var j=Ho(n-a)/2;if(_=Ge(j,g),S=Ge(j,y),M=Ge(j,m),b=Ge(j,p),D=T=ir(_,S),x=C=ir(M,b),(T>Le||C>Le)&&(I=n*At(l),L=n*ct(l),N=a*At(u),R=a*ct(u),fLe){var Ae=Ge(g,D),Ee=Ge(y,D),k=Lr(N,R,B,G,n,Ae,h),W=Lr(I,L,q,F,n,Ee,h);e.moveTo(v+k.cx+k.x0,c+k.cy+k.y0),D0&&e.arc(v+k.cx,c+k.cy,Ae,ie(k.y0,k.x0),ie(k.y1,k.x1),!h),e.arc(v,c,n,ie(k.cy+k.y1,k.cx+k.x1),ie(W.cy+W.y1,W.cx+W.x1),!h),Ee>0&&e.arc(v+W.cx,c+W.cy,Ee,ie(W.y1,W.x1),ie(W.y0,W.x0),!h))}else e.moveTo(v+B,c+G),e.arc(v,c,n,u,l,!h);if(!(a>Le)||!U)e.lineTo(v+q,c+F);else if(x>Le){var Ae=Ge(m,x),Ee=Ge(p,x),k=Lr(q,F,I,L,a,-Ee,h),W=Lr(B,G,N,R,a,-Ae,h);e.lineTo(v+k.cx+k.x0,c+k.cy+k.y0),x0&&e.arc(v+k.cx,c+k.cy,Ee,ie(k.y0,k.x0),ie(k.y1,k.x1),!h),e.arc(v,c,a,ie(k.cy+k.y1,k.cx+k.x1),ie(W.cy+W.y1,W.cx+W.x1),h),Ae>0&&e.arc(v+W.cx,c+W.cy,Ae,ie(W.y1,W.x1),ie(W.y0,W.x0),!h))}else e.lineTo(v+q,c+F),e.arc(v,c,a,l,u,h)}e.closePath()}}}var kh=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),Ku=function(e){V(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new kh},t.prototype.buildPath=function(r,n){Rh(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(Q);Ku.prototype.type="sector";const Qu=Ku;var Lh=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),Ju=function(e){V(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new Lh},t.prototype.buildPath=function(r,n){var a=n.cx,i=n.cy,o=Math.PI*2;r.moveTo(a+n.r,i),r.arc(a,i,n.r,0,o,!1),r.moveTo(a+n.r0,i),r.arc(a,i,n.r0,0,o,!0)},t}(Q);Ju.prototype.type="ring";const ju=Ju;function Ph(e,t,r,n){var a=[],i=[],o=[],s=[],u,l,v,c;if(n){v=[1/0,1/0],c=[-1/0,-1/0];for(var h=0,f=e.length;h=2){if(n){var i=Ph(a,n,r,t.smoothConstraint);e.moveTo(a[0][0],a[0][1]);for(var o=a.length,s=0;s<(r?o:o-1);s++){var u=i[s*2],l=i[s*2+1],v=a[(s+1)%o];e.bezierCurveTo(u[0],u[1],l[0],l[1],v[0],v[1])}}else{e.moveTo(a[0][0],a[0][1]);for(var s=1,c=a.length;sht[1]){if(s=!1,i)return s;var v=Math.abs(ht[0]-vt[1]),c=Math.abs(vt[0]-ht[1]);Math.min(v,c)>a.len()&&(v0){var c=v.duration,h=v.delay,f=v.easing,d={duration:c,delay:h||0,easing:f,done:i,force:!!i||!!o,setToFinal:!l,scope:e,during:o};s?t.animateFrom(r,d):t.animateTo(r,d)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),i&&i()}function wi(e,t,r,n,a,i){Si("update",e,t,r,n,a,i)}function fl(e,t,r,n,a,i){Si("enter",e,t,r,n,a,i)}function vr(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(i[1])?i[0]>0?"right":"left":i[1]>0?"bottom":"top"}function Yo(e){return!e.isGroup}function fd(e){return e.shape!=null}function cd(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(u){Yo(u)&&u.anid&&(s[u.anid]=u)}),s}function a(o){var s={x:o.x,y:o.y,rotation:o.rotation};return fd(o)&&(s.shape=A({},o.shape)),s}var i=n(e);t.traverse(function(o){if(Yo(o)&&o.anid){var s=i[o.anid];if(s){var u=a(o);o.attr(a(s)),wi(o,u,r,we(o).dataIndex)}}})}function vd(e,t){return P(e,function(r){var n=r[0];n=un(n,t.x),n=ln(n,t.x+t.width);var a=r[1];return a=un(a,t.y),a=ln(a,t.y+t.height),[n,a]})}function hd(e,t){var r=un(e.x,t.x),n=ln(e.x+e.width,t.x+t.width),a=un(e.y,t.y),i=ln(e.y+e.height,t.y+t.height);if(n>=r&&i>=a)return{x:r,y:a,width:n-r,height:i-a}}function dd(e,t,r){var n=A({rectHover:!0},t),a=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(a.image=e.slice(8),Ye(a,r),new bn(n)):bi(e.replace("path://",""),n,r,"center")}function pd(e,t,r,n,a){for(var i=0,o=a[a.length-1];i1)return!1;var p=oa(f,d,v,c)/h;return!(p<0||p>1)}function oa(e,t,r,n){return e*n-r*t}function gd(e){return e<=1e-6&&e>=-1e-6}function md(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,a=O(t)?{formatter:t}:t,i=r.mainType,o=r.componentIndex,s={componentType:i,name:n,$vars:["name"]};s[i+"Index"]=o;var u=e.formatterParamsExtra;u&&w(Fe(u),function(v){bt(s,v)||(s[v]=u[v],s.$vars.push(v))});var l=we(e.el);l.componentMainType=i,l.componentIndex=o,l.tooltipConfig={name:n,option:Ye({content:n,formatterParams:s},a)}}function Xo(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function ml(e,t){if(e)if(E(e))for(var r=0;r=0&&s.push(u)}),s}}function y_(e,t){return ae(ae({},e,!0),t,!0)}const Rd={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},kd={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var fn="ZH",Ti="EN",wr=Ti,rn={},Di={},wl=K.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(fn)>-1?fn:wr}():wr;function bl(e,t){e=e.toUpperCase(),Di[e]=new Je(t),rn[e]=t}function Ld(e){if(O(e)){var t=rn[e.toUpperCase()]||{};return e===fn||e===Ti?X(t):ae(X(t),X(rn[wr]),!1)}else return ae(X(e),X(rn[wr]),!1)}function Pd(e){return Di[e]}function Od(){return Di[wr]}bl(Ti,Rd);bl(fn,kd);var Ci=1e3,xi=Ci*60,hr=xi*60,xe=hr*24,jo=xe*365,or={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Nr="{yyyy}-{MM}-{dd}",es={year:"{yyyy}",month:"{yyyy}-{MM}",day:Nr,hour:Nr+" "+or.hour,minute:Nr+" "+or.minute,second:Nr+" "+or.second,millisecond:or.none},la=["year","month","day","hour","minute","second","millisecond"],Ml=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function pe(e,t){return e+="","0000".substr(0,t-e.length)+e}function Nt(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Nd(e){return e===Nt(e)}function Bd(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Ii(e,t,r,n){var a=We(e),i=a[Ai(r)](),o=a[Bt(r)]()+1,s=Math.floor((o-1)/3)+1,u=a[Ln(r)](),l=a["get"+(r?"UTC":"")+"Day"](),v=a[br(r)](),c=(v-1)%12+1,h=a[Pn(r)](),f=a[On(r)](),d=a[Nn(r)](),m=n instanceof Je?n:Pd(n||wl)||Od(),p=m.getModel("time"),g=p.get("month"),y=p.get("monthAbbr"),_=p.get("dayOfWeek"),S=p.get("dayOfWeekAbbr");return(t||"").replace(/{yyyy}/g,i+"").replace(/{yy}/g,i%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,g[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,pe(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,pe(u,2)).replace(/{d}/g,u+"").replace(/{eeee}/g,_[l]).replace(/{ee}/g,S[l]).replace(/{e}/g,l+"").replace(/{HH}/g,pe(v,2)).replace(/{H}/g,v+"").replace(/{hh}/g,pe(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,pe(h,2)).replace(/{m}/g,h+"").replace(/{ss}/g,pe(f,2)).replace(/{s}/g,f+"").replace(/{SSS}/g,pe(d,3)).replace(/{S}/g,d+"")}function Fd(e,t,r,n,a){var i=null;if(O(r))i=r;else if(Y(r))i=r(e.value,t,{level:e.level});else{var o=A({},or);if(e.level>0)for(var s=0;s=0;--s)if(u[l]){i=u[l];break}i=i||o.none}if(E(i)){var c=e.level==null?0:e.level>=0?e.level:i.length+e.level;c=Math.min(c,i.length-1),i=i[c]}}return Ii(new Date(e.value),i,a,n)}function Tl(e,t){var r=We(e),n=r[Bt(t)]()+1,a=r[Ln(t)](),i=r[br(t)](),o=r[Pn(t)](),s=r[On(t)](),u=r[Nn(t)](),l=u===0,v=l&&s===0,c=v&&o===0,h=c&&i===0,f=h&&a===1,d=f&&n===1;return d?"year":f?"month":h?"day":c?"hour":v?"minute":l?"second":"millisecond"}function ts(e,t,r){var n=re(e)?We(e):e;switch(t=t||Tl(e,r),t){case"year":return n[Ai(r)]();case"half-year":return n[Bt(r)]()>=6?1:0;case"quarter":return Math.floor((n[Bt(r)]()+1)/4);case"month":return n[Bt(r)]();case"day":return n[Ln(r)]();case"half-day":return n[br(r)]()/24;case"hour":return n[br(r)]();case"minute":return n[Pn(r)]();case"second":return n[On(r)]();case"millisecond":return n[Nn(r)]()}}function Ai(e){return e?"getUTCFullYear":"getFullYear"}function Bt(e){return e?"getUTCMonth":"getMonth"}function Ln(e){return e?"getUTCDate":"getDate"}function br(e){return e?"getUTCHours":"getHours"}function Pn(e){return e?"getUTCMinutes":"getMinutes"}function On(e){return e?"getUTCSeconds":"getSeconds"}function Nn(e){return e?"getUTCMilliseconds":"getMilliseconds"}function zd(e){return e?"setUTCFullYear":"setFullYear"}function Dl(e){return e?"setUTCMonth":"setMonth"}function Cl(e){return e?"setUTCDate":"setDate"}function xl(e){return e?"setUTCHours":"setHours"}function Il(e){return e?"setUTCMinutes":"setMinutes"}function Al(e){return e?"setUTCSeconds":"setSeconds"}function El(e){return e?"setUTCMilliseconds":"setMilliseconds"}function Rl(e){if(!wv(e))return O(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function __(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var kl=Mc;function $a(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function a(v){return v&&Mn(v)?v:"-"}function i(v){return!!(v!=null&&!isNaN(v)&&isFinite(v))}var o=t==="time",s=e instanceof Date;if(o||s){var u=o?We(e):e;if(isNaN(+u)){if(s)return"-"}else return Ii(u,n,r)}if(t==="ordinal")return Ra(e)?a(e):re(e)&&i(e)?e+"":"-";var l=st(e);return i(l)?Rl(l):Ra(e)?a(e):typeof e=="boolean"?e+"":"-"}var rs=["a","b","c","d","e","f","g"],fa=function(e,t){return"{"+e+(t??"")+"}"};function Vd(e,t,r){E(t)||(t=[t]);var n=t.length;if(!n)return"";for(var a=t[0].$vars||[],i=0;i':'';var o=r.markerId||"markerX";return{renderMode:i,content:"{"+o+"|} ",style:a==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function w_(e,t,r){(e==="week"||e==="month"||e==="quarter"||e==="half-year"||e==="year")&&(e=`MM-dd +yyyy`);var n=We(t),a=r?"getUTC":"get",i=n[a+"FullYear"](),o=n[a+"Month"]()+1,s=n[a+"Date"](),u=n[a+"Hours"](),l=n[a+"Minutes"](),v=n[a+"Seconds"](),c=n[a+"Milliseconds"]();return e=e.replace("MM",pe(o,2)).replace("M",o).replace("yyyy",i).replace("yy",pe(i%100+"",2)).replace("dd",pe(s,2)).replace("d",s).replace("hh",pe(u,2)).replace("h",u).replace("mm",pe(l,2)).replace("m",l).replace("ss",pe(v,2)).replace("s",v).replace("SSS",pe(c,3)),e}function b_(e){return e&&e.charAt(0).toUpperCase()+e.substr(1)}function Hd(e,t){return t=t||"transparent",O(e)?e:z(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function M_(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var nn=w,Ud=["left","right","top","bottom","width","height"],_t=[["width","left","right"],["height","top","bottom"]];function Ei(e,t,r,n,a){var i=0,o=0;n==null&&(n=1/0),a==null&&(a=1/0);var s=0;t.eachChild(function(u,l){var v=u.getBoundingRect(),c=t.childAt(l+1),h=c&&c.getBoundingRect(),f,d;if(e==="horizontal"){var m=v.width+(h?-h.x+v.x:0);f=i+m,f>n||u.newline?(i=0,f=m,o+=s+r,s=v.height):s=Math.max(s,v.height)}else{var p=v.height+(h?-h.y+v.y:0);d=o+p,d>a||u.newline?(i+=s+r,o=0,d=p,s=v.width):s=Math.max(s,v.width)}u.newline||(u.x=i,u.y=o,u.markRedraw(),e==="horizontal"?i=f+r:o=d+r)})}var T_=Ei;ui(Ei,"vertical");ui(Ei,"horizontal");function D_(e,t,r){var n=t.width,a=t.height,i=ne(e.left,n),o=ne(e.top,a),s=ne(e.right,n),u=ne(e.bottom,a);return(isNaN(i)||isNaN(parseFloat(e.left)))&&(i=0),(isNaN(s)||isNaN(parseFloat(e.right)))&&(s=n),(isNaN(o)||isNaN(parseFloat(e.top)))&&(o=0),(isNaN(u)||isNaN(parseFloat(e.bottom)))&&(u=a),r=kl(r||0),{width:Math.max(s-i-r[1]-r[3],0),height:Math.max(u-o-r[0]-r[2],0)}}function Wd(e,t,r){r=kl(r||0);var n=t.width,a=t.height,i=ne(e.left,n),o=ne(e.top,a),s=ne(e.right,n),u=ne(e.bottom,a),l=ne(e.width,n),v=ne(e.height,a),c=r[2]+r[0],h=r[1]+r[3],f=e.aspect;switch(isNaN(l)&&(l=n-s-h-i),isNaN(v)&&(v=a-u-c-o),f!=null&&(isNaN(l)&&isNaN(v)&&(f>n/a?l=n*.8:v=a*.8),isNaN(l)&&(l=f*v),isNaN(v)&&(v=l/f)),isNaN(i)&&(i=n-s-l-h),isNaN(o)&&(o=a-u-v-c),e.left||e.right){case"center":i=n/2-l/2-r[3];break;case"right":i=n-l-h;break}switch(e.top||e.bottom){case"middle":case"center":o=a/2-v/2-r[0];break;case"bottom":o=a-v-c;break}i=i||0,o=o||0,isNaN(l)&&(l=n-h-i-(s||0)),isNaN(v)&&(v=a-c-o-(u||0));var d=new be(i+r[3],o+r[0],l,v);return d.margin=r,d}function C_(e,t,r,n,a,i){var o=!a||!a.hv||a.hv[0],s=!a||!a.hv||a.hv[1],u=a&&a.boundingMode||"all";if(i=i||e,i.x=e.x,i.y=e.y,!o&&!s)return!1;var l;if(u==="raw")l=e.type==="group"?new be(0,0,+t.width||0,+t.height||0):e.getBoundingRect();else if(l=e.getBoundingRect(),e.needLocalTransform()){var v=e.getLocalTransform();l=l.clone(),l.applyTransform(v)}var c=Wd(Ye({width:l.width,height:l.height},t),r,n),h=o?c.x-l.x:0,f=s?c.y-l.y:0;return u==="raw"?(i.x=h,i.y=f):(i.x+=h,i.y+=f),i===e&&e.markRedraw(),!0}function x_(e,t){return e[_t[t][0]]!=null||e[_t[t][1]]!=null&&e[_t[t][2]]!=null}function cn(e){var t=e.layoutMode||e.constructor.layoutMode;return z(t)?t:t?{type:t}:null}function vn(e,t,r){var n=r&&r.ignoreSize;!E(n)&&(n=[n,n]);var a=o(_t[0],0),i=o(_t[1],1);l(_t[0],e,a),l(_t[1],e,i);function o(v,c){var h={},f=0,d={},m=0,p=2;if(nn(v,function(_){d[_]=e[_]}),nn(v,function(_){s(t,_)&&(h[_]=d[_]=t[_]),u(h,_)&&f++,u(d,_)&&m++}),n[c])return u(t,v[1])?d[v[2]]=null:u(t,v[2])&&(d[v[1]]=null),d;if(m===p||!f)return d;if(f>=p)return h;for(var g=0;g=0;u--)s=ae(s,a[u],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var a=r+"Index",i=r+"Id";return Cn(this.ecModel,r,{index:this.get(a,!0),id:this.get(i,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get("left"),top:r.get("top"),right:r.get("right"),bottom:r.get("bottom"),width:r.get("width"),height:r.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(Je);ku(Ft,Je);xn(Ft);Ad(Ft);Ed(Ft,$d);function $d(e){var t=[];return w(Ft.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=P(t,function(r){return He(r).main}),e!=="dataset"&&fe(t,"dataset")<=0&&t.unshift("dataset"),t}const te=Ft;var Pl="";typeof navigator<"u"&&(Pl=navigator.platform||"");var Et="rgba(0, 0, 0, 0.2)";const qd={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Et,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Et,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Et,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Et,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Et,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Et,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:Pl.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var Zd=H(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),Xe="original",ye="arrayRows",Ve="objectRows",$e="keyedColumns",ot="typedArray",Ol="unknown",je="column",zt="row",se={Must:1,Might:2,Not:3},Nl=ve();function Kd(e){Nl(e).datasetMap=H()}function I_(e,t,r){var n={},a=Ri(t);if(!a||!e)return n;var i=[],o=[],s=t.ecModel,u=Nl(s).datasetMap,l=a.uid+"_"+r.seriesLayoutBy,v,c;e=e.slice(),w(e,function(m,p){var g=z(m)?m:e[p]={name:m};g.type==="ordinal"&&v==null&&(v=p,c=d(g)),n[g.name]=[]});var h=u.get(l)||u.set(l,{categoryWayDim:c,valueWayDim:0});w(e,function(m,p){var g=m.name,y=d(m);if(v==null){var _=h.valueWayDim;f(n[g],_,y),f(o,_,y),h.valueWayDim+=y}else if(v===p)f(n[g],0,y),f(i,0,y);else{var _=h.categoryWayDim;f(n[g],_,y),f(o,_,y),h.categoryWayDim+=y}});function f(m,p,g){for(var y=0;yt)return e[n];return e[r-1]}function Fl(e,t,r,n,a,i,o){i=i||e;var s=t(i),u=s.paletteIdx||0,l=s.paletteNameMap=s.paletteNameMap||{};if(l.hasOwnProperty(a))return l[a];var v=o==null||!n?r:tp(n,o);if(v=v||r,!(!v||!v.length)){var c=v[u];return a&&(l[a]=c),s.paletteIdx=(u+1)%v.length,c}}function rp(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Br,$t,as,is="\0_ec_inner",np=1,zl=function(e){V(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,a,i,o,s){i=i||{},this.option=null,this._theme=new Je(i),this._locale=new Je(o),this._optionManager=s},t.prototype.setOption=function(r,n,a){var i=us(n);this._optionManager.setOption(r,a,i),this._resetOption(null,i)},t.prototype.resetOption=function(r,n){return this._resetOption(r,us(n))},t.prototype._resetOption=function(r,n){var a=!1,i=this._optionManager;if(!r||r==="recreate"){var o=i.mountOption(r==="recreate");!this.option||r==="recreate"?as(this,o):(this.restoreData(),this._mergeOption(o,n)),a=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=i.getTimelineOption(this);s&&(a=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var u=i.getMediaOption(this);u.length&&w(u,function(l){a=!0,this._mergeOption(l,n)},this)}return a},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var a=this.option,i=this._componentsMap,o=this._componentsCount,s=[],u=H(),l=n&&n.replaceMergeMainTypeMap;Kd(this),w(r,function(c,h){c!=null&&(te.hasClass(h)?h&&(s.push(h),u.set(h,!0)):a[h]=a[h]==null?X(c):ae(a[h],c,!0))}),l&&l.each(function(c,h){te.hasClass(h)&&!u.get(h)&&(s.push(h),u.set(h,!0))}),te.topologicalTravel(s,te.getAllClassMainTypes(),v,this);function v(c){var h=jd(this,c,ce(r[c])),f=i.get(c),d=f?l&&l.get(c)?"replaceMerge":"normalMerge":"replaceAll",m=Cv(f,h,d);Lv(m,c,te),a[c]=null,i.set(c,null),o.set(c,0);var p=[],g=[],y=0,_;w(m,function(S,M){var b=S.existing,T=S.newOption;if(!T)b&&(b.mergeOption({},this),b.optionUpdated({},!1));else{var C=c==="series",D=te.getClass(c,S.keyInfo.subType,!C);if(!D)return;if(c==="tooltip"){if(_)return;_=!0}if(b&&b.constructor===D)b.name=S.keyInfo.name,b.mergeOption(T,this),b.optionUpdated(T,!1);else{var x=A({componentIndex:M},S.keyInfo);b=new D(T,this,this,x),A(b,x),S.brandNew&&(b.__requireNewView=!0),b.init(T,this,this),b.optionUpdated(null,!0)}}b?(p.push(b.option),g.push(b),y++):(p.push(void 0),g.push(void 0))},this),a[c]=p,i.set(c,g),o.set(c,y),c==="series"&&Br(this)}this._seriesIndices||Br(this)},t.prototype.getOption=function(){var r=X(this.option);return w(r,function(n,a){if(te.hasClass(a)){for(var i=ce(n),o=i.length,s=!1,u=o-1;u>=0;u--)i[u]&&!_r(i[u])?s=!0:(i[u]=null,!s&&o--);i.length=o,r[a]=i}}),delete r[is],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var a=this._componentsMap.get(r);if(a){var i=a[n||0];if(i)return i;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function dp(e,t){return e.join(",")===t.join(",")}const pp=fp;var Re=w,Mr=z,ls=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function va(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=ls.length;r=0;p--){var g=e[p];if(s||(d=g.data.rawIndexOf(g.stackedByDimension,f)),d>=0){var y=g.data.getByRawIndex(g.stackResultDimension,d);if(u==="all"||u==="positive"&&y>0||u==="negative"&&y<0||u==="samesign"&&h>=0&&y>0||u==="samesign"&&h<=0&&y<0){h=yv(h,y),m=y;break}}}return n[0]=h,n[1]=m,n})})}var Bn=function(){function e(t){this.data=t.data||(t.sourceFormat===$e?{}:[]),this.sourceFormat=t.sourceFormat||Ol,this.seriesLayoutBy=t.seriesLayoutBy||je,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;nm&&(m=_)}f[0]=d,f[1]=m}},a=function(){return this._data?this._data.length/this._dimSize:0};gs=(t={},t[ye+"_"+je]={pure:!0,appendData:i},t[ye+"_"+zt]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[Ve]={pure:!0,appendData:i},t[$e]={pure:!0,appendData:function(o){var s=this._data;w(o,function(u,l){for(var v=s[l]||(s[l]=[]),c=0;c<(u||[]).length;c++)v.push(u[c])})}},t[Xe]={appendData:i},t[ot]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function i(o){for(var s=0;s=0&&(m=o.interpolatedValue[p])}return m!=null?m+"":""})}},e.prototype.getRawValue=function(t,r){return hn(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function k_(e){var t,r;return z(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function dr(e){return new Pp(e)}var Pp=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var a=this.context;a.data=a.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var i;this._plan&&!n&&(i=this._plan(this.context));var o=v(this._modBy),s=this._modDataCount||0,u=v(t&&t.modBy),l=t&&t.modDataCount||0;(o!==u||s!==l)&&(i="reset");function v(y){return!(y>=1)&&(y=1),y}var c;(this._dirty||i==="reset")&&(this._dirty=!1,c=this._doReset(n)),this._modBy=u,this._modDataCount=l;var h=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var f=this._dueIndex,d=Math.min(h!=null?this._dueIndex+h:1/0,this._dueEnd);if(!n&&(c||f1&&n>0?s:o}};return i;function o(){return t=e?null:ut},gte:function(e,t){return e>=t}},Np=function(){function e(t,r){if(!re(r)){var n="";ge(n)}this._opFn=Ql[t],this._rvalFloat=st(r)}return e.prototype.evaluate=function(t){return re(t)?this._opFn(t,this._rvalFloat):this._opFn(st(t),this._rvalFloat)},e}(),Bp=function(){function e(t,r){var n=t==="desc";this._resultLT=n?1:-1,r==null&&(r=n?"min":"max"),this._incomparable=r==="min"?-1/0:1/0}return e.prototype.evaluate=function(t,r){var n=re(t)?t:st(t),a=re(r)?r:st(r),i=isNaN(n),o=isNaN(a);if(i&&(n=this._incomparable),o&&(a=this._incomparable),i&&o){var s=O(t),u=O(r);s&&(n=u?t:0),u&&(a=s?r:0)}return na?-this._resultLT:0},e}(),Fp=function(){function e(t,r){this._rval=r,this._isEQ=t,this._rvalTypeof=typeof r,this._rvalFloat=st(r)}return e.prototype.evaluate=function(t){var r=t===this._rval;if(!r){var n=typeof t;n!==this._rvalTypeof&&(n==="number"||this._rvalTypeof==="number")&&(r=st(t)===this._rvalFloat)}return this._isEQ?r:!r},e}();function P_(e,t){return e==="eq"||e==="ne"?new Fp(e==="eq",t):bt(Ql,e)?new Np(e,t):null}var zp=function(){function e(){}return e.prototype.getRawData=function(){throw new Error("not supported")},e.prototype.getRawDataItem=function(t){throw new Error("not supported")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return an(t,r)},e}();function Vp(e,t){var r=new zp,n=e.data,a=r.sourceFormat=e.sourceFormat,i=e.startIndex,o="";e.seriesLayoutBy!==je&&ge(o);var s=[],u={},l=e.dimensionsDefine;if(l)w(l,function(m,p){var g=m.name,y={index:p,name:g,displayName:m.displayName};if(s.push(y),g!=null){var _="";bt(u,g)&&ge(_),u[g]=y}});else for(var v=0;v65535?qp:Zp}function Rt(){return[1/0,-1/0]}function Qp(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function bs(e,t,r,n,a){var i=jl[r||"float"];if(a){var o=e[t],s=o&&o.length;if(s!==n){for(var u=new i(n),l=0;lp[1]&&(p[1]=m)}return this._rawCount=this._count=u,{start:s,end:u}},e.prototype._initDataFromProvider=function(t,r,n){for(var a=this._provider,i=this._chunks,o=this._dimensions,s=o.length,u=this._rawExtent,l=P(o,function(y){return y.property}),v=0;vg[1]&&(g[1]=p)}}!a.persistent&&a.clean&&a.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)i=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var a=this._chunks,i=a[t],o=[];if(!i)return o;n==null&&(n=1/0);for(var s=1/0,u=-1,l=0,v=0,c=this.count();v=0&&u<0)&&(s=d,u=f,l=0),f===u&&(o[l++]=v))}return o.length=l,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,a=this._count;if(n===Array){t=new n(a);for(var i=0;i=c&&y<=h||isNaN(y))&&(u[l++]=m),m++}d=!0}else if(i===2){for(var p=f[a[0]],_=f[a[1]],S=t[a[1]][0],M=t[a[1]][1],g=0;g=c&&y<=h||isNaN(y))&&(b>=S&&b<=M||isNaN(b))&&(u[l++]=m),m++}d=!0}}if(!d)if(i===1)for(var g=0;g=c&&y<=h||isNaN(y))&&(u[l++]=T)}else for(var g=0;gt[x][1])&&(C=!1)}C&&(u[l++]=r.getRawIndex(g))}return lg[1]&&(g[1]=p)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),a=n._chunks,i=a[t],o=this.count(),s=0,u=Math.floor(1/r),l=this.getRawIndex(0),v,c,h,f=new(Zt(this._rawCount))(Math.min((Math.ceil(o/u)+2)*2,o));f[s++]=l;for(var d=1;dv&&(v=c,h=S)}I>0&&Iv-d&&(u=v-d,s.length=u);for(var m=0;mc[1]&&(c[1]=g),h[f++]=y}return i._count=f,i._indices=h,i._updateGetRawIdx(),i},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,a=this._chunks,i=0,o=this.count();iu&&(u=c)}return o=[s,u],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],a=this._chunks,i=0;i=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,a,i){return an(r[i],this._dimensions[i])}pa={arrayRows:t,objectRows:function(r,n,a,i){return an(r[n],this._dimensions[i])},keyedColumns:t,original:function(r,n,a,i){var o=r&&(r.value==null?r:r.value);return an(o instanceof Array?o[i]:o,this._dimensions[i])},typedArray:function(r,n,a,i){return r[i]}}}(),e}();const Ka=Jp;var jp=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,a,i;if(Fr(t)){var o=t,s=void 0,u=void 0,l=void 0;if(n){var v=r[0];v.prepareSource(),l=v.getSource(),s=l.data,u=l.sourceFormat,i=[v._getVersionSign()]}else s=o.get("data",!0),u=Ie(s)?ot:Xe,i=[];var c=this._getSourceMetaRawOption()||{},h=l&&l.metaRawOption||{},f=J(c.seriesLayoutBy,h.seriesLayoutBy)||null,d=J(c.sourceHeader,h.sourceHeader),m=J(c.dimensions,h.dimensions),p=f!==h.seriesLayoutBy||!!d!=!!h.sourceHeader||m;a=p?[Za(s,{seriesLayoutBy:f,sourceHeader:d,dimensions:m},u)]:[]}else{var g=t;if(n){var y=this._applyTransform(r);a=y.sourceList,i=y.upstreamSignList}else{var _=g.get("source",!0);a=[Za(_,this._getSourceMetaRawOption(),null)],i=[]}}this._setLocalSource(a,i)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),a=r.get("fromTransformResult",!0);if(a!=null){var i="";t.length!==1&&Ms(i)}var o,s=[],u=[];return w(t,function(l){l.prepareSource();var v=l.getSource(a||0),c="";a!=null&&!v&&Ms(c),s.push(v),u.push(l._getVersionSign())}),n?o=Xp(n,s,{datasetIndex:r.componentIndex}):a!=null&&(o=[Cp(s[0])]),{sourceList:o,upstreamSignList:u}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return w(e.blocks,function(a){var i=nf(a);i>=t&&(t=i+ +(n&&(!i||Ja(a)&&!a.noHeader)))}),t}return 0}function rg(e,t,r,n){var a=t.noHeader,i=ag(nf(t)),o=[],s=t.blocks||[];Ue(!s||E(s)),s=s||[];var u=e.orderMode;if(t.sortBlocks&&u){s=s.slice();var l={valueAsc:"asc",valueDesc:"desc"};if(bt(l,u)){var v=new Bp(l[u],null);s.sort(function(d,m){return v.evaluate(d.sortParam,m.sortParam)})}else u==="seriesDesc"&&s.reverse()}w(s,function(d,m){var p=t.valueFormatter,g=rf(d)(p?A(A({},e),{valueFormatter:p}):e,d,m>0?i.html:0,n);g!=null&&o.push(g)});var c=e.renderMode==="richText"?o.join(i.richText):ja(o.join(""),a?r:i.html);if(a)return c;var h=$a(t.header,"ordinal",e.useUTC),f=tf(n,e.renderMode).nameStyle;return e.renderMode==="richText"?af(e,h,f)+i.richText+c:ja('
    '+_e(h)+"
    "+c,r)}function ng(e,t,r,n){var a=e.renderMode,i=t.noName,o=t.noValue,s=!t.markerType,u=t.name,l=e.useUTC,v=t.valueFormatter||e.valueFormatter||function(S){return S=E(S)?S:[S],P(S,function(M,b){return $a(M,E(f)?f[b]:f,l)})};if(!(i&&o)){var c=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",a),h=i?"":$a(u,"ordinal",l),f=t.valueType,d=o?[]:v(t.value),m=!s||!i,p=!s&&i,g=tf(n,a),y=g.nameStyle,_=g.valueStyle;return a==="richText"?(s?"":c)+(i?"":af(e,h,y))+(o?"":sg(e,d,m,p,_)):ja((s?"":c)+(i?"":ig(h,!s,y))+(o?"":og(d,m,p,_)),r)}}function N_(e,t,r,n,a,i){if(e){var o=rf(e),s={useUTC:a,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,i)}}function ag(e){return{html:eg[e],richText:tg[e]}}function ja(e,t){var r='
    ',n="margin: "+t+"px 0 0";return'
    '+e+r+"
    "}function ig(e,t,r){var n=t?"margin-left:2px":"";return''+_e(e)+""}function og(e,t,r,n){var a=r?"10px":"20px",i=t?"float:right;margin-left:"+a:"";return e=E(e)?e:[e],''+P(e,function(o){return _e(o)}).join("  ")+""}function af(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function sg(e,t,r,n,a){var i=[a],o=n?10:20;return r&&i.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(E(t)?t.join(" "):t,i)}function ug(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Hd(n)}function B_(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var F_=function(){function e(){this.richTextStyles={},this._nextStyleNameId=Mu()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var a=n==="richText"?this._generateStyleName():null,i=Gd({color:r,type:t,renderMode:n,markerId:a});return O(i)?i:(this.richTextStyles[a]=i.style,i.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};E(r)?w(r,function(i){return A(n,i)}):A(n,r);var a=this._generateStyleName();return this.richTextStyles[a]=n,"{"+a+"|"+t+"}"},e}();function lg(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,a=t.getData(),i=a.mapDimensionsAll("defaultedTooltip"),o=i.length,s=t.getRawValue(r),u=E(s),l=ug(t,r),v,c,h,f;if(o>1||u&&!o){var d=fg(s,t,r,i,l);v=d.inlineValues,c=d.inlineValueTypes,h=d.blocks,f=d.inlineValues[0]}else if(o){var m=a.getDimensionInfo(i[0]);f=v=hn(a,r,i[0]),c=m.type}else f=v=u?s[0]:s;var p=Iu(t),g=p&&t.name||"",y=a.getName(r),_=n?g:y;return Qa("section",{header:g,noHeader:n||!p,sortParam:f,blocks:[Qa("nameValue",{markerType:"item",markerColor:l,name:_,noName:!Mn(_),value:v,valueType:c})].concat(h||[])})}function fg(e,t,r,n,a){var i=t.getData(),o=on(e,function(c,h,f){var d=i.getDimensionInfo(f);return c=c||d&&d.tooltip!==!1&&d.displayName!=null},!1),s=[],u=[],l=[];n.length?w(n,function(c){v(hn(i,r,c),c)}):w(e,v);function v(c,h){var f=i.getDimensionInfo(h);!f||f.otherDims.tooltip===!1||(o?l.push(Qa("nameValue",{markerType:"subItem",markerColor:a,name:f.displayName,value:c,valueType:f.type})):(s.push(c),u.push(f.type)))}return{inlineValues:s,inlineValueTypes:u,blocks:l}}var rt=ve();function zr(e,t){return e.getName(t)||e.getId(t)}var cg="__universalTransitionEnabled",zn=function(e){V(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,a){this.seriesIndex=this.componentIndex,this.dataTask=dr({count:hg,reset:dg}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,a);var i=rt(this).sourceManager=new jp(this);i.prepareSource();var o=this.getInitialData(r,a);Ds(o,this),this.dataTask.context.data=o,rt(this).dataBeforeProcessed=o,Ts(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var a=cn(this),i=a?Ll(r):{},o=this.subType;te.hasClass(o)&&(o+="Series"),ae(r,n.getTheme().get(this.subType)),ae(r,this.getDefaultOption()),Do(r,"label",["show"]),this.fillDataTextStyle(r.data),a&&vn(r,i,a)},t.prototype.mergeOption=function(r,n){r=ae(this.option,r,!0),this.fillDataTextStyle(r.data);var a=cn(this);a&&vn(this.option,r,a);var i=rt(this).sourceManager;i.dirty(),i.prepareSource();var o=this.getInitialData(r,n);Ds(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,rt(this).dataBeforeProcessed=o,Ts(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!Ie(r))for(var n=["show"],a=0;athis.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,a){var i=this.ecModel,o=ki.prototype.getColorFromPalette.call(this,r,n,a);return o||(o=i.getColorFromPalette(r,n,a)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var a=this.option.selectedMap;if(a){var i=this.option.selectedMode,o=this.getData(n);if(i==="series"||a==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&a.push(o)}return a},t.prototype.isSelected=function(r,n){var a=this.option.selectedMap;if(!a)return!1;var i=this.getData(n);return(a==="all"||a[zr(i,r)])&&!i.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[cg])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var a,i,o=this.option,s=o.selectedMode,u=n.length;if(!(!s||!u)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){z(o.selectedMap)||(o.selectedMap={});for(var l=o.selectedMap,v=0;v0&&this._innerSelect(r,n)}},t.registerClass=function(r){return te.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(te);Mt(zn,Lp);Mt(zn,ki);ku(zn,te);function Ts(e){var t=e.name;Iu(e)||(e.name=vg(e)||t)}function vg(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return w(r,function(a){var i=t.getDimensionInfo(a);i.displayName&&n.push(i.displayName)}),n.join(" ")}function hg(e){return e.model.getRawData().count()}function dg(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),pg}function pg(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function Ds(e,t){w(Tc(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,ui(gg,t))})}function gg(e,t){var r=ei(e);return r&&r.setOutputEnd((t||this).count()),t}function ei(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var a=n.agentStubMap;a&&(n=a.get(e.uid))}return n}}const dn=zn;var Ni=function(){function e(){this.group=new Cr,this.uid=kn("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,a){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,a){},e.prototype.updateLayout=function(t,r,n,a){},e.prototype.updateVisual=function(t,r,n,a){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();vi(Ni);xn(Ni);const ti=Ni;function of(){var e=ve();return function(t){var r=e(t),n=t.pipelineContext,a=!!r.large,i=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(a!==o||i!==s)&&"reset"}}var sf=ve(),mg=of(),Bi=function(){function e(){this.group=new Cr,this.uid=kn("viewChart"),this.renderTask=dr({plan:yg,reset:_g}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,a){},e.prototype.highlight=function(t,r,n,a){var i=t.getData(a&&a.dataType);i&&xs(i,a,"emphasis")},e.prototype.downplay=function(t,r,n,a){var i=t.getData(a&&a.dataType);i&&xs(i,a,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,a){this.render(t,r,n,a)},e.prototype.updateLayout=function(t,r,n,a){this.render(t,r,n,a)},e.prototype.updateVisual=function(t,r,n,a){this.render(t,r,n,a)},e.prototype.eachRendered=function(t){ml(this.group,t)},e.markUpdateMethod=function(t,r){sf(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function Cs(e,t,r){e&&Ha(e)&&(t==="emphasis"?Fa:za)(e,r)}function xs(e,t,r){var n=Dn(e,t),a=t&&t.highlightKey!=null?ph(t.highlightKey):null;n!=null?w(ce(n),function(i){Cs(e.getItemGraphicEl(i),r,a)}):e.eachItemGraphicEl(function(i){Cs(i,r,a)})}vi(Bi);xn(Bi);function yg(e){return mg(e.model)}function _g(e){var t=e.model,r=e.ecModel,n=e.api,a=e.payload,i=t.pipelineContext.progressiveRender,o=e.view,s=a&&sf(a).updateMethod,u=i?"incrementalPrepareRender":s&&o[s]?s:"render";return u!=="render"&&o[u](t,r,n,a),Sg[u]}var Sg={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}};const pr=Bi;var pn="\0__throttleOriginMethod",Is="\0__throttleRate",As="\0__throttleType";function uf(e,t,r){var n,a=0,i=0,o=null,s,u,l,v;t=t||0;function c(){i=new Date().getTime(),o=null,e.apply(u,l||[])}var h=function(){for(var f=[],d=0;d=0?c():o=setTimeout(c,-s),a=n};return h.clear=function(){o&&(clearTimeout(o),o=null)},h.debounceNextCall=function(f){v=f},h}function z_(e,t,r,n){var a=e[t];if(a){var i=a[pn]||a,o=a[As],s=a[Is];if(s!==r||o!==n){if(r==null||!n)return e[t]=i;a=e[t]=uf(i,r,n==="debounce"),a[pn]=i,a[As]=n,a[Is]=r}return a}}function V_(e,t){var r=e[t];r&&r[pn]&&(r.clear&&r.clear(),e[t]=r[pn])}var Es=ve(),Rs={itemStyle:Sr(Sl,!0),lineStyle:Sr(_l,!0)},wg={lineStyle:"stroke",itemStyle:"fill"};function lf(e,t){var r=e.visualStyleMapper||Rs[t];return r||(console.warn("Unknown style type '"+t+"'."),Rs.itemStyle)}function ff(e,t){var r=e.visualDrawType||wg[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var bg={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",a=e.getModel(n),i=lf(e,n),o=i(a),s=a.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var u=ff(e,n),l=o[u],v=Y(l)?l:null,c=o.fill==="auto"||o.stroke==="auto";if(!o[u]||v||c){var h=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[u]||(o[u]=h,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Y(o.fill)?h:o.fill,o.stroke=o.stroke==="auto"||Y(o.stroke)?h:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",u),!t.isSeriesFiltered(e)&&v)return r.setVisual("colorFromPalette",!1),{dataEach:function(f,d){var m=e.getDataParams(d),p=A({},o);p[u]=v(m),f.setItemVisual(d,"style",p)}}}},Kt=new Je,Mg={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",a=lf(e,n),i=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var u=o.getRawDataItem(s);if(u&&u[n]){Kt.option=u[n];var l=a(Kt),v=o.ensureUniqueItemVisual(s,"style");A(v,l),Kt.option.decal&&(o.setItemVisual(s,"decal",Kt.option.decal),Kt.option.decal.dirty=!0),i in l&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},Tg={performRawSeries:!0,overallReset:function(e){var t=H();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var a=r.type+"-"+n,i=t.get(a);i||(i={},t.set(a,i)),Es(r).scope=i}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),a={},i=r.getData(),o=Es(r).scope,s=r.visualStyleAccessPath||"itemStyle",u=ff(r,s);i.each(function(l){var v=i.getRawIndex(l);a[v]=l}),n.each(function(l){var v=a[l],c=i.getItemVisual(v,"colorFromPalette");if(c){var h=i.ensureUniqueItemVisual(v,"style"),f=n.getName(l)||l+"",d=n.count();h[u]=r.getColorFromPalette(f,o,d)}})}})}},Vr=Math.PI;function Dg(e,t){t=t||{},Ye(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new Cr,n=new it({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var a=new yr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),i=new it({style:{fill:"none"},textContent:a,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(i);var o;return t.showSpinner&&(o=new _i({shape:{startAngle:-Vr/2,endAngle:-Vr/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:Vr*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:Vr*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=a.getBoundingRect().width,u=t.showSpinner?t.spinnerRadius:0,l=(e.getWidth()-u*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:u),v=e.getHeight()/2;t.showSpinner&&o.setShape({cx:l,cy:v}),i.setShape({x:l-u,y:v-u,width:u*2,height:u*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var Cg=function(){function e(t,r,n,a){this._stageTaskMap=H(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),a=this._visualHandlers=a.slice(),this._allHandlers=n.concat(a)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var a=n.overallTask;a&&a.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),a=n.context,i=!r&&n.progressiveEnabled&&(!a||a.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=i?n.step:null,s=a&&a.modDataCount,u=s!=null?Math.ceil(s/o):null;return{step:o,modBy:u,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),a=t.getData(),i=a.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&i>=n.threshold,s=t.get("large")&&i>=t.get("largeThreshold"),u=t.get("progressiveChunkMode")==="mod"?i:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:u,large:s}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=H();t.eachSeries(function(a){var i=a.getProgressive(),o=a.uid;n.set(o,{id:o,head:null,tail:null,threshold:a.getProgressiveThreshold(),progressiveEnabled:i&&!(a.preventIncremental&&a.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),r._pipe(a,a.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;w(this._allHandlers,function(a){var i=t.get(a.uid)||t.set(a.uid,{}),o="";Ue(!(a.reset&&a.overallReset),o),a.reset&&this._createSeriesStageTask(a,i,r,n),a.overallReset&&this._createOverallStageTask(a,i,r,n)},this)},e.prototype.prepareView=function(t,r,n,a){var i=t.renderTask,o=i.context;o.model=r,o.ecModel=n,o.api=a,i.__block=!t.incrementalPrepareRender,this._pipe(r,i)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,a){a=a||{};var i=!1,o=this;w(t,function(u,l){if(!(a.visualType&&a.visualType!==u.visualType)){var v=o._stageTaskMap.get(u.uid),c=v.seriesTaskMap,h=v.overallTask;if(h){var f,d=h.agentStubMap;d.each(function(p){s(a,p)&&(p.dirty(),f=!0)}),f&&h.dirty(),o.updatePayload(h,n);var m=o.getPerformArgs(h,a.block);d.each(function(p){p.perform(m)}),h.perform(m)&&(i=!0)}else c&&c.each(function(p,g){s(a,p)&&p.dirty();var y=o.getPerformArgs(p,a.block);y.skip=!u.performRawSeries&&r.isSeriesFiltered(p.context.model),o.updatePayload(p,n),p.perform(y)&&(i=!0)})}});function s(u,l){return u.setDirty&&(!u.dirtyMap||u.dirtyMap.get(l.__pipeline.id))}this.unfinished=i||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,a){var i=this,o=r.seriesTaskMap,s=r.seriesTaskMap=H(),u=t.seriesType,l=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(v):u?n.eachRawSeriesByType(u,v):l&&l(n,a).each(v);function v(c){var h=c.uid,f=s.set(h,o&&o.get(h)||dr({plan:Rg,reset:kg,count:Pg}));f.context={model:c,ecModel:n,api:a,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:i},i._pipe(c,f)}},e.prototype._createOverallStageTask=function(t,r,n,a){var i=this,o=r.overallTask=r.overallTask||dr({reset:xg});o.context={ecModel:n,api:a,overallReset:t.overallReset,scheduler:i};var s=o.agentStubMap,u=o.agentStubMap=H(),l=t.seriesType,v=t.getTargetSeries,c=!0,h=!1,f="";Ue(!t.createOnAllSeries,f),l?n.eachRawSeriesByType(l,d):v?v(n,a).each(d):(c=!1,w(n.getSeries(),d));function d(m){var p=m.uid,g=u.set(p,s&&s.get(p)||(h=!0,dr({reset:Ig,onDirty:Eg})));g.context={model:m,overallProgress:c},g.agent=o,g.__block=c,i._pipe(m,g)}h&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,a=this._pipelineMap.get(n);!a.head&&(a.head=r),a.tail&&a.tail.pipe(r),a.tail=r,r.__idxInPipeline=a.count++,r.__pipeline=a},e.wrapStageHandler=function(t,r){return Y(t)&&(t={overallReset:t,seriesType:Og(t)}),t.uid=kn("stageHandler"),r&&(t.visualType=r),t},e}();function xg(e){e.overallReset(e.ecModel,e.api,e.payload)}function Ig(e){return e.overallProgress&&Ag}function Ag(){this.agent.dirty(),this.getDownstream().dirty()}function Eg(){this.agent&&this.agent.dirty()}function Rg(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function kg(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=ce(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?P(t,function(r,n){return cf(n)}):Lg}var Lg=cf(0);function cf(e){return function(t,r){var n=r.data,a=r.resetDefines[e];if(a&&a.dataEach)for(var i=t.start;i0&&f===l.length-h.length){var d=l.slice(0,f);d!=="data"&&(r.mainType=d,r[h.toLowerCase()]=u,v=!0)}}s.hasOwnProperty(l)&&(n[l]=u,v=!0),v||(a[l]=u)})}return{cptQuery:r,dataQuery:n,otherQuery:a}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var a=n.targetEl,i=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var u=r.cptQuery,l=r.dataQuery;return v(u,o,"mainType")&&v(u,o,"subType")&&v(u,o,"index","componentIndex")&&v(u,o,"name")&&v(u,o,"id")&&v(l,i,"name")&&v(l,i,"dataIndex")&&v(l,i,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,a,i));function v(c,h,f,d){return c[f]==null||h[d||f]===c[f]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),ri=["symbol","symbolSize","symbolRotate","symbolOffset"],Os=ri.concat(["symbolKeepAspect"]),zg={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},a={},i=!1,o=0;o0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,a){if(!this[oe]){if(this._disposed){this.id;return}var i,o,s;if(z(n)&&(a=n.lazyUpdate,i=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[oe]=!0,!this._model||n){var u=new pp(this._api),l=this._theme,v=this._model=new Vl;v.scheduler=this._scheduler,v.ssr=this._ssr,v.init(null,null,null,l,this._locale,u)}this._model.setOption(r,{replaceMerge:o},ii);var c={seriesTransition:s,optionChanged:!0};if(a)this[de]={silent:i,updateParams:c},this[oe]=!1,this.getZr().wakeUp();else{try{Lt(this),nt.update.call(this,null,c)}catch(h){throw this[de]=null,this[oe]=!1,h}this._ssr||this._zr.flush(),this[de]=null,this[oe]=!1,Qt.call(this,i),Jt.call(this,i)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||K.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(K.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return w(n,function(a){a.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,a=this._model,i=[],o=this;w(n,function(u){a.eachComponent({mainType:u},function(l){var v=o._componentsMap[l.__viewId];v.group.ignore||(i.push(v),v.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return w(i,function(u){u.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",a=this.group,i=Math.min,o=Math.max,s=1/0;if(Sn[a]){var u=s,l=s,v=-s,c=-s,h=[],f=r&&r.pixelRatio||this.getDevicePixelRatio();w(wt,function(_,S){if(_.group===a){var M=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(X(r)),b=_.getDom().getBoundingClientRect();u=i(b.left,u),l=i(b.top,l),v=o(b.right,v),c=o(b.bottom,c),h.push({dom:M,left:b.left,top:b.top})}}),u*=f,l*=f,v*=f,c*=f;var d=v-u,m=c-l,p=hu.createCanvas(),g=Ba(p,{renderer:n?"svg":"canvas"});if(g.resize({width:d,height:m}),n){var y="";return w(h,function(_){var S=_.left-u,M=_.top-l;y+=''+_.dom+""}),g.painter.getSvgRoot().innerHTML=y,r.connectedBackgroundColor&&g.painter.setBackgroundColor(r.connectedBackgroundColor),g.refreshImmediately(),g.painter.toDataURL()}else return r.connectedBackgroundColor&&g.add(new it({shape:{x:0,y:0,width:d,height:m},style:{fill:r.connectedBackgroundColor}})),w(h,function(_){var S=new bn({style:{x:_.left*f-u,y:_.top*f-l,image:_.dom}});g.add(S)}),g.refreshImmediately(),p.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return Sa(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return Sa(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var a=this._model,i,o=ra(a,r);return w(o,function(s,u){u.indexOf("Models")>=0&&w(s,function(l){var v=l.coordinateSystem;if(v&&v.containPoint)i=i||!!v.containPoint(n);else if(u==="seriesModels"){var c=this._chartsMap[l.__viewId];c&&c.containPoint&&(i=i||c.containPoint(n,l))}},this)},this),!!i},t.prototype.getVisual=function(r,n){var a=this._model,i=ra(a,r,{defaultMainType:"series"}),o=i.seriesModel,s=o.getData(),u=i.hasOwnProperty("dataIndexInside")?i.dataIndexInside:i.hasOwnProperty("dataIndex")?s.indexOfRawIndex(i.dataIndex):null;return u!=null?Gg(s,u,n):Hg(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;w(bm,function(n){var a=function(i){var o=r.getModel(),s=i.target,u,l=n==="globalout";if(l?u={}:s&&Hr(s,function(d){var m=we(d);if(m&&m.dataIndex!=null){var p=m.dataModel||o.getSeriesByIndex(m.seriesIndex);return u=p&&p.getDataParams(m.dataIndex,m.dataType)||{},!0}else if(m.eventData)return u=A({},m.eventData),!0},!0),u){var v=u.componentType,c=u.componentIndex;(v==="markLine"||v==="markPoint"||v==="markArea")&&(v="series",c=u.seriesIndex);var h=v&&c!=null&&o.getComponent(v,c),f=h&&r[h.mainType==="series"?"_chartsMap":"_componentsMap"][h.__viewId];u.event=i,u.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:u,model:h,view:f},r.trigger(n,u)}};a.zrEventfulCallAtLast=!0,r._zr.on(n,a,r)}),w(gr,function(n,a){r._messageCenter.on(a,function(i){this.trigger(a,i)},r)}),w(["selectchanged"],function(n){r._messageCenter.on(n,function(a){this.trigger(n,a)},r)}),Ug(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&Eu(this.getDom(),Vi,"");var n=this,a=n._api,i=n._model;w(n._componentsViews,function(o){o.dispose(i,a)}),w(n._chartsViews,function(o){o.dispose(i,a)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete wt[n.id]},t.prototype.resize=function(r){if(!this[oe]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var a=n.resetOption("media"),i=r&&r.silent;this[de]&&(i==null&&(i=this[de].silent),a=!0,this[de]=null),this[oe]=!0;try{a&&Lt(this),nt.update.call(this,{type:"resize",animation:A({duration:0},r&&r.animation)})}catch(o){throw this[oe]=!1,o}this[oe]=!1,Qt.call(this,i),Jt.call(this,i)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(z(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!oi[r]){var a=oi[r](this._api,n),i=this._zr;this._loadingFX=a,i.add(a)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=A({},r);return n.type=gr[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(z(n)||(n={silent:!!n}),!!yn[r.type]&&this._model){if(this[oe]){this._pendingActions.push(r);return}var a=n.silent;ba.call(this,r,a);var i=n.flush;i?this._zr.flush():i!==!1&&K.browser.weChat&&this._throttledZrFlush(),Qt.call(this,a),Jt.call(this,a)}},t.prototype.updateLabelLayout=function(){Ne.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,a=this.getModel(),i=a.getSeriesByIndex(n);i.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Lt=function(c){var h=c._scheduler;h.restorePipelines(c._model),h.prepareStageTasks(),_a(c,!0),_a(c,!1),h.plan()},_a=function(c,h){for(var f=c._model,d=c._scheduler,m=h?c._componentsViews:c._chartsViews,p=h?c._componentsMap:c._chartsMap,g=c._zr,y=c._api,_=0;_h.get("hoverLayerThreshold")&&!K.node&&!K.worker&&h.eachSeries(function(p){if(!p.preventUsingHoverLayer){var g=c._chartsMap[p.__viewId];g.__alive&&g.eachRendered(function(y){y.states.emphasis&&(y.states.emphasis.hoverLayer=!0)})}})}function o(c,h){var f=c.get("blendMode")||null;h.eachRendered(function(d){d.isGroup||(d.style.blend=f)})}function s(c,h){if(!c.preventAutoZ){var f=c.get("z")||0,d=c.get("zlevel")||0;h.eachRendered(function(m){return u(m,f,d,-1/0),!0})}}function u(c,h,f,d){var m=c.getTextContent(),p=c.getTextGuideLine(),g=c.isGroup;if(g)for(var y=c.childrenRef(),_=0;_0?{duration:m,delay:f.get("delay"),easing:f.get("easing")}:null;h.eachRendered(function(g){if(g.states&&g.states.emphasis){if(vr(g))return;if(g instanceof Q&&gh(g),g.__dirty){var y=g.prevStates;y&&g.useStates(y)}if(d){g.stateTransition=p;var _=g.getTextContent(),S=g.getTextGuideLine();_&&(_.stateTransition=p),S&&(S.stateTransition=p)}g.__dirty&&a(g)}})}Ws=function(c){return new(function(h){V(f,h);function f(){return h!==null&&h.apply(this,arguments)||this}return f.prototype.getCoordinateSystems=function(){return c._coordSysMgr.getCoordinateSystems()},f.prototype.getComponentByElement=function(d){for(;d;){var m=d.__ecComponentInfo;if(m!=null)return c._model.getComponent(m.mainType,m.index);d=d.parent}},f.prototype.enterEmphasis=function(d,m){Fa(d,m),Me(c)},f.prototype.leaveEmphasis=function(d,m){za(d,m),Me(c)},f.prototype.enterBlur=function(d){ih(d),Me(c)},f.prototype.leaveBlur=function(d){Bu(d),Me(c)},f.prototype.enterSelect=function(d){Fu(d),Me(c)},f.prototype.leaveSelect=function(d){zu(d),Me(c)},f.prototype.getModel=function(){return c.getModel()},f.prototype.getViewOfComponentModel=function(d){return c.getViewOfComponentModel(d)},f.prototype.getViewOfSeriesModel=function(d){return c.getViewOfSeriesModel(d)},f}(Gl))(c)},Af=function(c){function h(f,d){for(var m=0;m=0)){Xs.push(r);var i=df.wrapStageHandler(r,a);i.__prio=t,i.__raw=r,e.push(i)}}function Of(e,t){oi[e]=t}function j_(e){xc({createCanvas:e})}function Em(e,t,r){var n=Sf("registerMap");n&&n(e,t,r)}function e0(e){var t=Sf("getMap");return t&&t(e)}var Rm=Yp;Dt(Fi,bg);Dt(Vn,Mg);Dt(Vn,Tg);Dt(Fi,zg);Dt(Vn,Vg);Dt(Mf,im);Lf(Ul);Pf(fm,Mp);Of("default",Dg);Vt({type:St,event:St,update:St},Qe);Vt({type:en,event:en,update:en},Qe);Vt({type:lr,event:lr,update:lr},Qe);Vt({type:tn,event:tn,update:tn},Qe);Vt({type:fr,event:fr,update:fr},Qe);kf("light",Ng);kf("dark",Bg);var t0={};function jt(e){return e==null?0:e.length||1}function $s(e){return e}var km=function(){function e(t,r,n,a,i,o){this._old=t,this._new=r,this._oldKeyGetter=n||$s,this._newKeyGetter=a||$s,this.context=i,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},a=new Array(t.length),i=new Array(r.length);this._initIndexMap(t,null,a,"_oldKeyGetter"),this._initIndexMap(r,n,i,"_newKeyGetter");for(var o=0;o1){var v=u.shift();u.length===1&&(n[s]=u[0]),this._update&&this._update(v,o)}else l===1?(n[s]=null,this._update&&this._update(u,o)):this._remove&&this._remove(o)}this._performRestAdd(i,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},a={},i=[],o=[];this._initIndexMap(t,n,i,"_oldKeyGetter"),this._initIndexMap(r,a,o,"_newKeyGetter");for(var s=0;s1&&h===1)this._updateManyToOne&&this._updateManyToOne(v,l),a[u]=null;else if(c===1&&h>1)this._updateOneToMany&&this._updateOneToMany(v,l),a[u]=null;else if(c===1&&h===1)this._update&&this._update(v,l),a[u]=null;else if(c>1&&h>1)this._updateManyToMany&&this._updateManyToMany(v,l),a[u]=null;else if(c>1)for(var f=0;f1)for(var s=0;s30}var er=z,at=P,Wm=typeof Int32Array>"u"?Array:Int32Array,Ym="e\0\0",qs=-1,Xm=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],$m=["_approximateExtent"],Zs,Yr,tr,rr,Ca,Xr,xa,qm=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var n,a=!1;Nf(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(a=!0,n=t),n=n||["x","y"];for(var i={},o=[],s={},u=!1,l={},v=0;v=r)){var n=this._store,a=n.getProvider();this._updateOrdinalMeta();var i=this._nameList,o=this._idList,s=a.getSource().sourceFormat,u=s===Xe;if(u&&!a.pure)for(var l=[],v=t;v0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,a=n[t];a||(a=n[t]={});var i=a[r];return i==null&&(i=this.getVisual(r),E(i)?i=i.slice():er(i)&&(i=A({},i)),a[r]=i),i},e.prototype.setItemVisual=function(t,r,n){var a=this._itemVisuals[t]||{};this._itemVisuals[t]=a,er(r)?A(a,r):a[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){er(t)?A(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?A(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;Zv(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){w(this._graphicEls,function(n,a){n&&t&&t.call(r,n,a)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:at(this.dimensions,this._getDimInfo,this),this.hostModel)),Ca(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Y(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var a=n.apply(this,arguments);return r.apply(this,[a].concat(Ic(arguments)))})},e.internalField=function(){Zs=function(t){var r=t._invertedIndicesMap;w(r,function(n,a){var i=t._dimInfos[a],o=i.ordinalMeta,s=t._store;if(o){n=r[a]=new Wm(o.categories.length);for(var u=0;u1&&(u+="__ec__"+v),a[r]=u}}}(),e}();const n0=qm;function a0(e,t,r){r=r||{};var n=r.byIndex,a=r.stackedCoordDimension,i,o,s;Zm(t)?i=t:(o=t.schema,i=o.dimensions,s=t.store);var u=!!(e&&e.get("stack")),l,v,c,h;if(w(i,function(y,_){O(y)&&(i[_]=y={name:y}),u&&!y.isExtraCoord&&(!n&&!l&&y.ordinalMeta&&(l=y),!v&&y.type!=="ordinal"&&y.type!=="time"&&(!a||a===y.coordDim)&&(v=y))}),v&&!n&&!l&&(n=!0),v){c="__\0ecstackresult_"+e.id,h="__\0ecstackedover_"+e.id,l&&(l.createInvertedIndices=!0);var f=v.coordDim,d=v.type,m=0;w(i,function(y){y.coordDim===f&&m++});var p={name:c,coordDim:f,coordDimIndex:m,type:d,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length},g={name:h,coordDim:h,coordDimIndex:m+1,type:d,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length+1};o?(s&&(p.storeDimIndex=s.ensureCalculationDimension(h,d),g.storeDimIndex=s.ensureCalculationDimension(c,d)),o.appendCalculationDimension(p),o.appendCalculationDimension(g)):(i.push(p),i.push(g))}return{stackedDimension:v&&v.name,stackedByDimension:l&&l.name,isStackedByIndex:n,stackedOverDimension:h,stackResultDimension:c}}function Zm(e){return!Nf(e.schema)}function Bf(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function Km(e,t){return Bf(e,t)?e.getCalculationInfo("stackResultDimension"):t}var Ff=function(){function e(t){this._setting=t||{},this._extent=[1/0,-1/0]}return e.prototype.getSetting=function(t){return this._setting[t]},e.prototype.unionExtent=function(t){var r=this._extent;t[0]r[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();xn(Ff);const tt=Ff;var Qm=0,Jm=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++Qm}return e.createByAxisModel=function(t){var r=t.option,n=r.data,a=n&&P(n,jm);return new e({categories:a,needCollect:!a,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!O(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var a=this._getOrCreateMap();return r=a.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,a.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=H(this.categories))},e}();function jm(e){return z(e)&&e.value!=null?e.value:e+""}const Ks=Jm;function i0(e){return e.type==="interval"||e.type==="log"}function ey(e,t,r,n){var a={},i=e[1]-e[0],o=a.interval=bu(i/t,!0);r!=null&&on&&(o=a.interval=n);var s=a.intervalPrecision=zf(o),u=a.niceTickExtent=[Se(Math.ceil(e[0]/o)*o,s),Se(Math.floor(e[1]/o)*o,s)];return ty(u,e),a}function o0(e){var t=Math.pow(10,fi(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,Se(r*t)}function zf(e){return Ke(e)+2}function Qs(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function ty(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),Qs(e,0,t),Qs(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function Gn(e,t){return e>=t[0]&&e<=t[1]}function Hn(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function Un(e,t){return e*(t[1]-t[0])+t[0]}var Vf=function(e){V(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var a=n.getSetting("ordinalMeta");return a||(a=new Ks({})),E(a)&&(a=new Ks({categories:P(a,function(i){return z(i)?i.value:i})})),n._ordinalMeta=a,n._extent=n.getSetting("extent")||[0,a.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:O(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),Gn(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),Hn(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(Un(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,a=n[0];a<=n[1];)r.push({value:a}),a++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,a=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,u=Math.min(s,n.length);o=0&&r=0&&r=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(tt);tt.registerClass(Vf);const Gf=Vf;var mt=Se,Hf=function(e){V(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="interval",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return Gn(r,this._extent)},t.prototype.normalize=function(r){return Hn(r,this._extent)},t.prototype.scale=function(r){return Un(r,this._extent)},t.prototype.setExtent=function(r,n){var a=this._extent;isNaN(r)||(a[0]=parseFloat(r)),isNaN(n)||(a[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=zf(r)},t.prototype.getTicks=function(r){var n=this._interval,a=this._extent,i=this._niceExtent,o=this._intervalPrecision,s=[];if(!n)return s;var u=1e4;a[0]u)return[];var v=s.length?s[s.length-1].value:i[1];return a[1]>v&&(r?s.push({value:mt(v+n,o)}):s.push({value:a[1]})),s},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),a=[],i=this.getExtent(),o=1;oi[0]&&f0&&(i=i===null?s:Math.min(i,s))}r[n]=i}}return r}function Yf(e){var t=ny(e),r=[];return w(e,function(n){var a=n.coordinateSystem,i=a.getBaseAxis(),o=i.getExtent(),s;if(i.type==="category")s=i.getBandWidth();else if(i.type==="value"||i.type==="time"){var u=i.dim+"_"+i.index,l=t[u],v=Math.abs(o[1]-o[0]),c=i.scale.getExtent(),h=Math.abs(c[1]-c[0]);s=l?v/h*l:v}else{var f=n.getData();s=Math.abs(o[1]-o[0])/f.count()}var d=ne(n.get("barWidth"),s),m=ne(n.get("barMaxWidth"),s),p=ne(n.get("barMinWidth")||(qf(n)?.5:1),s),g=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:d,barMaxWidth:m,barMinWidth:p,barGap:g,barCategoryGap:y,axisKey:Wi(i),stackId:Ui(n)})}),Xf(r)}function Xf(e){var t={};w(e,function(n,a){var i=n.axisKey,o=n.bandWidth,s=t[i]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},u=s.stacks;t[i]=s;var l=n.stackId;u[l]||s.autoWidthCount++,u[l]=u[l]||{width:0,maxWidth:0};var v=n.barWidth;v&&!u[l].width&&(u[l].width=v,v=Math.min(s.remainedWidth,v),s.remainedWidth-=v);var c=n.barMaxWidth;c&&(u[l].maxWidth=c);var h=n.barMinWidth;h&&(u[l].minWidth=h);var f=n.barGap;f!=null&&(s.gap=f);var d=n.barCategoryGap;d!=null&&(s.categoryGap=d)});var r={};return w(t,function(n,a){r[a]={};var i=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var u=Fe(i).length;s=Math.max(35-u*4,15)+"%"}var l=ne(s,o),v=ne(n.gap,1),c=n.remainedWidth,h=n.autoWidthCount,f=(c-l)/(h+(h-1)*v);f=Math.max(f,0),w(i,function(g){var y=g.maxWidth,_=g.minWidth;if(g.width){var S=g.width;y&&(S=Math.min(S,y)),_&&(S=Math.max(S,_)),g.width=S,c-=S+v*S,h--}else{var S=f;y&&yS&&(S=_),S!==f&&(g.width=S,c-=S+v*S,h--)}}),f=(c-l)/(h+(h-1)*v),f=Math.max(f,0);var d=0,m;w(i,function(g,y){g.width||(g.width=f),m=g,d+=g.width*(1+v)}),m&&(d-=m.width*v);var p=-d/2;w(i,function(g,y){r[a][y]=r[a][y]||{bandWidth:o,offset:p,width:g.width},p+=g.width*(1+v)})}),r}function ay(e,t,r){if(e&&t){var n=e[Wi(t)];return n!=null&&r!=null?n[Ui(r)]:n}}function u0(e,t){var r=Wf(e,t),n=Yf(r);w(r,function(a){var i=a.getData(),o=a.coordinateSystem,s=o.getBaseAxis(),u=Ui(a),l=n[Wi(s)][u],v=l.offset,c=l.width;i.setLayout({bandWidth:l.bandWidth,offset:v,size:c})})}function l0(e){return{seriesType:e,plan:of(),reset:function(t){if($f(t)){var r=t.getData(),n=t.coordinateSystem,a=n.getBaseAxis(),i=n.getOtherAxis(a),o=r.getDimensionIndex(r.mapDimension(i.dim)),s=r.getDimensionIndex(r.mapDimension(a.dim)),u=t.get("showBackground",!0),l=r.mapDimension(i.dim),v=r.getCalculationInfo("stackResultDimension"),c=Bf(r,l)&&!!r.getCalculationInfo("stackedOnSeries"),h=i.isHorizontal(),f=iy(a,i),d=qf(t),m=t.get("barMinHeight")||0,p=v&&r.getDimensionIndex(v),g=r.getLayout("size"),y=r.getLayout("offset");return{progress:function(_,S){for(var M=_.count,b=d&&Ia(M*3),T=d&&u&&Ia(M*3),C=d&&Ia(M),D=n.master.getRect(),x=h?D.width:D.height,I,L=S.getStore(),N=0;(I=_.next())!=null;){var R=L.get(c?p:o,I),B=L.get(s,I),G=f,q=void 0;c&&(q=+R-L.get(o,I));var F=void 0,U=void 0,$=void 0,j=void 0;if(h){var ee=n.dataToPoint([R,B]);if(c){var qe=n.dataToPoint([q,B]);G=qe[0]}F=G,U=ee[1]+y,$=ee[0]-G,j=g,Math.abs($)>>1;e[a][1]a&&(this._approxInterval=a);var s=$r.length,u=Math.min(oy($r,this._approxInterval,0,s),s-1);this._interval=$r[u][1],this._minLevelUnit=$r[Math.max(u-1,0)][0]},t.prototype.parse=function(r){return re(r)?r:+We(r)},t.prototype.contain=function(r){return Gn(this.parse(r),this._extent)},t.prototype.normalize=function(r){return Hn(this.parse(r),this._extent)},t.prototype.scale=function(r){return Un(r,this._extent)},t.type="time",t}(Wn),$r=[["second",Ci],["minute",xi],["hour",hr],["quarter-day",hr*6],["half-day",hr*12],["day",xe*1.2],["half-week",xe*3.5],["week",xe*7],["month",xe*31],["quarter",xe*95],["half-year",jo/2],["year",jo]];function sy(e,t,r,n){var a=We(t),i=We(r),o=function(d){return ts(a,d,n)===ts(i,d,n)},s=function(){return o("year")},u=function(){return s()&&o("month")},l=function(){return u()&&o("day")},v=function(){return l()&&o("hour")},c=function(){return v()&&o("minute")},h=function(){return c()&&o("second")},f=function(){return h()&&o("millisecond")};switch(e){case"year":return s();case"month":return u();case"day":return l();case"hour":return v();case"minute":return c();case"second":return h();case"millisecond":return f()}}function uy(e,t){return e/=xe,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function ly(e){var t=30*xe;return e/=t,e>6?6:e>3?3:e>2?2:1}function fy(e){return e/=hr,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function Js(e,t){return e/=t?xi:Ci,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function cy(e){return bu(e,!0)}function vy(e,t,r){var n=new Date(e);switch(Nt(t)){case"year":case"month":n[Dl(r)](0);case"day":n[Cl(r)](1);case"hour":n[xl(r)](0);case"minute":n[Il(r)](0);case"second":n[Al(r)](0),n[El(r)](0)}return n.getTime()}function hy(e,t,r,n){var a=1e4,i=Ml,o=0;function s(x,I,L,N,R,B,G){for(var q=new Date(I),F=I,U=q[N]();F1&&B===0&&L.unshift({value:L[0].value-F})}}for(var B=0;B=n[0]&&y<=n[1]&&c++)}var _=(n[1]-n[0])/t;if(c>_*1.5&&h>_/1.5||(l.push(p),c>_||e===i[f]))break}v=[]}}}for(var S=Ce(P(l,function(x){return Ce(x,function(I){return I.value>=n[0]&&I.value<=n[1]&&!I.notAdd})}),function(x){return x.length>0}),M=[],b=S.length-1,f=0;f0;)i*=10;var s=[Se(my(n[0]/i)*i),Se(gy(n[1]/i)*i)];this._interval=i,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){mr.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=ke(r)/ke(this.base),Gn(r,this._extent)},t.prototype.normalize=function(r){return r=ke(r)/ke(this.base),Hn(r,this._extent)},t.prototype.scale=function(r){return r=Un(r,this._extent),qr(this.base,r)},t.type="log",t}(tt),Kf=Yi.prototype;Kf.getMinorTicks=mr.getMinorTicks;Kf.getLabel=mr.getLabel;function Zr(e,t){return py(e,Ke(t))}tt.registerClass(Yi);const yy=Yi;var _y=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]0&&u>0&&!l&&(s=0),s<0&&u<0&&!v&&(u=0));var h=this._determinedMin,f=this._determinedMax;return h!=null&&(s=h,l=!0),f!=null&&(u=f,v=!0),{min:s,max:u,minFixed:l,maxFixed:v,isBlank:c}},e.prototype.modifyDataMinMax=function(t,r){this[wy[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=Sy[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),Sy={min:"_determinedMin",max:"_determinedMax"},wy={min:"_dataMin",max:"_dataMax"};function by(e,t,r){var n=e.rawExtentInfo;return n||(n=new _y(e,t,r),e.rawExtentInfo=n,n)}function Kr(e,t){return t==null?null:La(t)?NaN:e.parse(t)}function My(e,t){var r=e.type,n=by(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var a=n.min,i=n.max,o=t.ecModel;if(o&&r==="time"){var s=Wf("bar",o),u=!1;if(w(s,function(c){u=u||c.getBaseAxis()===t.axis}),u){var l=Yf(s),v=Ty(a,i,t,l);a=v.min,i=v.max}}return{extent:[a,i],fixMin:n.minFixed,fixMax:n.maxFixed}}function Ty(e,t,r,n){var a=r.axis.getExtent(),i=a[1]-a[0],o=ay(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;w(o,function(f){s=Math.min(f.offset,s)});var u=-1/0;w(o,function(f){u=Math.max(f.offset+f.width,u)}),s=Math.abs(s),u=Math.abs(u);var l=s+u,v=t-e,c=1-(s+u)/i,h=v/c-v;return t+=h*(u/l),e-=h*(s/l),{min:e,max:t}}function f0(e,t){var r=t,n=My(e,r),a=n.extent,i=r.get("splitNumber");e instanceof yy&&(e.base=r.get("logBase"));var o=e.type,s=r.get("interval"),u=o==="interval"||o==="time";e.setExtent(a[0],a[1]),e.calcNiceExtent({splitNumber:i,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:u?r.get("minInterval"):null,maxInterval:u?r.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function c0(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new Gf({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new dy({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(tt.getClass(t)||Wn)}}function v0(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function xr(e){var t=e.getLabelModel().get("formatter"),r=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(n){return function(a,i){return e.scale.getFormattedLabel(a,i,n)}}(t):O(t)?function(n){return function(a){var i=e.scale.getLabel(a),o=n.replace("{value}",i??"");return o}}(t):Y(t)?function(n){return function(a,i){return r!=null&&(i=a.value-r),n(Dy(e,a),i,a.level!=null?{level:a.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function Dy(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function h0(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,a,i=r.getExtent();r instanceof Gf?a=r.count():(n=r.getTicks(),a=n.length);var o=e.getLabelModel(),s=xr(e),u,l=1;a>40&&(l=Math.ceil(a/40));for(var v=0;ve[1]&&(e[1]=a[1])})}var p0=function(){function e(){}return e.prototype.getNeedCrossZero=function(){var t=this.option;return!t.scale},e.prototype.getCoordSysModel=function(){},e}(),eu=[],Ay={registerPreprocessor:Lf,registerProcessor:Pf,registerPostInit:Cm,registerPostUpdate:xm,registerUpdateLifecycle:Gi,registerAction:Vt,registerCoordinateSystem:Im,registerLayout:Am,registerVisual:Dt,registerTransform:Rm,registerLoading:Of,registerMap:Em,registerImpl:sm,PRIORITY:_m,ComponentModel:te,ComponentView:ti,SeriesModel:dn,ChartView:pr,registerComponentModel:function(e){te.registerClass(e)},registerComponentView:function(e){ti.registerClass(e)},registerSeriesModel:function(e){dn.registerClass(e)},registerChartView:function(e){pr.registerClass(e)},registerSubTypeDefaulter:function(e,t){te.registerSubTypeDefaulter(e,t)},registerPainter:function(e,t){Su(e,t)}};function Ey(e){if(E(e)){w(e,function(t){Ey(t)});return}fe(eu,e)>=0||(eu.push(e),Y(e)&&(e={install:e}),e.install(Ay))}var Ry=1e-8;function tu(e,t){return Math.abs(e-t)a&&(n=o,a=u)}if(n)return Ly(n.exterior);var l=this.getBoundingRect();return[l.x+l.width/2,l.y+l.height/2]},t.prototype.getBoundingRect=function(r){var n=this._rect;if(n&&!r)return n;var a=[1/0,1/0],i=[-1/0,-1/0],o=this.geometries;return w(o,function(s){s.type==="polygon"?nu(s.exterior,a,i,r):w(s.points,function(u){nu(u,a,i,r)})}),isFinite(a[0])&&isFinite(a[1])&&isFinite(i[0])&&isFinite(i[1])||(a[0]=a[1]=i[0]=i[1]=0),n=new be(a[0],a[1],i[0]-a[0],i[1]-a[1]),r||(this._rect=n),n},t.prototype.contain=function(r){var n=this.getBoundingRect(),a=this.geometries;if(!n.contain(r[0],r[1]))return!1;e:for(var i=0,o=a.length;i>1^-(s&1),u=u>>1^-(u&1),s+=a,u+=i,a=s,i=u,n.push([s/r,u/r])}return n}function m0(e,t){return e=Oy(e),P(Ce(e.features,function(r){return r.geometry&&r.properties&&r.geometry.coordinates.length>0}),function(r){var n=r.properties,a=r.geometry,i=[];switch(a.type){case"Polygon":var o=a.coordinates;i.push(new au(o[0],o.slice(1)));break;case"MultiPolygon":w(a.coordinates,function(u){u[0]&&i.push(new au(u[0],u.slice(1)))});break;case"LineString":i.push(new iu([a.coordinates]));break;case"MultiLineString":i.push(new iu(a.coordinates))}var s=new Py(n[t||"name"],i,n.cp);return s.properties=n,s})}var Dr=ve();function Ny(e){return e.type==="category"?Fy(e):Vy(e)}function By(e,t){return e.type==="category"?zy(e,t):{ticks:P(e.scale.getTicks(),function(r){return r.value})}}function Fy(e){var t=e.getLabelModel(),r=jf(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function jf(e,t){var r=ec(e,"labels"),n=Xi(t),a=tc(r,n);if(a)return a;var i,o;return Y(n)?i=ac(e,n):(o=n==="auto"?Gy(e):n,i=nc(e,o)),rc(r,n,{labels:i,labelCategoryInterval:o})}function zy(e,t){var r=ec(e,"ticks"),n=Xi(t),a=tc(r,n);if(a)return a;var i,o;if((!t.get("show")||e.scale.isBlank())&&(i=[]),Y(n))i=ac(e,n,!0);else if(n==="auto"){var s=jf(e,e.getLabelModel());o=s.labelCategoryInterval,i=P(s.labels,function(u){return u.tickValue})}else o=n,i=nc(e,o,!0);return rc(r,n,{ticks:i,tickCategoryInterval:o})}function Vy(e){var t=e.scale.getTicks(),r=xr(e);return{labels:P(t,function(n,a){return{level:n.level,formattedLabel:r(n,a),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function ec(e,t){return Dr(e)[t]||(Dr(e)[t]=[])}function tc(e,t){for(var r=0;r40&&(s=Math.max(1,Math.floor(o/40)));for(var u=i[0],l=e.dataToCoord(u+1)-e.dataToCoord(u),v=Math.abs(l*Math.cos(n)),c=Math.abs(l*Math.sin(n)),h=0,f=0;u<=i[1];u+=s){var d=0,m=0,p=Ac(r({value:u}),t.font,"center","top");d=p.width*1.3,m=p.height*1.3,h=Math.max(h,d,7),f=Math.max(f,m,7)}var g=h/v,y=f/c;isNaN(g)&&(g=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(g,y))),S=Dr(e.model),M=e.getExtent(),b=S.lastAutoInterval,T=S.lastTickCount;return b!=null&&T!=null&&Math.abs(b-_)<=1&&Math.abs(T-o)<=1&&b>_&&S.axisExtent0===M[0]&&S.axisExtent1===M[1]?_=b:(S.lastTickCount=o,S.lastAutoInterval=_,S.axisExtent0=M[0],S.axisExtent1=M[1]),_}function Uy(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function nc(e,t,r){var n=xr(e),a=e.scale,i=a.getExtent(),o=e.getLabelModel(),s=[],u=Math.max((t||0)+1,1),l=i[0],v=a.count();l!==0&&u>1&&v/u>2&&(l=Math.round(Math.ceil(l/u)*u));var c=xy(e),h=o.get("showMinLabel")||c,f=o.get("showMaxLabel")||c;h&&l!==i[0]&&m(i[0]);for(var d=l;d<=i[1];d+=u)m(d);f&&d-u!==i[1]&&m(i[1]);function m(p){var g={value:p};s.push(r?p:{formattedLabel:n(g),rawLabel:a.getLabel(g),tickValue:p})}return s}function ac(e,t,r){var n=e.scale,a=xr(e),i=[];return w(n.getTicks(),function(o){var s=n.getLabel(o),u=o.value;t(o.value,s)&&i.push(r?u:{formattedLabel:a(o),rawLabel:s,tickValue:u})}),i}var ou=[0,1],Wy=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);return t>=n&&t<=a},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return gv(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,a=this.scale;return t=a.normalize(t),this.onBand&&a.type==="ordinal"&&(n=n.slice(),su(n,a.count())),wo(t,ou,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,a=this.scale;this.onBand&&a.type==="ordinal"&&(n=n.slice(),su(n,a.count()));var i=wo(t,n,ou,r);return this.scale.scale(i)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=By(this,r),a=n.ticks,i=P(a,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return Yy(this,i,o,t.clamp),i},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),a=P(n,function(i){return P(i,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return a},e.prototype.getViewLabels=function(){return Ny(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var a=Math.abs(t[1]-t[0]);return Math.abs(a)/n},e.prototype.calculateCategoryInterval=function(){return Hy(this)},e}();function su(e,t){var r=e[1]-e[0],n=t,a=r/n/2;e[0]+=a,e[1]-=a}function Yy(e,t,r,n){var a=t.length;if(!e.onBand||r||!a)return;var i=e.getExtent(),o,s;if(a===1)t[0].coord=i[0],o=t[1]={coord:i[0]};else{var u=t[a-1].tickValue-t[0].tickValue,l=(t[a-1].coord-t[0].coord)/u;w(t,function(f){f.coord-=l/2});var v=e.scale.getExtent();s=1+v[1]-t[a-1].tickValue,o={coord:t[a-1].coord+l*s},t.push(o)}var c=i[0]>i[1];h(t[0].coord,i[0])&&(n?t[0].coord=i[0]:t.shift()),n&&h(i[0],t[0].coord)&&t.unshift({coord:i[0]}),h(i[1],o.coord)&&(n?o.coord=i[1]:t.pop()),n&&h(o.coord,i[1])&&t.push({coord:i[1]});function h(f,d){return f=Se(f),d=Se(d),c?f>d:fo[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var D={},Rt=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then},dt={},I={};let it;const Lt=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];I.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return t*4+17};I.getSymbolTotalCodewords=function(t){return Lt[t]};I.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t};I.setToSJISFunction=function(t){if(typeof t!="function")throw new Error('"toSJISFunc" is not a valid function.');it=t};I.isKanjiModeEnabled=function(){return typeof it<"u"};I.toSJIS=function(t){return it(t)};var $={};(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(i){if(typeof i!="string")throw new Error("Param is not a string");switch(i.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+i)}}e.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},e.from=function(o,r){if(e.isValid(o))return o;try{return t(o)}catch{return r}}})($);function ht(){this.buffer=[],this.length=0}ht.prototype={get:function(e){const t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)===1},put:function(e,t){for(let i=0;i>>t-i-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(e){const t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var Dt=ht;function H(e){if(!e||e<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}H.prototype.set=function(e,t,i,o){const r=e*this.size+t;this.data[r]=i,o&&(this.reservedBit[r]=!0)};H.prototype.get=function(e,t){return this.data[e*this.size+t]};H.prototype.xor=function(e,t,i){this.data[e*this.size+t]^=i};H.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]};var _t=H,wt={};(function(e){const t=I.getSymbolSize;e.getRowColCoords=function(o){if(o===1)return[];const r=Math.floor(o/7)+2,n=t(o),s=n===145?26:Math.ceil((n-13)/(2*r-2))*2,c=[n-7];for(let u=1;u=0&&r<=7},e.from=function(r){return e.isValid(r)?parseInt(r,10):void 0},e.getPenaltyN1=function(r){const n=r.size;let s=0,c=0,u=0,a=null,l=null;for(let B=0;B=5&&(s+=t.N1+(c-5)),a=f,c=1),f=r.get(w,B),f===l?u++:(u>=5&&(s+=t.N1+(u-5)),l=f,u=1)}c>=5&&(s+=t.N1+(c-5)),u>=5&&(s+=t.N1+(u-5))}return s},e.getPenaltyN2=function(r){const n=r.size;let s=0;for(let c=0;c=10&&(c===1488||c===93)&&s++,u=u<<1&2047|r.get(l,a),l>=10&&(u===1488||u===93)&&s++}return s*t.N3},e.getPenaltyN4=function(r){let n=0;const s=r.data.length;for(let u=0;u=0;){const s=n[0];for(let u=0;u0){const n=new Uint8Array(this.degree);return n.set(o,r),n}return o};var Ft=st,Bt={},L={},ut={};ut.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40};var M={};const pt="[0-9]+",kt="[A-Z $%*+\\-./:]+";let V="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";V=V.replace(/u/g,"\\u");const vt="(?:(?![A-Z0-9 $%*+\\-./:]|"+V+`)(?:.|[\r +]))+`;M.KANJI=new RegExp(V,"g");M.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");M.BYTE=new RegExp(vt,"g");M.NUMERIC=new RegExp(pt,"g");M.ALPHANUMERIC=new RegExp(kt,"g");const zt=new RegExp("^"+V+"$"),Vt=new RegExp("^"+pt+"$"),Ht=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");M.testKanji=function(t){return zt.test(t)};M.testNumeric=function(t){return Vt.test(t)};M.testAlphanumeric=function(t){return Ht.test(t)};(function(e){const t=ut,i=M;e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(n,s){if(!n.ccBits)throw new Error("Invalid mode: "+n);if(!t.isValid(s))throw new Error("Invalid version: "+s);return s>=1&&s<10?n.ccBits[0]:s<27?n.ccBits[1]:n.ccBits[2]},e.getBestModeForData=function(n){return i.testNumeric(n)?e.NUMERIC:i.testAlphanumeric(n)?e.ALPHANUMERIC:i.testKanji(n)?e.KANJI:e.BYTE},e.toString=function(n){if(n&&n.id)return n.id;throw new Error("Invalid mode")},e.isValid=function(n){return n&&n.bit&&n.ccBits};function o(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+r)}}e.from=function(n,s){if(e.isValid(n))return n;try{return o(n)}catch{return s}}})(L);(function(e){const t=I,i=j,o=$,r=L,n=ut,s=7973,c=t.getBCHDigit(s);function u(w,f,m){for(let y=1;y<=40;y++)if(f<=e.getCapacity(y,m,w))return y}function a(w,f){return r.getCharCountIndicator(w,f)+4}function l(w,f){let m=0;return w.forEach(function(y){const T=a(y.mode,f);m+=T+y.getBitsLength()}),m}function B(w,f){for(let m=1;m<=40;m++)if(l(w,m)<=e.getCapacity(m,f,r.MIXED))return m}e.from=function(f,m){return n.isValid(f)?parseInt(f,10):m},e.getCapacity=function(f,m,y){if(!n.isValid(f))throw new Error("Invalid QR Code version");typeof y>"u"&&(y=r.BYTE);const T=t.getSymbolTotalCodewords(f),h=i.getTotalCodewordsCount(f,m),C=(T-h)*8;if(y===r.MIXED)return C;const d=C-a(y,f);switch(y){case r.NUMERIC:return Math.floor(d/10*3);case r.ALPHANUMERIC:return Math.floor(d/11*2);case r.KANJI:return Math.floor(d/13);case r.BYTE:default:return Math.floor(d/8)}},e.getBestVersionForData=function(f,m){let y;const T=o.from(m,o.M);if(Array.isArray(f)){if(f.length>1)return B(f,T);if(f.length===0)return 1;y=f[0]}else y=f;return u(y.mode,y.getLength(),T)},e.getEncodedBits=function(f){if(!n.isValid(f)||f<7)throw new Error("Invalid QR Code version");let m=f<<12;for(;t.getBCHDigit(m)-c>=0;)m^=s<=0;)r^=Tt<0&&(o=this.data.substr(i),r=parseInt(o,10),t.put(r,n*3+1))};var Ot=_;const Yt=L,W=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function U(e){this.mode=Yt.ALPHANUMERIC,this.data=e}U.getBitsLength=function(t){return 11*Math.floor(t/2)+6*(t%2)};U.prototype.getLength=function(){return this.data.length};U.prototype.getBitsLength=function(){return U.getBitsLength(this.data.length)};U.prototype.write=function(t){let i;for(i=0;i+2<=this.data.length;i+=2){let o=W.indexOf(this.data[i])*45;o+=W.indexOf(this.data[i+1]),t.put(o,11)}this.data.length%2&&t.put(W.indexOf(this.data[i]),6)};var $t=U,jt=function(t){for(var i=[],o=t.length,r=0;r=55296&&n<=56319&&o>r+1){var s=t.charCodeAt(r+1);s>=56320&&s<=57343&&(n=(n-55296)*1024+s-56320+65536,r+=1)}if(n<128){i.push(n);continue}if(n<2048){i.push(n>>6|192),i.push(n&63|128);continue}if(n<55296||n>=57344&&n<65536){i.push(n>>12|224),i.push(n>>6&63|128),i.push(n&63|128);continue}if(n>=65536&&n<=1114111){i.push(n>>18|240),i.push(n>>12&63|128),i.push(n>>6&63|128),i.push(n&63|128);continue}i.push(239,191,189)}return new Uint8Array(i).buffer};const Gt=jt,Qt=L;function F(e){this.mode=Qt.BYTE,typeof e=="string"&&(e=Gt(e)),this.data=new Uint8Array(e)}F.getBitsLength=function(t){return t*8};F.prototype.getLength=function(){return this.data.length};F.prototype.getBitsLength=function(){return F.getBitsLength(this.data.length)};F.prototype.write=function(e){for(let t=0,i=this.data.length;t=33088&&i<=40956)i-=33088;else if(i>=57408&&i<=60351)i-=49472;else throw new Error("Invalid SJIS character: "+this.data[t]+` +Make sure your charset is UTF-8`);i=(i>>>8&255)*192+(i&255),e.put(i,13)}};var Xt=k,Nt={exports:{}};(function(e){var t={single_source_shortest_paths:function(i,o,r){var n={},s={};s[o]=0;var c=t.PriorityQueue.make();c.push(o,0);for(var u,a,l,B,w,f,m,y,T;!c.empty();){u=c.pop(),a=u.value,B=u.cost,w=i[a]||{};for(l in w)w.hasOwnProperty(l)&&(f=w[l],m=B+f,y=s[l],T=typeof s[l]>"u",(T||y>m)&&(s[l]=m,c.push(l,m),n[l]=a))}if(typeof r<"u"&&typeof s[r]>"u"){var h=["Could not find a path from ",o," to ",r,"."].join("");throw new Error(h)}return n},extract_shortest_path_from_predecessor_list:function(i,o){for(var r=[],n=o;n;)r.push(n),i[n],n=i[n];return r.reverse(),r},find_path:function(i,o,r){var n=t.single_source_shortest_paths(i,o,r);return t.extract_shortest_path_from_predecessor_list(n,r)},PriorityQueue:{make:function(i){var o=t.PriorityQueue,r={},n;i=i||{};for(n in o)o.hasOwnProperty(n)&&(r[n]=o[n]);return r.queue=[],r.sorter=i.sorter||o.default_sorter,r},default_sorter:function(i,o){return i.cost-o.cost},push:function(i,o){var r={value:i,cost:o};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(Nt);var xt=Nt.exports;(function(e){const t=L,i=Ot,o=$t,r=qt,n=Xt,s=M,c=I,u=xt;function a(h){return unescape(encodeURIComponent(h)).length}function l(h,C,d){const g=[];let E;for(;(E=h.exec(d))!==null;)g.push({data:E[0],index:E.index,mode:C,length:E[0].length});return g}function B(h){const C=l(s.NUMERIC,t.NUMERIC,h),d=l(s.ALPHANUMERIC,t.ALPHANUMERIC,h);let g,E;return c.isKanjiModeEnabled()?(g=l(s.BYTE,t.BYTE,h),E=l(s.KANJI,t.KANJI,h)):(g=l(s.BYTE_KANJI,t.BYTE,h),E=[]),C.concat(d,g,E).sort(function(A,N){return A.index-N.index}).map(function(A){return{data:A.data,mode:A.mode,length:A.length}})}function w(h,C){switch(C){case t.NUMERIC:return i.getBitsLength(h);case t.ALPHANUMERIC:return o.getBitsLength(h);case t.KANJI:return n.getBitsLength(h);case t.BYTE:return r.getBitsLength(h)}}function f(h){return h.reduce(function(C,d){const g=C.length-1>=0?C[C.length-1]:null;return g&&g.mode===d.mode?(C[C.length-1].data+=d.data,C):(C.push(d),C)},[])}function m(h){const C=[];for(let d=0;d=0&&c<=6&&(u===0||u===6)||u>=0&&u<=6&&(c===0||c===6)||c>=2&&c<=4&&u>=2&&u<=4?e.set(n+c,s+u,!0,!0):e.set(n+c,s+u,!1,!0))}}function ce(e){const t=e.size;for(let i=8;i>c&1)===1,e.set(r,n,s,!0),e.set(n,r,s,!0)}function x(e,t,i){const o=e.size,r=ie.getEncodedBits(t,i);let n,s;for(n=0;n<15;n++)s=(r>>n&1)===1,n<6?e.set(n,8,s,!0):n<8?e.set(n+1,8,s,!0):e.set(o-15+n,8,s,!0),n<8?e.set(8,o-n-1,s,!0):n<9?e.set(8,15-n-1+1,s,!0):e.set(8,15-n-1,s,!0);e.set(o-8,8,1,!0)}function fe(e,t){const i=e.size;let o=-1,r=i-1,n=7,s=0;for(let c=i-1;c>0;c-=2)for(c===6&&c--;;){for(let u=0;u<2;u++)if(!e.isReserved(r,c-u)){let a=!1;s>>n&1)===1),e.set(r,c-u,a),n--,n===-1&&(s++,n=7)}if(r+=o,r<0||i<=r){r-=o,o=-o;break}}}function ge(e,t,i){const o=new te;i.forEach(function(u){o.put(u.mode.bit,4),o.put(u.getLength(),se.getCharCountIndicator(u.mode,e)),u.write(o)});const r=Q.getSymbolTotalCodewords(e),n=rt.getTotalCodewordsCount(e,t),s=(r-n)*8;for(o.getLengthInBits()+4<=s&&o.put(0,4);o.getLengthInBits()%8!==0;)o.putBit(0);const c=(s-o.getLengthInBits())/8;for(let u=0;u=7&&le(u,t),fe(u,s),isNaN(o)&&(o=nt.getBestMask(u,x.bind(null,u,i))),nt.applyMask(o,u),x(u,i,o),{modules:u,version:t,errorCorrectionLevel:i,maskPattern:o,segments:r}}dt.create=function(t,i){if(typeof t>"u"||t==="")throw new Error("No input text");let o=Z.M,r,n;return typeof i<"u"&&(o=Z.from(i.errorCorrectionLevel,Z.M),r=Y.from(i.version),n=nt.from(i.maskPattern),i.toSJISFunc&&Q.setToSJISFunction(i.toSJISFunc)),he(t,r,o,n)};var bt={},ct={};(function(e){function t(i){if(typeof i=="number"&&(i=i.toString()),typeof i!="string")throw new Error("Color should be defined as hex string");let o=i.slice().replace("#","").split("");if(o.length<3||o.length===5||o.length>8)throw new Error("Invalid hex color: "+i);(o.length===3||o.length===4)&&(o=Array.prototype.concat.apply([],o.map(function(n){return[n,n]}))),o.length===6&&o.push("F","F");const r=parseInt(o.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+o.slice(0,6).join("")}}e.getOptions=function(o){o||(o={}),o.color||(o.color={});const r=typeof o.margin>"u"||o.margin===null||o.margin<0?4:o.margin,n=o.width&&o.width>=21?o.width:void 0,s=o.scale||4;return{width:n,scale:n?4:s,margin:r,color:{dark:t(o.color.dark||"#000000ff"),light:t(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},e.getScale=function(o,r){return r.width&&r.width>=o+r.margin*2?r.width/(o+r.margin*2):r.scale},e.getImageWidth=function(o,r){const n=e.getScale(o,r);return Math.floor((o+r.margin*2)*n)},e.qrToImageData=function(o,r,n){const s=r.modules.size,c=r.modules.data,u=e.getScale(s,n),a=Math.floor((s+n.margin*2)*u),l=n.margin*u,B=[n.color.light,n.color.dark];for(let w=0;w=l&&f>=l&&w"u"&&(!s||!s.getContext)&&(u=s,s=void 0),s||(a=o()),u=t.getOptions(u);const l=t.getImageWidth(n.modules.size,u),B=a.getContext("2d"),w=B.createImageData(l,l);return t.qrToImageData(w.data,n,u),i(B,a,l),B.putImageData(w,0,0),a},e.renderToDataURL=function(n,s,c){let u=c;typeof u>"u"&&(!s||!s.getContext)&&(u=s,s=void 0),u||(u={});const a=e.render(n,s,u),l=u.type||"image/png",B=u.rendererOpts||{};return a.toDataURL(l,B.quality)}})(bt);var Mt={};const we=ct;function gt(e,t){const i=e.a/255,o=t+'="'+e.hex+'"';return i<1?o+" "+t+'-opacity="'+i.toFixed(2).slice(1)+'"':o}function tt(e,t,i){let o=e+t;return typeof i<"u"&&(o+=" "+i),o}function me(e,t,i){let o="",r=0,n=!1,s=0;for(let c=0;c0&&u>0&&e[c-1]||(o+=n?tt("M",u+i,.5+a+i):tt("m",r,0),r=0,n=!1),u+1':"",a="',l='viewBox="0 0 '+c+" "+c+'"',w=''+u+a+` +`;return typeof o=="function"&&o(null,w),w};const ye=Rt,ot=dt,Pt=bt,Ce=Mt;function at(e,t,i,o,r){const n=[].slice.call(arguments,1),s=n.length,c=typeof n[s-1]=="function";if(!c&&!ye())throw new Error("Callback required as last argument");if(c){if(s<2)throw new Error("Too few arguments provided");s===2?(r=i,i=t,t=o=void 0):s===3&&(t.getContext&&typeof r>"u"?(r=o,o=void 0):(r=o,o=i,i=t,t=void 0))}else{if(s<1)throw new Error("Too few arguments provided");return s===1?(i=t,t=o=void 0):s===2&&!t.getContext&&(o=i,i=t,t=void 0),new Promise(function(u,a){try{const l=ot.create(i,o);u(e(l,t,o))}catch(l){a(l)}})}try{const u=ot.create(i,o);r(null,e(u,t,o))}catch(u){r(u)}}var Ee=D.create=ot.create,Be=D.toCanvas=at.bind(null,Pt.render),pe=D.toDataURL=at.bind(null,Pt.renderToDataURL),Ae=D.toString=at.bind(null,function(e,t,i){return Ce.render(e,i)});const Te=St({__proto__:null,create:Ee,default:D,toCanvas:Be,toDataURL:pe,toString:Ae},[D]);export{Te as b}; diff --git a/templates/assets/dist/assets/browser-e6953f98.js b/templates/assets/dist/assets/browser-e6953f98.js deleted file mode 100644 index cee13565..00000000 --- a/templates/assets/dist/assets/browser-e6953f98.js +++ /dev/null @@ -1,2055 +0,0 @@ -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: "Module" })); -} -var browser$1 = {}; -var canPromise$1 = function() { - return typeof Promise === "function" && Promise.prototype && Promise.prototype.then; -}; -var qrcode = {}; -var utils$1 = {}; -let toSJISFunction; -const CODEWORDS_COUNT = [ - 0, - // Not used - 26, - 44, - 70, - 100, - 134, - 172, - 196, - 242, - 292, - 346, - 404, - 466, - 532, - 581, - 655, - 733, - 815, - 901, - 991, - 1085, - 1156, - 1258, - 1364, - 1474, - 1588, - 1706, - 1828, - 1921, - 2051, - 2185, - 2323, - 2465, - 2611, - 2761, - 2876, - 3034, - 3196, - 3362, - 3532, - 3706 -]; -utils$1.getSymbolSize = function getSymbolSize(version2) { - if (!version2) - throw new Error('"version" cannot be null or undefined'); - if (version2 < 1 || version2 > 40) - throw new Error('"version" should be in range from 1 to 40'); - return version2 * 4 + 17; -}; -utils$1.getSymbolTotalCodewords = function getSymbolTotalCodewords(version2) { - return CODEWORDS_COUNT[version2]; -}; -utils$1.getBCHDigit = function(data) { - let digit = 0; - while (data !== 0) { - digit++; - data >>>= 1; - } - return digit; -}; -utils$1.setToSJISFunction = function setToSJISFunction(f) { - if (typeof f !== "function") { - throw new Error('"toSJISFunc" is not a valid function.'); - } - toSJISFunction = f; -}; -utils$1.isKanjiModeEnabled = function() { - return typeof toSJISFunction !== "undefined"; -}; -utils$1.toSJIS = function toSJIS(kanji2) { - return toSJISFunction(kanji2); -}; -var errorCorrectionLevel = {}; -(function(exports) { - exports.L = { bit: 1 }; - exports.M = { bit: 0 }; - exports.Q = { bit: 3 }; - exports.H = { bit: 2 }; - function fromString(string) { - if (typeof string !== "string") { - throw new Error("Param is not a string"); - } - const lcStr = string.toLowerCase(); - switch (lcStr) { - case "l": - case "low": - return exports.L; - case "m": - case "medium": - return exports.M; - case "q": - case "quartile": - return exports.Q; - case "h": - case "high": - return exports.H; - default: - throw new Error("Unknown EC Level: " + string); - } - } - exports.isValid = function isValid2(level) { - return level && typeof level.bit !== "undefined" && level.bit >= 0 && level.bit < 4; - }; - exports.from = function from(value, defaultValue) { - if (exports.isValid(value)) { - return value; - } - try { - return fromString(value); - } catch (e) { - return defaultValue; - } - }; -})(errorCorrectionLevel); -function BitBuffer$1() { - this.buffer = []; - this.length = 0; -} -BitBuffer$1.prototype = { - get: function(index) { - const bufIndex = Math.floor(index / 8); - return (this.buffer[bufIndex] >>> 7 - index % 8 & 1) === 1; - }, - put: function(num, length) { - for (let i = 0; i < length; i++) { - this.putBit((num >>> length - i - 1 & 1) === 1); - } - }, - getLengthInBits: function() { - return this.length; - }, - putBit: function(bit) { - const bufIndex = Math.floor(this.length / 8); - if (this.buffer.length <= bufIndex) { - this.buffer.push(0); - } - if (bit) { - this.buffer[bufIndex] |= 128 >>> this.length % 8; - } - this.length++; - } -}; -var bitBuffer = BitBuffer$1; -function BitMatrix$1(size) { - if (!size || size < 1) { - throw new Error("BitMatrix size must be defined and greater than 0"); - } - this.size = size; - this.data = new Uint8Array(size * size); - this.reservedBit = new Uint8Array(size * size); -} -BitMatrix$1.prototype.set = function(row, col, value, reserved) { - const index = row * this.size + col; - this.data[index] = value; - if (reserved) - this.reservedBit[index] = true; -}; -BitMatrix$1.prototype.get = function(row, col) { - return this.data[row * this.size + col]; -}; -BitMatrix$1.prototype.xor = function(row, col, value) { - this.data[row * this.size + col] ^= value; -}; -BitMatrix$1.prototype.isReserved = function(row, col) { - return this.reservedBit[row * this.size + col]; -}; -var bitMatrix = BitMatrix$1; -var alignmentPattern = {}; -(function(exports) { - const getSymbolSize3 = utils$1.getSymbolSize; - exports.getRowColCoords = function getRowColCoords(version2) { - if (version2 === 1) - return []; - const posCount = Math.floor(version2 / 7) + 2; - const size = getSymbolSize3(version2); - const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2; - const positions = [size - 7]; - for (let i = 1; i < posCount - 1; i++) { - positions[i] = positions[i - 1] - intervals; - } - positions.push(6); - return positions.reverse(); - }; - exports.getPositions = function getPositions2(version2) { - const coords = []; - const pos = exports.getRowColCoords(version2); - const posLength = pos.length; - for (let i = 0; i < posLength; i++) { - for (let j = 0; j < posLength; j++) { - if (i === 0 && j === 0 || // top-left - i === 0 && j === posLength - 1 || // bottom-left - i === posLength - 1 && j === 0) { - continue; - } - coords.push([pos[i], pos[j]]); - } - } - return coords; - }; -})(alignmentPattern); -var finderPattern = {}; -const getSymbolSize2 = utils$1.getSymbolSize; -const FINDER_PATTERN_SIZE = 7; -finderPattern.getPositions = function getPositions(version2) { - const size = getSymbolSize2(version2); - return [ - // top-left - [0, 0], - // top-right - [size - FINDER_PATTERN_SIZE, 0], - // bottom-left - [0, size - FINDER_PATTERN_SIZE] - ]; -}; -var maskPattern = {}; -(function(exports) { - exports.Patterns = { - PATTERN000: 0, - PATTERN001: 1, - PATTERN010: 2, - PATTERN011: 3, - PATTERN100: 4, - PATTERN101: 5, - PATTERN110: 6, - PATTERN111: 7 - }; - const PenaltyScores = { - N1: 3, - N2: 3, - N3: 40, - N4: 10 - }; - exports.isValid = function isValid2(mask) { - return mask != null && mask !== "" && !isNaN(mask) && mask >= 0 && mask <= 7; - }; - exports.from = function from(value) { - return exports.isValid(value) ? parseInt(value, 10) : void 0; - }; - exports.getPenaltyN1 = function getPenaltyN1(data) { - const size = data.size; - let points = 0; - let sameCountCol = 0; - let sameCountRow = 0; - let lastCol = null; - let lastRow = null; - for (let row = 0; row < size; row++) { - sameCountCol = sameCountRow = 0; - lastCol = lastRow = null; - for (let col = 0; col < size; col++) { - let module = data.get(row, col); - if (module === lastCol) { - sameCountCol++; - } else { - if (sameCountCol >= 5) - points += PenaltyScores.N1 + (sameCountCol - 5); - lastCol = module; - sameCountCol = 1; - } - module = data.get(col, row); - if (module === lastRow) { - sameCountRow++; - } else { - if (sameCountRow >= 5) - points += PenaltyScores.N1 + (sameCountRow - 5); - lastRow = module; - sameCountRow = 1; - } - } - if (sameCountCol >= 5) - points += PenaltyScores.N1 + (sameCountCol - 5); - if (sameCountRow >= 5) - points += PenaltyScores.N1 + (sameCountRow - 5); - } - return points; - }; - exports.getPenaltyN2 = function getPenaltyN2(data) { - const size = data.size; - let points = 0; - for (let row = 0; row < size - 1; row++) { - for (let col = 0; col < size - 1; col++) { - const last = data.get(row, col) + data.get(row, col + 1) + data.get(row + 1, col) + data.get(row + 1, col + 1); - if (last === 4 || last === 0) - points++; - } - } - return points * PenaltyScores.N2; - }; - exports.getPenaltyN3 = function getPenaltyN3(data) { - const size = data.size; - let points = 0; - let bitsCol = 0; - let bitsRow = 0; - for (let row = 0; row < size; row++) { - bitsCol = bitsRow = 0; - for (let col = 0; col < size; col++) { - bitsCol = bitsCol << 1 & 2047 | data.get(row, col); - if (col >= 10 && (bitsCol === 1488 || bitsCol === 93)) - points++; - bitsRow = bitsRow << 1 & 2047 | data.get(col, row); - if (col >= 10 && (bitsRow === 1488 || bitsRow === 93)) - points++; - } - } - return points * PenaltyScores.N3; - }; - exports.getPenaltyN4 = function getPenaltyN4(data) { - let darkCount = 0; - const modulesCount = data.data.length; - for (let i = 0; i < modulesCount; i++) - darkCount += data.data[i]; - const k = Math.abs(Math.ceil(darkCount * 100 / modulesCount / 5) - 10); - return k * PenaltyScores.N4; - }; - function getMaskAt(maskPattern2, i, j) { - switch (maskPattern2) { - case exports.Patterns.PATTERN000: - return (i + j) % 2 === 0; - case exports.Patterns.PATTERN001: - return i % 2 === 0; - case exports.Patterns.PATTERN010: - return j % 3 === 0; - case exports.Patterns.PATTERN011: - return (i + j) % 3 === 0; - case exports.Patterns.PATTERN100: - return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0; - case exports.Patterns.PATTERN101: - return i * j % 2 + i * j % 3 === 0; - case exports.Patterns.PATTERN110: - return (i * j % 2 + i * j % 3) % 2 === 0; - case exports.Patterns.PATTERN111: - return (i * j % 3 + (i + j) % 2) % 2 === 0; - default: - throw new Error("bad maskPattern:" + maskPattern2); - } - } - exports.applyMask = function applyMask(pattern, data) { - const size = data.size; - for (let col = 0; col < size; col++) { - for (let row = 0; row < size; row++) { - if (data.isReserved(row, col)) - continue; - data.xor(row, col, getMaskAt(pattern, row, col)); - } - } - }; - exports.getBestMask = function getBestMask(data, setupFormatFunc) { - const numPatterns = Object.keys(exports.Patterns).length; - let bestPattern = 0; - let lowerPenalty = Infinity; - for (let p = 0; p < numPatterns; p++) { - setupFormatFunc(p); - exports.applyMask(p, data); - const penalty = exports.getPenaltyN1(data) + exports.getPenaltyN2(data) + exports.getPenaltyN3(data) + exports.getPenaltyN4(data); - exports.applyMask(p, data); - if (penalty < lowerPenalty) { - lowerPenalty = penalty; - bestPattern = p; - } - } - return bestPattern; - }; -})(maskPattern); -var errorCorrectionCode = {}; -const ECLevel$1 = errorCorrectionLevel; -const EC_BLOCKS_TABLE = [ - // L M Q H - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 1, - 2, - 2, - 4, - 1, - 2, - 4, - 4, - 2, - 4, - 4, - 4, - 2, - 4, - 6, - 5, - 2, - 4, - 6, - 6, - 2, - 5, - 8, - 8, - 4, - 5, - 8, - 8, - 4, - 5, - 8, - 11, - 4, - 8, - 10, - 11, - 4, - 9, - 12, - 16, - 4, - 9, - 16, - 16, - 6, - 10, - 12, - 18, - 6, - 10, - 17, - 16, - 6, - 11, - 16, - 19, - 6, - 13, - 18, - 21, - 7, - 14, - 21, - 25, - 8, - 16, - 20, - 25, - 8, - 17, - 23, - 25, - 9, - 17, - 23, - 34, - 9, - 18, - 25, - 30, - 10, - 20, - 27, - 32, - 12, - 21, - 29, - 35, - 12, - 23, - 34, - 37, - 12, - 25, - 34, - 40, - 13, - 26, - 35, - 42, - 14, - 28, - 38, - 45, - 15, - 29, - 40, - 48, - 16, - 31, - 43, - 51, - 17, - 33, - 45, - 54, - 18, - 35, - 48, - 57, - 19, - 37, - 51, - 60, - 19, - 38, - 53, - 63, - 20, - 40, - 56, - 66, - 21, - 43, - 59, - 70, - 22, - 45, - 62, - 74, - 24, - 47, - 65, - 77, - 25, - 49, - 68, - 81 -]; -const EC_CODEWORDS_TABLE = [ - // L M Q H - 7, - 10, - 13, - 17, - 10, - 16, - 22, - 28, - 15, - 26, - 36, - 44, - 20, - 36, - 52, - 64, - 26, - 48, - 72, - 88, - 36, - 64, - 96, - 112, - 40, - 72, - 108, - 130, - 48, - 88, - 132, - 156, - 60, - 110, - 160, - 192, - 72, - 130, - 192, - 224, - 80, - 150, - 224, - 264, - 96, - 176, - 260, - 308, - 104, - 198, - 288, - 352, - 120, - 216, - 320, - 384, - 132, - 240, - 360, - 432, - 144, - 280, - 408, - 480, - 168, - 308, - 448, - 532, - 180, - 338, - 504, - 588, - 196, - 364, - 546, - 650, - 224, - 416, - 600, - 700, - 224, - 442, - 644, - 750, - 252, - 476, - 690, - 816, - 270, - 504, - 750, - 900, - 300, - 560, - 810, - 960, - 312, - 588, - 870, - 1050, - 336, - 644, - 952, - 1110, - 360, - 700, - 1020, - 1200, - 390, - 728, - 1050, - 1260, - 420, - 784, - 1140, - 1350, - 450, - 812, - 1200, - 1440, - 480, - 868, - 1290, - 1530, - 510, - 924, - 1350, - 1620, - 540, - 980, - 1440, - 1710, - 570, - 1036, - 1530, - 1800, - 570, - 1064, - 1590, - 1890, - 600, - 1120, - 1680, - 1980, - 630, - 1204, - 1770, - 2100, - 660, - 1260, - 1860, - 2220, - 720, - 1316, - 1950, - 2310, - 750, - 1372, - 2040, - 2430 -]; -errorCorrectionCode.getBlocksCount = function getBlocksCount(version2, errorCorrectionLevel2) { - switch (errorCorrectionLevel2) { - case ECLevel$1.L: - return EC_BLOCKS_TABLE[(version2 - 1) * 4 + 0]; - case ECLevel$1.M: - return EC_BLOCKS_TABLE[(version2 - 1) * 4 + 1]; - case ECLevel$1.Q: - return EC_BLOCKS_TABLE[(version2 - 1) * 4 + 2]; - case ECLevel$1.H: - return EC_BLOCKS_TABLE[(version2 - 1) * 4 + 3]; - default: - return void 0; - } -}; -errorCorrectionCode.getTotalCodewordsCount = function getTotalCodewordsCount(version2, errorCorrectionLevel2) { - switch (errorCorrectionLevel2) { - case ECLevel$1.L: - return EC_CODEWORDS_TABLE[(version2 - 1) * 4 + 0]; - case ECLevel$1.M: - return EC_CODEWORDS_TABLE[(version2 - 1) * 4 + 1]; - case ECLevel$1.Q: - return EC_CODEWORDS_TABLE[(version2 - 1) * 4 + 2]; - case ECLevel$1.H: - return EC_CODEWORDS_TABLE[(version2 - 1) * 4 + 3]; - default: - return void 0; - } -}; -var polynomial = {}; -var galoisField = {}; -const EXP_TABLE = new Uint8Array(512); -const LOG_TABLE = new Uint8Array(256); -(function initTables() { - let x = 1; - for (let i = 0; i < 255; i++) { - EXP_TABLE[i] = x; - LOG_TABLE[x] = i; - x <<= 1; - if (x & 256) { - x ^= 285; - } - } - for (let i = 255; i < 512; i++) { - EXP_TABLE[i] = EXP_TABLE[i - 255]; - } -})(); -galoisField.log = function log(n) { - if (n < 1) - throw new Error("log(" + n + ")"); - return LOG_TABLE[n]; -}; -galoisField.exp = function exp(n) { - return EXP_TABLE[n]; -}; -galoisField.mul = function mul(x, y) { - if (x === 0 || y === 0) - return 0; - return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]; -}; -(function(exports) { - const GF = galoisField; - exports.mul = function mul2(p1, p2) { - const coeff = new Uint8Array(p1.length + p2.length - 1); - for (let i = 0; i < p1.length; i++) { - for (let j = 0; j < p2.length; j++) { - coeff[i + j] ^= GF.mul(p1[i], p2[j]); - } - } - return coeff; - }; - exports.mod = function mod(divident, divisor) { - let result = new Uint8Array(divident); - while (result.length - divisor.length >= 0) { - const coeff = result[0]; - for (let i = 0; i < divisor.length; i++) { - result[i] ^= GF.mul(divisor[i], coeff); - } - let offset = 0; - while (offset < result.length && result[offset] === 0) - offset++; - result = result.slice(offset); - } - return result; - }; - exports.generateECPolynomial = function generateECPolynomial(degree) { - let poly = new Uint8Array([1]); - for (let i = 0; i < degree; i++) { - poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)])); - } - return poly; - }; -})(polynomial); -const Polynomial = polynomial; -function ReedSolomonEncoder$1(degree) { - this.genPoly = void 0; - this.degree = degree; - if (this.degree) - this.initialize(this.degree); -} -ReedSolomonEncoder$1.prototype.initialize = function initialize(degree) { - this.degree = degree; - this.genPoly = Polynomial.generateECPolynomial(this.degree); -}; -ReedSolomonEncoder$1.prototype.encode = function encode(data) { - if (!this.genPoly) { - throw new Error("Encoder not initialized"); - } - const paddedData = new Uint8Array(data.length + this.degree); - paddedData.set(data); - const remainder = Polynomial.mod(paddedData, this.genPoly); - const start = this.degree - remainder.length; - if (start > 0) { - const buff = new Uint8Array(this.degree); - buff.set(remainder, start); - return buff; - } - return remainder; -}; -var reedSolomonEncoder = ReedSolomonEncoder$1; -var version = {}; -var mode = {}; -var versionCheck = {}; -versionCheck.isValid = function isValid(version2) { - return !isNaN(version2) && version2 >= 1 && version2 <= 40; -}; -var regex = {}; -const numeric = "[0-9]+"; -const alphanumeric = "[A-Z $%*+\\-./:]+"; -let kanji = "(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+"; -kanji = kanji.replace(/u/g, "\\u"); -const byte = "(?:(?![A-Z0-9 $%*+\\-./:]|" + kanji + ")(?:.|[\r\n]))+"; -regex.KANJI = new RegExp(kanji, "g"); -regex.BYTE_KANJI = new RegExp("[^A-Z0-9 $%*+\\-./:]+", "g"); -regex.BYTE = new RegExp(byte, "g"); -regex.NUMERIC = new RegExp(numeric, "g"); -regex.ALPHANUMERIC = new RegExp(alphanumeric, "g"); -const TEST_KANJI = new RegExp("^" + kanji + "$"); -const TEST_NUMERIC = new RegExp("^" + numeric + "$"); -const TEST_ALPHANUMERIC = new RegExp("^[A-Z0-9 $%*+\\-./:]+$"); -regex.testKanji = function testKanji(str) { - return TEST_KANJI.test(str); -}; -regex.testNumeric = function testNumeric(str) { - return TEST_NUMERIC.test(str); -}; -regex.testAlphanumeric = function testAlphanumeric(str) { - return TEST_ALPHANUMERIC.test(str); -}; -(function(exports) { - const VersionCheck = versionCheck; - const Regex = regex; - exports.NUMERIC = { - id: "Numeric", - bit: 1 << 0, - ccBits: [10, 12, 14] - }; - exports.ALPHANUMERIC = { - id: "Alphanumeric", - bit: 1 << 1, - ccBits: [9, 11, 13] - }; - exports.BYTE = { - id: "Byte", - bit: 1 << 2, - ccBits: [8, 16, 16] - }; - exports.KANJI = { - id: "Kanji", - bit: 1 << 3, - ccBits: [8, 10, 12] - }; - exports.MIXED = { - bit: -1 - }; - exports.getCharCountIndicator = function getCharCountIndicator(mode2, version2) { - if (!mode2.ccBits) - throw new Error("Invalid mode: " + mode2); - if (!VersionCheck.isValid(version2)) { - throw new Error("Invalid version: " + version2); - } - if (version2 >= 1 && version2 < 10) - return mode2.ccBits[0]; - else if (version2 < 27) - return mode2.ccBits[1]; - return mode2.ccBits[2]; - }; - exports.getBestModeForData = function getBestModeForData(dataStr) { - if (Regex.testNumeric(dataStr)) - return exports.NUMERIC; - else if (Regex.testAlphanumeric(dataStr)) - return exports.ALPHANUMERIC; - else if (Regex.testKanji(dataStr)) - return exports.KANJI; - else - return exports.BYTE; - }; - exports.toString = function toString2(mode2) { - if (mode2 && mode2.id) - return mode2.id; - throw new Error("Invalid mode"); - }; - exports.isValid = function isValid2(mode2) { - return mode2 && mode2.bit && mode2.ccBits; - }; - function fromString(string) { - if (typeof string !== "string") { - throw new Error("Param is not a string"); - } - const lcStr = string.toLowerCase(); - switch (lcStr) { - case "numeric": - return exports.NUMERIC; - case "alphanumeric": - return exports.ALPHANUMERIC; - case "kanji": - return exports.KANJI; - case "byte": - return exports.BYTE; - default: - throw new Error("Unknown mode: " + string); - } - } - exports.from = function from(value, defaultValue) { - if (exports.isValid(value)) { - return value; - } - try { - return fromString(value); - } catch (e) { - return defaultValue; - } - }; -})(mode); -(function(exports) { - const Utils2 = utils$1; - const ECCode2 = errorCorrectionCode; - const ECLevel2 = errorCorrectionLevel; - const Mode2 = mode; - const VersionCheck = versionCheck; - const G18 = 1 << 12 | 1 << 11 | 1 << 10 | 1 << 9 | 1 << 8 | 1 << 5 | 1 << 2 | 1 << 0; - const G18_BCH = Utils2.getBCHDigit(G18); - function getBestVersionForDataLength(mode2, length, errorCorrectionLevel2) { - for (let currentVersion = 1; currentVersion <= 40; currentVersion++) { - if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel2, mode2)) { - return currentVersion; - } - } - return void 0; - } - function getReservedBitsCount(mode2, version2) { - return Mode2.getCharCountIndicator(mode2, version2) + 4; - } - function getTotalBitsFromDataArray(segments2, version2) { - let totalBits = 0; - segments2.forEach(function(data) { - const reservedBits = getReservedBitsCount(data.mode, version2); - totalBits += reservedBits + data.getBitsLength(); - }); - return totalBits; - } - function getBestVersionForMixedData(segments2, errorCorrectionLevel2) { - for (let currentVersion = 1; currentVersion <= 40; currentVersion++) { - const length = getTotalBitsFromDataArray(segments2, currentVersion); - if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel2, Mode2.MIXED)) { - return currentVersion; - } - } - return void 0; - } - exports.from = function from(value, defaultValue) { - if (VersionCheck.isValid(value)) { - return parseInt(value, 10); - } - return defaultValue; - }; - exports.getCapacity = function getCapacity(version2, errorCorrectionLevel2, mode2) { - if (!VersionCheck.isValid(version2)) { - throw new Error("Invalid QR Code version"); - } - if (typeof mode2 === "undefined") - mode2 = Mode2.BYTE; - const totalCodewords = Utils2.getSymbolTotalCodewords(version2); - const ecTotalCodewords = ECCode2.getTotalCodewordsCount(version2, errorCorrectionLevel2); - const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8; - if (mode2 === Mode2.MIXED) - return dataTotalCodewordsBits; - const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode2, version2); - switch (mode2) { - case Mode2.NUMERIC: - return Math.floor(usableBits / 10 * 3); - case Mode2.ALPHANUMERIC: - return Math.floor(usableBits / 11 * 2); - case Mode2.KANJI: - return Math.floor(usableBits / 13); - case Mode2.BYTE: - default: - return Math.floor(usableBits / 8); - } - }; - exports.getBestVersionForData = function getBestVersionForData(data, errorCorrectionLevel2) { - let seg; - const ecl = ECLevel2.from(errorCorrectionLevel2, ECLevel2.M); - if (Array.isArray(data)) { - if (data.length > 1) { - return getBestVersionForMixedData(data, ecl); - } - if (data.length === 0) { - return 1; - } - seg = data[0]; - } else { - seg = data; - } - return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl); - }; - exports.getEncodedBits = function getEncodedBits2(version2) { - if (!VersionCheck.isValid(version2) || version2 < 7) { - throw new Error("Invalid QR Code version"); - } - let d = version2 << 12; - while (Utils2.getBCHDigit(d) - G18_BCH >= 0) { - d ^= G18 << Utils2.getBCHDigit(d) - G18_BCH; - } - return version2 << 12 | d; - }; -})(version); -var formatInfo = {}; -const Utils$3 = utils$1; -const G15 = 1 << 10 | 1 << 8 | 1 << 5 | 1 << 4 | 1 << 2 | 1 << 1 | 1 << 0; -const G15_MASK = 1 << 14 | 1 << 12 | 1 << 10 | 1 << 4 | 1 << 1; -const G15_BCH = Utils$3.getBCHDigit(G15); -formatInfo.getEncodedBits = function getEncodedBits(errorCorrectionLevel2, mask) { - const data = errorCorrectionLevel2.bit << 3 | mask; - let d = data << 10; - while (Utils$3.getBCHDigit(d) - G15_BCH >= 0) { - d ^= G15 << Utils$3.getBCHDigit(d) - G15_BCH; - } - return (data << 10 | d) ^ G15_MASK; -}; -var segments = {}; -const Mode$4 = mode; -function NumericData(data) { - this.mode = Mode$4.NUMERIC; - this.data = data.toString(); -} -NumericData.getBitsLength = function getBitsLength(length) { - return 10 * Math.floor(length / 3) + (length % 3 ? length % 3 * 3 + 1 : 0); -}; -NumericData.prototype.getLength = function getLength() { - return this.data.length; -}; -NumericData.prototype.getBitsLength = function getBitsLength2() { - return NumericData.getBitsLength(this.data.length); -}; -NumericData.prototype.write = function write(bitBuffer2) { - let i, group, value; - for (i = 0; i + 3 <= this.data.length; i += 3) { - group = this.data.substr(i, 3); - value = parseInt(group, 10); - bitBuffer2.put(value, 10); - } - const remainingNum = this.data.length - i; - if (remainingNum > 0) { - group = this.data.substr(i); - value = parseInt(group, 10); - bitBuffer2.put(value, remainingNum * 3 + 1); - } -}; -var numericData = NumericData; -const Mode$3 = mode; -const ALPHA_NUM_CHARS = [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - " ", - "$", - "%", - "*", - "+", - "-", - ".", - "/", - ":" -]; -function AlphanumericData(data) { - this.mode = Mode$3.ALPHANUMERIC; - this.data = data; -} -AlphanumericData.getBitsLength = function getBitsLength3(length) { - return 11 * Math.floor(length / 2) + 6 * (length % 2); -}; -AlphanumericData.prototype.getLength = function getLength2() { - return this.data.length; -}; -AlphanumericData.prototype.getBitsLength = function getBitsLength4() { - return AlphanumericData.getBitsLength(this.data.length); -}; -AlphanumericData.prototype.write = function write2(bitBuffer2) { - let i; - for (i = 0; i + 2 <= this.data.length; i += 2) { - let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45; - value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1]); - bitBuffer2.put(value, 11); - } - if (this.data.length % 2) { - bitBuffer2.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6); - } -}; -var alphanumericData = AlphanumericData; -var encodeUtf8$1 = function encodeUtf8(input) { - var result = []; - var size = input.length; - for (var index = 0; index < size; index++) { - var point = input.charCodeAt(index); - if (point >= 55296 && point <= 56319 && size > index + 1) { - var second = input.charCodeAt(index + 1); - if (second >= 56320 && second <= 57343) { - point = (point - 55296) * 1024 + second - 56320 + 65536; - index += 1; - } - } - if (point < 128) { - result.push(point); - continue; - } - if (point < 2048) { - result.push(point >> 6 | 192); - result.push(point & 63 | 128); - continue; - } - if (point < 55296 || point >= 57344 && point < 65536) { - result.push(point >> 12 | 224); - result.push(point >> 6 & 63 | 128); - result.push(point & 63 | 128); - continue; - } - if (point >= 65536 && point <= 1114111) { - result.push(point >> 18 | 240); - result.push(point >> 12 & 63 | 128); - result.push(point >> 6 & 63 | 128); - result.push(point & 63 | 128); - continue; - } - result.push(239, 191, 189); - } - return new Uint8Array(result).buffer; -}; -const encodeUtf82 = encodeUtf8$1; -const Mode$2 = mode; -function ByteData(data) { - this.mode = Mode$2.BYTE; - if (typeof data === "string") { - data = encodeUtf82(data); - } - this.data = new Uint8Array(data); -} -ByteData.getBitsLength = function getBitsLength5(length) { - return length * 8; -}; -ByteData.prototype.getLength = function getLength3() { - return this.data.length; -}; -ByteData.prototype.getBitsLength = function getBitsLength6() { - return ByteData.getBitsLength(this.data.length); -}; -ByteData.prototype.write = function(bitBuffer2) { - for (let i = 0, l = this.data.length; i < l; i++) { - bitBuffer2.put(this.data[i], 8); - } -}; -var byteData = ByteData; -const Mode$1 = mode; -const Utils$2 = utils$1; -function KanjiData(data) { - this.mode = Mode$1.KANJI; - this.data = data; -} -KanjiData.getBitsLength = function getBitsLength7(length) { - return length * 13; -}; -KanjiData.prototype.getLength = function getLength4() { - return this.data.length; -}; -KanjiData.prototype.getBitsLength = function getBitsLength8() { - return KanjiData.getBitsLength(this.data.length); -}; -KanjiData.prototype.write = function(bitBuffer2) { - let i; - for (i = 0; i < this.data.length; i++) { - let value = Utils$2.toSJIS(this.data[i]); - if (value >= 33088 && value <= 40956) { - value -= 33088; - } else if (value >= 57408 && value <= 60351) { - value -= 49472; - } else { - throw new Error( - "Invalid SJIS character: " + this.data[i] + "\nMake sure your charset is UTF-8" - ); - } - value = (value >>> 8 & 255) * 192 + (value & 255); - bitBuffer2.put(value, 13); - } -}; -var kanjiData = KanjiData; -var dijkstra = { exports: {} }; -(function(module) { - var dijkstra2 = { - single_source_shortest_paths: function(graph, s, d) { - var predecessors = {}; - var costs = {}; - costs[s] = 0; - var open = dijkstra2.PriorityQueue.make(); - open.push(s, 0); - var closest, u, v, cost_of_s_to_u, adjacent_nodes, cost_of_e, cost_of_s_to_u_plus_cost_of_e, cost_of_s_to_v, first_visit; - while (!open.empty()) { - closest = open.pop(); - u = closest.value; - cost_of_s_to_u = closest.cost; - adjacent_nodes = graph[u] || {}; - for (v in adjacent_nodes) { - if (adjacent_nodes.hasOwnProperty(v)) { - cost_of_e = adjacent_nodes[v]; - cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e; - cost_of_s_to_v = costs[v]; - first_visit = typeof costs[v] === "undefined"; - if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) { - costs[v] = cost_of_s_to_u_plus_cost_of_e; - open.push(v, cost_of_s_to_u_plus_cost_of_e); - predecessors[v] = u; - } - } - } - } - if (typeof d !== "undefined" && typeof costs[d] === "undefined") { - var msg = ["Could not find a path from ", s, " to ", d, "."].join(""); - throw new Error(msg); - } - return predecessors; - }, - extract_shortest_path_from_predecessor_list: function(predecessors, d) { - var nodes = []; - var u = d; - while (u) { - nodes.push(u); - predecessors[u]; - u = predecessors[u]; - } - nodes.reverse(); - return nodes; - }, - find_path: function(graph, s, d) { - var predecessors = dijkstra2.single_source_shortest_paths(graph, s, d); - return dijkstra2.extract_shortest_path_from_predecessor_list( - predecessors, - d - ); - }, - /** - * A very naive priority queue implementation. - */ - PriorityQueue: { - make: function(opts) { - var T = dijkstra2.PriorityQueue, t = {}, key; - opts = opts || {}; - for (key in T) { - if (T.hasOwnProperty(key)) { - t[key] = T[key]; - } - } - t.queue = []; - t.sorter = opts.sorter || T.default_sorter; - return t; - }, - default_sorter: function(a, b) { - return a.cost - b.cost; - }, - /** - * Add a new item to the queue and ensure the highest priority element - * is at the front of the queue. - */ - push: function(value, cost) { - var item = { value, cost }; - this.queue.push(item); - this.queue.sort(this.sorter); - }, - /** - * Return the highest priority element in the queue. - */ - pop: function() { - return this.queue.shift(); - }, - empty: function() { - return this.queue.length === 0; - } - } - }; - { - module.exports = dijkstra2; - } -})(dijkstra); -var dijkstraExports = dijkstra.exports; -(function(exports) { - const Mode2 = mode; - const NumericData2 = numericData; - const AlphanumericData2 = alphanumericData; - const ByteData2 = byteData; - const KanjiData2 = kanjiData; - const Regex = regex; - const Utils2 = utils$1; - const dijkstra2 = dijkstraExports; - function getStringByteLength(str) { - return unescape(encodeURIComponent(str)).length; - } - function getSegments(regex2, mode2, str) { - const segments2 = []; - let result; - while ((result = regex2.exec(str)) !== null) { - segments2.push({ - data: result[0], - index: result.index, - mode: mode2, - length: result[0].length - }); - } - return segments2; - } - function getSegmentsFromString(dataStr) { - const numSegs = getSegments(Regex.NUMERIC, Mode2.NUMERIC, dataStr); - const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode2.ALPHANUMERIC, dataStr); - let byteSegs; - let kanjiSegs; - if (Utils2.isKanjiModeEnabled()) { - byteSegs = getSegments(Regex.BYTE, Mode2.BYTE, dataStr); - kanjiSegs = getSegments(Regex.KANJI, Mode2.KANJI, dataStr); - } else { - byteSegs = getSegments(Regex.BYTE_KANJI, Mode2.BYTE, dataStr); - kanjiSegs = []; - } - const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs); - return segs.sort(function(s1, s2) { - return s1.index - s2.index; - }).map(function(obj) { - return { - data: obj.data, - mode: obj.mode, - length: obj.length - }; - }); - } - function getSegmentBitsLength(length, mode2) { - switch (mode2) { - case Mode2.NUMERIC: - return NumericData2.getBitsLength(length); - case Mode2.ALPHANUMERIC: - return AlphanumericData2.getBitsLength(length); - case Mode2.KANJI: - return KanjiData2.getBitsLength(length); - case Mode2.BYTE: - return ByteData2.getBitsLength(length); - } - } - function mergeSegments(segs) { - return segs.reduce(function(acc, curr) { - const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null; - if (prevSeg && prevSeg.mode === curr.mode) { - acc[acc.length - 1].data += curr.data; - return acc; - } - acc.push(curr); - return acc; - }, []); - } - function buildNodes(segs) { - const nodes = []; - for (let i = 0; i < segs.length; i++) { - const seg = segs[i]; - switch (seg.mode) { - case Mode2.NUMERIC: - nodes.push([ - seg, - { data: seg.data, mode: Mode2.ALPHANUMERIC, length: seg.length }, - { data: seg.data, mode: Mode2.BYTE, length: seg.length } - ]); - break; - case Mode2.ALPHANUMERIC: - nodes.push([ - seg, - { data: seg.data, mode: Mode2.BYTE, length: seg.length } - ]); - break; - case Mode2.KANJI: - nodes.push([ - seg, - { data: seg.data, mode: Mode2.BYTE, length: getStringByteLength(seg.data) } - ]); - break; - case Mode2.BYTE: - nodes.push([ - { data: seg.data, mode: Mode2.BYTE, length: getStringByteLength(seg.data) } - ]); - } - } - return nodes; - } - function buildGraph(nodes, version2) { - const table = {}; - const graph = { start: {} }; - let prevNodeIds = ["start"]; - for (let i = 0; i < nodes.length; i++) { - const nodeGroup = nodes[i]; - const currentNodeIds = []; - for (let j = 0; j < nodeGroup.length; j++) { - const node = nodeGroup[j]; - const key = "" + i + j; - currentNodeIds.push(key); - table[key] = { node, lastCount: 0 }; - graph[key] = {}; - for (let n = 0; n < prevNodeIds.length; n++) { - const prevNodeId = prevNodeIds[n]; - if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) { - graph[prevNodeId][key] = getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) - getSegmentBitsLength(table[prevNodeId].lastCount, node.mode); - table[prevNodeId].lastCount += node.length; - } else { - if (table[prevNodeId]) - table[prevNodeId].lastCount = node.length; - graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) + 4 + Mode2.getCharCountIndicator(node.mode, version2); - } - } - } - prevNodeIds = currentNodeIds; - } - for (let n = 0; n < prevNodeIds.length; n++) { - graph[prevNodeIds[n]].end = 0; - } - return { map: graph, table }; - } - function buildSingleSegment(data, modesHint) { - let mode2; - const bestMode = Mode2.getBestModeForData(data); - mode2 = Mode2.from(modesHint, bestMode); - if (mode2 !== Mode2.BYTE && mode2.bit < bestMode.bit) { - throw new Error('"' + data + '" cannot be encoded with mode ' + Mode2.toString(mode2) + ".\n Suggested mode is: " + Mode2.toString(bestMode)); - } - if (mode2 === Mode2.KANJI && !Utils2.isKanjiModeEnabled()) { - mode2 = Mode2.BYTE; - } - switch (mode2) { - case Mode2.NUMERIC: - return new NumericData2(data); - case Mode2.ALPHANUMERIC: - return new AlphanumericData2(data); - case Mode2.KANJI: - return new KanjiData2(data); - case Mode2.BYTE: - return new ByteData2(data); - } - } - exports.fromArray = function fromArray(array) { - return array.reduce(function(acc, seg) { - if (typeof seg === "string") { - acc.push(buildSingleSegment(seg, null)); - } else if (seg.data) { - acc.push(buildSingleSegment(seg.data, seg.mode)); - } - return acc; - }, []); - }; - exports.fromString = function fromString(data, version2) { - const segs = getSegmentsFromString(data, Utils2.isKanjiModeEnabled()); - const nodes = buildNodes(segs); - const graph = buildGraph(nodes, version2); - const path = dijkstra2.find_path(graph.map, "start", "end"); - const optimizedSegs = []; - for (let i = 1; i < path.length - 1; i++) { - optimizedSegs.push(graph.table[path[i]].node); - } - return exports.fromArray(mergeSegments(optimizedSegs)); - }; - exports.rawSplit = function rawSplit(data) { - return exports.fromArray( - getSegmentsFromString(data, Utils2.isKanjiModeEnabled()) - ); - }; -})(segments); -const Utils$1 = utils$1; -const ECLevel = errorCorrectionLevel; -const BitBuffer = bitBuffer; -const BitMatrix = bitMatrix; -const AlignmentPattern = alignmentPattern; -const FinderPattern = finderPattern; -const MaskPattern = maskPattern; -const ECCode = errorCorrectionCode; -const ReedSolomonEncoder = reedSolomonEncoder; -const Version = version; -const FormatInfo = formatInfo; -const Mode = mode; -const Segments = segments; -function setupFinderPattern(matrix, version2) { - const size = matrix.size; - const pos = FinderPattern.getPositions(version2); - for (let i = 0; i < pos.length; i++) { - const row = pos[i][0]; - const col = pos[i][1]; - for (let r = -1; r <= 7; r++) { - if (row + r <= -1 || size <= row + r) - continue; - for (let c = -1; c <= 7; c++) { - if (col + c <= -1 || size <= col + c) - continue; - if (r >= 0 && r <= 6 && (c === 0 || c === 6) || c >= 0 && c <= 6 && (r === 0 || r === 6) || r >= 2 && r <= 4 && c >= 2 && c <= 4) { - matrix.set(row + r, col + c, true, true); - } else { - matrix.set(row + r, col + c, false, true); - } - } - } - } -} -function setupTimingPattern(matrix) { - const size = matrix.size; - for (let r = 8; r < size - 8; r++) { - const value = r % 2 === 0; - matrix.set(r, 6, value, true); - matrix.set(6, r, value, true); - } -} -function setupAlignmentPattern(matrix, version2) { - const pos = AlignmentPattern.getPositions(version2); - for (let i = 0; i < pos.length; i++) { - const row = pos[i][0]; - const col = pos[i][1]; - for (let r = -2; r <= 2; r++) { - for (let c = -2; c <= 2; c++) { - if (r === -2 || r === 2 || c === -2 || c === 2 || r === 0 && c === 0) { - matrix.set(row + r, col + c, true, true); - } else { - matrix.set(row + r, col + c, false, true); - } - } - } - } -} -function setupVersionInfo(matrix, version2) { - const size = matrix.size; - const bits = Version.getEncodedBits(version2); - let row, col, mod; - for (let i = 0; i < 18; i++) { - row = Math.floor(i / 3); - col = i % 3 + size - 8 - 3; - mod = (bits >> i & 1) === 1; - matrix.set(row, col, mod, true); - matrix.set(col, row, mod, true); - } -} -function setupFormatInfo(matrix, errorCorrectionLevel2, maskPattern2) { - const size = matrix.size; - const bits = FormatInfo.getEncodedBits(errorCorrectionLevel2, maskPattern2); - let i, mod; - for (i = 0; i < 15; i++) { - mod = (bits >> i & 1) === 1; - if (i < 6) { - matrix.set(i, 8, mod, true); - } else if (i < 8) { - matrix.set(i + 1, 8, mod, true); - } else { - matrix.set(size - 15 + i, 8, mod, true); - } - if (i < 8) { - matrix.set(8, size - i - 1, mod, true); - } else if (i < 9) { - matrix.set(8, 15 - i - 1 + 1, mod, true); - } else { - matrix.set(8, 15 - i - 1, mod, true); - } - } - matrix.set(size - 8, 8, 1, true); -} -function setupData(matrix, data) { - const size = matrix.size; - let inc = -1; - let row = size - 1; - let bitIndex = 7; - let byteIndex = 0; - for (let col = size - 1; col > 0; col -= 2) { - if (col === 6) - col--; - while (true) { - for (let c = 0; c < 2; c++) { - if (!matrix.isReserved(row, col - c)) { - let dark = false; - if (byteIndex < data.length) { - dark = (data[byteIndex] >>> bitIndex & 1) === 1; - } - matrix.set(row, col - c, dark); - bitIndex--; - if (bitIndex === -1) { - byteIndex++; - bitIndex = 7; - } - } - } - row += inc; - if (row < 0 || size <= row) { - row -= inc; - inc = -inc; - break; - } - } - } -} -function createData(version2, errorCorrectionLevel2, segments2) { - const buffer = new BitBuffer(); - segments2.forEach(function(data) { - buffer.put(data.mode.bit, 4); - buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version2)); - data.write(buffer); - }); - const totalCodewords = Utils$1.getSymbolTotalCodewords(version2); - const ecTotalCodewords = ECCode.getTotalCodewordsCount(version2, errorCorrectionLevel2); - const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8; - if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) { - buffer.put(0, 4); - } - while (buffer.getLengthInBits() % 8 !== 0) { - buffer.putBit(0); - } - const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8; - for (let i = 0; i < remainingByte; i++) { - buffer.put(i % 2 ? 17 : 236, 8); - } - return createCodewords(buffer, version2, errorCorrectionLevel2); -} -function createCodewords(bitBuffer2, version2, errorCorrectionLevel2) { - const totalCodewords = Utils$1.getSymbolTotalCodewords(version2); - const ecTotalCodewords = ECCode.getTotalCodewordsCount(version2, errorCorrectionLevel2); - const dataTotalCodewords = totalCodewords - ecTotalCodewords; - const ecTotalBlocks = ECCode.getBlocksCount(version2, errorCorrectionLevel2); - const blocksInGroup2 = totalCodewords % ecTotalBlocks; - const blocksInGroup1 = ecTotalBlocks - blocksInGroup2; - const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks); - const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks); - const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1; - const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1; - const rs = new ReedSolomonEncoder(ecCount); - let offset = 0; - const dcData = new Array(ecTotalBlocks); - const ecData = new Array(ecTotalBlocks); - let maxDataSize = 0; - const buffer = new Uint8Array(bitBuffer2.buffer); - for (let b = 0; b < ecTotalBlocks; b++) { - const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2; - dcData[b] = buffer.slice(offset, offset + dataSize); - ecData[b] = rs.encode(dcData[b]); - offset += dataSize; - maxDataSize = Math.max(maxDataSize, dataSize); - } - const data = new Uint8Array(totalCodewords); - let index = 0; - let i, r; - for (i = 0; i < maxDataSize; i++) { - for (r = 0; r < ecTotalBlocks; r++) { - if (i < dcData[r].length) { - data[index++] = dcData[r][i]; - } - } - } - for (i = 0; i < ecCount; i++) { - for (r = 0; r < ecTotalBlocks; r++) { - data[index++] = ecData[r][i]; - } - } - return data; -} -function createSymbol(data, version2, errorCorrectionLevel2, maskPattern2) { - let segments2; - if (Array.isArray(data)) { - segments2 = Segments.fromArray(data); - } else if (typeof data === "string") { - let estimatedVersion = version2; - if (!estimatedVersion) { - const rawSegments = Segments.rawSplit(data); - estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel2); - } - segments2 = Segments.fromString(data, estimatedVersion || 40); - } else { - throw new Error("Invalid data"); - } - const bestVersion = Version.getBestVersionForData(segments2, errorCorrectionLevel2); - if (!bestVersion) { - throw new Error("The amount of data is too big to be stored in a QR Code"); - } - if (!version2) { - version2 = bestVersion; - } else if (version2 < bestVersion) { - throw new Error( - "\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: " + bestVersion + ".\n" - ); - } - const dataBits = createData(version2, errorCorrectionLevel2, segments2); - const moduleCount = Utils$1.getSymbolSize(version2); - const modules = new BitMatrix(moduleCount); - setupFinderPattern(modules, version2); - setupTimingPattern(modules); - setupAlignmentPattern(modules, version2); - setupFormatInfo(modules, errorCorrectionLevel2, 0); - if (version2 >= 7) { - setupVersionInfo(modules, version2); - } - setupData(modules, dataBits); - if (isNaN(maskPattern2)) { - maskPattern2 = MaskPattern.getBestMask( - modules, - setupFormatInfo.bind(null, modules, errorCorrectionLevel2) - ); - } - MaskPattern.applyMask(maskPattern2, modules); - setupFormatInfo(modules, errorCorrectionLevel2, maskPattern2); - return { - modules, - version: version2, - errorCorrectionLevel: errorCorrectionLevel2, - maskPattern: maskPattern2, - segments: segments2 - }; -} -qrcode.create = function create(data, options) { - if (typeof data === "undefined" || data === "") { - throw new Error("No input text"); - } - let errorCorrectionLevel2 = ECLevel.M; - let version2; - let mask; - if (typeof options !== "undefined") { - errorCorrectionLevel2 = ECLevel.from(options.errorCorrectionLevel, ECLevel.M); - version2 = Version.from(options.version); - mask = MaskPattern.from(options.maskPattern); - if (options.toSJISFunc) { - Utils$1.setToSJISFunction(options.toSJISFunc); - } - } - return createSymbol(data, version2, errorCorrectionLevel2, mask); -}; -var canvas = {}; -var utils = {}; -(function(exports) { - function hex2rgba(hex) { - if (typeof hex === "number") { - hex = hex.toString(); - } - if (typeof hex !== "string") { - throw new Error("Color should be defined as hex string"); - } - let hexCode = hex.slice().replace("#", "").split(""); - if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) { - throw new Error("Invalid hex color: " + hex); - } - if (hexCode.length === 3 || hexCode.length === 4) { - hexCode = Array.prototype.concat.apply([], hexCode.map(function(c) { - return [c, c]; - })); - } - if (hexCode.length === 6) - hexCode.push("F", "F"); - const hexValue = parseInt(hexCode.join(""), 16); - return { - r: hexValue >> 24 & 255, - g: hexValue >> 16 & 255, - b: hexValue >> 8 & 255, - a: hexValue & 255, - hex: "#" + hexCode.slice(0, 6).join("") - }; - } - exports.getOptions = function getOptions(options) { - if (!options) - options = {}; - if (!options.color) - options.color = {}; - const margin = typeof options.margin === "undefined" || options.margin === null || options.margin < 0 ? 4 : options.margin; - const width = options.width && options.width >= 21 ? options.width : void 0; - const scale = options.scale || 4; - return { - width, - scale: width ? 4 : scale, - margin, - color: { - dark: hex2rgba(options.color.dark || "#000000ff"), - light: hex2rgba(options.color.light || "#ffffffff") - }, - type: options.type, - rendererOpts: options.rendererOpts || {} - }; - }; - exports.getScale = function getScale(qrSize, opts) { - return opts.width && opts.width >= qrSize + opts.margin * 2 ? opts.width / (qrSize + opts.margin * 2) : opts.scale; - }; - exports.getImageWidth = function getImageWidth(qrSize, opts) { - const scale = exports.getScale(qrSize, opts); - return Math.floor((qrSize + opts.margin * 2) * scale); - }; - exports.qrToImageData = function qrToImageData(imgData, qr, opts) { - const size = qr.modules.size; - const data = qr.modules.data; - const scale = exports.getScale(size, opts); - const symbolSize = Math.floor((size + opts.margin * 2) * scale); - const scaledMargin = opts.margin * scale; - const palette = [opts.color.light, opts.color.dark]; - for (let i = 0; i < symbolSize; i++) { - for (let j = 0; j < symbolSize; j++) { - let posDst = (i * symbolSize + j) * 4; - let pxColor = opts.color.light; - if (i >= scaledMargin && j >= scaledMargin && i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) { - const iSrc = Math.floor((i - scaledMargin) / scale); - const jSrc = Math.floor((j - scaledMargin) / scale); - pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]; - } - imgData[posDst++] = pxColor.r; - imgData[posDst++] = pxColor.g; - imgData[posDst++] = pxColor.b; - imgData[posDst] = pxColor.a; - } - } - }; -})(utils); -(function(exports) { - const Utils2 = utils; - function clearCanvas(ctx, canvas2, size) { - ctx.clearRect(0, 0, canvas2.width, canvas2.height); - if (!canvas2.style) - canvas2.style = {}; - canvas2.height = size; - canvas2.width = size; - canvas2.style.height = size + "px"; - canvas2.style.width = size + "px"; - } - function getCanvasElement() { - try { - return document.createElement("canvas"); - } catch (e) { - throw new Error("You need to specify a canvas element"); - } - } - exports.render = function render2(qrData, canvas2, options) { - let opts = options; - let canvasEl = canvas2; - if (typeof opts === "undefined" && (!canvas2 || !canvas2.getContext)) { - opts = canvas2; - canvas2 = void 0; - } - if (!canvas2) { - canvasEl = getCanvasElement(); - } - opts = Utils2.getOptions(opts); - const size = Utils2.getImageWidth(qrData.modules.size, opts); - const ctx = canvasEl.getContext("2d"); - const image = ctx.createImageData(size, size); - Utils2.qrToImageData(image.data, qrData, opts); - clearCanvas(ctx, canvasEl, size); - ctx.putImageData(image, 0, 0); - return canvasEl; - }; - exports.renderToDataURL = function renderToDataURL(qrData, canvas2, options) { - let opts = options; - if (typeof opts === "undefined" && (!canvas2 || !canvas2.getContext)) { - opts = canvas2; - canvas2 = void 0; - } - if (!opts) - opts = {}; - const canvasEl = exports.render(qrData, canvas2, opts); - const type = opts.type || "image/png"; - const rendererOpts = opts.rendererOpts || {}; - return canvasEl.toDataURL(type, rendererOpts.quality); - }; -})(canvas); -var svgTag = {}; -const Utils = utils; -function getColorAttrib(color, attrib) { - const alpha = color.a / 255; - const str = attrib + '="' + color.hex + '"'; - return alpha < 1 ? str + " " + attrib + '-opacity="' + alpha.toFixed(2).slice(1) + '"' : str; -} -function svgCmd(cmd, x, y) { - let str = cmd + x; - if (typeof y !== "undefined") - str += " " + y; - return str; -} -function qrToPath(data, size, margin) { - let path = ""; - let moveBy = 0; - let newRow = false; - let lineLength = 0; - for (let i = 0; i < data.length; i++) { - const col = Math.floor(i % size); - const row = Math.floor(i / size); - if (!col && !newRow) - newRow = true; - if (data[i]) { - lineLength++; - if (!(i > 0 && col > 0 && data[i - 1])) { - path += newRow ? svgCmd("M", col + margin, 0.5 + row + margin) : svgCmd("m", moveBy, 0); - moveBy = 0; - newRow = false; - } - if (!(col + 1 < size && data[i + 1])) { - path += svgCmd("h", lineLength); - lineLength = 0; - } - } else { - moveBy++; - } - } - return path; -} -svgTag.render = function render(qrData, options, cb) { - const opts = Utils.getOptions(options); - const size = qrData.modules.size; - const data = qrData.modules.data; - const qrcodesize = size + opts.margin * 2; - const bg = !opts.color.light.a ? "" : "'; - const path = "'; - const viewBox = 'viewBox="0 0 ' + qrcodesize + " " + qrcodesize + '"'; - const width = !opts.width ? "" : 'width="' + opts.width + '" height="' + opts.width + '" '; - const svgTag2 = '' + bg + path + "\n"; - if (typeof cb === "function") { - cb(null, svgTag2); - } - return svgTag2; -}; -const canPromise = canPromise$1; -const QRCode = qrcode; -const CanvasRenderer = canvas; -const SvgRenderer = svgTag; -function renderCanvas(renderFunc, canvas2, text, opts, cb) { - const args = [].slice.call(arguments, 1); - const argsNum = args.length; - const isLastArgCb = typeof args[argsNum - 1] === "function"; - if (!isLastArgCb && !canPromise()) { - throw new Error("Callback required as last argument"); - } - if (isLastArgCb) { - if (argsNum < 2) { - throw new Error("Too few arguments provided"); - } - if (argsNum === 2) { - cb = text; - text = canvas2; - canvas2 = opts = void 0; - } else if (argsNum === 3) { - if (canvas2.getContext && typeof cb === "undefined") { - cb = opts; - opts = void 0; - } else { - cb = opts; - opts = text; - text = canvas2; - canvas2 = void 0; - } - } - } else { - if (argsNum < 1) { - throw new Error("Too few arguments provided"); - } - if (argsNum === 1) { - text = canvas2; - canvas2 = opts = void 0; - } else if (argsNum === 2 && !canvas2.getContext) { - opts = text; - text = canvas2; - canvas2 = void 0; - } - return new Promise(function(resolve, reject) { - try { - const data = QRCode.create(text, opts); - resolve(renderFunc(data, canvas2, opts)); - } catch (e) { - reject(e); - } - }); - } - try { - const data = QRCode.create(text, opts); - cb(null, renderFunc(data, canvas2, opts)); - } catch (e) { - cb(e); - } -} -var create2 = browser$1.create = QRCode.create; -var toCanvas = browser$1.toCanvas = renderCanvas.bind(null, CanvasRenderer.render); -var toDataURL = browser$1.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL); -var toString = browser$1.toString = renderCanvas.bind(null, function(data, _, opts) { - return SvgRenderer.render(data, opts); -}); -const browser = /* @__PURE__ */ _mergeNamespaces({ - __proto__: null, - create: create2, - default: browser$1, - toCanvas, - toDataURL, - toString -}, [browser$1]); -export { - browser as b -}; diff --git a/templates/assets/dist/assets/charts-2dcd04c5.js b/templates/assets/dist/assets/charts-2dcd04c5.js new file mode 100644 index 00000000..a201fecf --- /dev/null +++ b/templates/assets/dist/assets/charts-2dcd04c5.js @@ -0,0 +1 @@ +import{a2 as ui,ai as ve,O as It,f as Me,G as at,aD as Da,_ as z,q as J,S as Ie,aE as kr,X as De,af as zr,R as Le,n as be,Z as Ee,g as k,aF as $o,p as Re,aw as Br,l as Y,az as Wo,h as U,d as ye,aG as Mt,b as ue,B as ct,aH as Uo,a as Rt,c as Zo,V as cr,aI as vi,av as Qa,U as Xo,N as Yo,j as ft,K as Ja,aJ as Gr,aK as qo,aL as jo,as as Ko,aj as hi,aM as ci,aN as Qo,aO as Lt,i as fr,a5 as qe,ad as pr,a7 as Jo,aP as el,a6 as bt,aQ as Or,aR as tl,aS as Se,aT as er,ab as al,ah as fi,aU as rl,m as la,aV as nl,aA as il,o as ol,aW as ll,ag as sl,aX as Fr,aY as ul,aZ as vl,ax as Hr,a_ as hl,$ as cl,ap as Ge}from"./graphic-083f2b2f.js";import{c as He,p as sa}from"./createSeriesData-4848ff50.js";import{b3 as tr,N as pt,b4 as Tt,I as ae,b as Ve,ad as ne,i as qt,b5 as rt,Z as oe,C as wt,S as Ke,b6 as $r,b7 as ge,f as le,b8 as se,b9 as Wr,ae as ee,ba as jt,bb as Te,bc as we,bd as fl,be as pi,a3 as K,K as gi,bf as ua,bg as di,bh as va,bi as ke,bj as Kt,bk as yi,aJ as pl,bl as mi,bm as Si,s as Ce,h as gt,bn as O,aI as ot,bo as gr,bp as gl,bq as dr,br as Vt,bs as bi,aK as ha,P as yr,bt as ca,bu as wi,bv as dl,bw as Pe,G as Di,bx as kt,by as yl,F as ml,bz as Qt,bA as Jt,bB as fa,M as lt,bC as Sl,aT as Ur,bD as bl,bE as wl,a as Be,bF as Dl,bG as pa,bH as _i,bI as Zr,bJ as Ft,bK as Xr,j as Yr,b1 as xi,bL as _l,L as qr,bM as jr,bN as xl,u as Al,bO as Ai,bP as Ii,bQ as ar,b2 as rr,a$ as Il,k as Ll,w as _a,bR as Tl,bS as Li,bT as xa,bU as Ti,q as Cl,aZ as Pl,bV as Ci,bW as Kr,bX as Nl,bY as El,$ as Ml,X as Rl}from"./Axis-b5ea7d9c.js";import{S as ga,a as da,g as Pi,b as Ct,i as ya,s as Vl,c as kl,d as zl,M as Bl,e as Gl,f as Ol,R as mr,V as Sr,o as Ni,u as Ei,h as Mi,j as Ri,k as Vi,L as ki,l as Fl,m as zi,n as br,p as Qr,q as Hl,r as $l,t as Wl,v as Ul,w as Zl}from"./customGraphicKeyframeAnimation-15977b4b.js";ui.CMD;function Bi(r,t,e,a,n,i,o,l){var s=n-r,u=i-t,v=e-r,h=a-t,c=Math.sqrt(v*v+h*h);v/=c,h/=c;var f=s*v+u*h,g=f/c;l&&(g=Math.min(Math.max(g,0),1)),g*=c;var p=o[0]=r+g*v,d=o[1]=t+g*h;return Math.sqrt((p-n)*(p-n)+(d-i)*(d-i))}var Ze=new ve,re=new ve,fe=new ve,Xe=new ve,Ne=new ve,ea=[],de=new ve;function Xl(r,t){if(t<=180&&t>0){t=t/180*Math.PI,Ze.fromArray(r[0]),re.fromArray(r[1]),fe.fromArray(r[2]),ve.sub(Xe,Ze,re),ve.sub(Ne,fe,re);var e=Xe.len(),a=Ne.len();if(!(e<.001||a<.001)){Xe.scale(1/e),Ne.scale(1/a);var n=Xe.dot(Ne),i=Math.cos(t);if(i1&&ve.copy(de,fe),de.toArray(r[1])}}}}function Yl(r,t,e){if(e<=180&&e>0){e=e/180*Math.PI,Ze.fromArray(r[0]),re.fromArray(r[1]),fe.fromArray(r[2]),ve.sub(Xe,re,Ze),ve.sub(Ne,fe,re);var a=Xe.len(),n=Ne.len();if(!(a<.001||n<.001)){Xe.scale(1/a),Ne.scale(1/n);var i=Xe.dot(t),o=Math.cos(e);if(i=s)ve.copy(de,fe);else{de.scaleAndAdd(Ne,l/Math.tan(Math.PI/2-v));var h=fe.x!==re.x?(de.x-re.x)/(fe.x-re.x):(de.y-re.y)/(fe.y-re.y);if(isNaN(h))return;h<0?ve.copy(de,re):h>1&&ve.copy(de,fe)}de.toArray(r[1])}}}}function Jr(r,t,e,a){var n=e==="normal",i=n?r:r.ensureState(e);i.ignore=t;var o=a.get("smooth");o&&o===!0&&(o=.3),i.shape=i.shape||{},o>0&&(i.shape.smooth=o);var l=a.getModel("lineStyle").getLineStyle();n?r.useStyle(l):i.style=l}function ql(r,t){var e=t.smooth,a=t.points;if(a)if(r.moveTo(a[0][0],a[0][1]),e>0&&a.length>=3){var n=at(a[0],a[1]),i=at(a[1],a[2]);if(!n||!i){r.lineTo(a[1][0],a[1][1]),r.lineTo(a[2][0],a[2][1]);return}var o=Math.min(n,i)*e,l=Da([],a[1],a[0],o/n),s=Da([],a[1],a[2],o/i),u=Da([],l,s,.5);r.bezierCurveTo(l[0],l[1],l[0],l[1],u[0],u[1]),r.bezierCurveTo(s[0],s[1],s[0],s[1],a[2][0],a[2][1])}else for(var v=1;v-1&&(u.style.stroke=u.style.fill,u.style.fill="#fff",u.style.lineWidth=2),a},t.type="series.line",t.dependencies=["grid","polar"],t.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},t}(ne);const Kl=jl;function Fi(r,t,e){var a=r.getBaseAxis(),n=r.getOtherAxis(a),i=Ql(n,e),o=a.dim,l=n.dim,s=t.mapDimension(l),u=t.mapDimension(o),v=l==="x"||l==="radius"?1:0,h=J(r.dimensions,function(g){return t.mapDimension(g)}),c=!1,f=t.getCalculationInfo("stackResultDimension");return qt(t,h[0])&&(c=!0,h[0]=f),qt(t,h[1])&&(c=!0,h[1]=f),{dataDimsForPoint:h,valueStart:i,valueAxisDim:l,baseAxisDim:o,stacked:!!c,valueDim:s,baseDim:u,baseDataOffset:v,stackedOverDimension:t.getCalculationInfo("stackedOverDimension")}}function Ql(r,t){var e=0,a=r.scale.getExtent();return t==="start"?e=a[0]:t==="end"?e=a[1]:Ie(t)&&!isNaN(t)?e=t:a[0]>0?e=a[0]:a[1]<0&&(e=a[1]),e}function Hi(r,t,e,a){var n=NaN;r.stacked&&(n=e.get(e.getCalculationInfo("stackedOverDimension"),a)),isNaN(n)&&(n=r.valueStart);var i=r.baseDataOffset,o=[];return o[i]=e.get(r.baseDim,a),o[1-i]=n,t.dataToPoint(o)}function Jl(r,t){var e=[];return t.diff(r).add(function(a){e.push({cmd:"+",idx:a})}).update(function(a,n){e.push({cmd:"=",idx:n,idx1:a})}).remove(function(a){e.push({cmd:"-",idx:a})}).execute(),e}function es(r,t,e,a,n,i,o,l){for(var s=Jl(r,t),u=[],v=[],h=[],c=[],f=[],g=[],p=[],d=Fi(n,t,o),m=r.getLayout("points")||[],y=t.getLayout("points")||[],S=0;S=n||p<0)break;if(it(m,y)){if(s){p+=i;continue}break}if(p===e)r[i>0?"moveTo":"lineTo"](m,y),h=m,c=y;else{var S=m-u,b=y-v;if(S*S+b*b<.5){p+=i;continue}if(o>0){for(var D=p+i,w=t[D*2],_=t[D*2+1];w===m&&_===y&&d=a||it(w,_))f=m,g=y;else{L=w-u,A=_-v;var C=m-u,P=w-m,E=y-v,R=_-y,M=void 0,V=void 0;if(l==="x"){M=Math.abs(C),V=Math.abs(P);var G=L>0?1:-1;f=m-G*M*o,g=y,I=m+G*V*o,N=y}else if(l==="y"){M=Math.abs(E),V=Math.abs(R);var B=A>0?1:-1;f=m,g=y-B*M*o,I=m,N=y+B*V*o}else M=Math.sqrt(C*C+E*E),V=Math.sqrt(P*P+R*R),T=V/(V+M),f=m-L*o*(1-T),g=y-A*o*(1-T),I=m+L*o*T,N=y+A*o*T,I=$e(I,We(w,m)),N=$e(N,We(_,y)),I=We(I,$e(w,m)),N=We(N,$e(_,y)),L=I-m,A=N-y,f=m-L*M/V,g=y-A*M/V,f=$e(f,We(u,m)),g=$e(g,We(v,y)),f=We(f,$e(u,m)),g=We(g,$e(v,y)),L=m-f,A=y-g,I=m+L*V/M,N=y+A*V/M}r.bezierCurveTo(h,c,f,g,m,y),h=I,c=N}else r.lineTo(m,y)}u=m,v=y,p+=i}return d}var $i=function(){function r(){this.smooth=0,this.smoothConstraint=!0}return r}(),ts=function(r){z(t,r);function t(e){var a=r.call(this,e)||this;return a.type="ec-polyline",a}return t.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},t.prototype.getDefaultShape=function(){return new $i},t.prototype.buildPath=function(e,a){var n=a.points,i=0,o=n.length/2;if(a.connectNulls){for(;o>0&&it(n[o*2-2],n[o*2-1]);o--);for(;i=0){var b=u?(g-s)*S+s:(f-l)*S+l;return u?[e,b]:[b,e]}l=f,s=g;break;case o.C:f=i[h++],g=i[h++],p=i[h++],d=i[h++],m=i[h++],y=i[h++];var D=u?kr(l,f,p,m,e,v):kr(s,g,d,y,e,v);if(D>0)for(var w=0;w=0){var b=u?zr(s,g,d,y,_):zr(l,f,p,m,_);return u?[e,b]:[b,e]}}l=m,s=y;break}}},t}(De),as=function(r){z(t,r);function t(){return r!==null&&r.apply(this,arguments)||this}return t}($i),Wi=function(r){z(t,r);function t(e){var a=r.call(this,e)||this;return a.type="ec-polygon",a}return t.prototype.getDefaultShape=function(){return new as},t.prototype.buildPath=function(e,a){var n=a.points,i=a.stackedOnPoints,o=0,l=n.length/2,s=a.smoothMonotone;if(a.connectNulls){for(;l>0&&it(n[l*2-2],n[l*2-1]);l--);for(;ot){i?e.push(o(i,s,t)):n&&e.push(o(n,s,0),o(n,s,t));break}else n&&(e.push(o(n,s,0)),n=null),e.push(s),i=s}return e}function is(r,t,e){var a=r.getVisual("visualMeta");if(!(!a||!a.length||!r.count())&&t.type==="cartesian2d"){for(var n,i,o=a.length-1;o>=0;o--){var l=r.getDimensionInfo(a[o].dimension);if(n=l&&l.coordDim,n==="x"||n==="y"){i=a[o];break}}if(i){var s=t.getAxis(n),u=J(i.stops,function(S){return{coord:s.toGlobalCoord(s.dataToCoord(S.value)),color:S.color}}),v=u.length,h=i.outerColors.slice();v&&u[0].coord>u[v-1].coord&&(u.reverse(),h.reverse());var c=ns(u,n==="x"?e.getWidth():e.getHeight()),f=c.length;if(!f&&v)return u[0].coord<0?h[1]?h[1]:u[v-1].color:h[0]?h[0]:u[0].color;var g=10,p=c[0].coord-g,d=c[f-1].coord+g,m=d-p;if(m<.001)return"transparent";k(c,function(S){S.offset=(S.coord-p)/m}),c.push({offset:f?c[f-1].offset:.5,color:h[1]||"transparent"}),c.unshift({offset:f?c[0].offset:.5,color:h[0]||"transparent"});var y=new gi(0,0,0,0,c,!0);return y[n]=p,y[n+"2"]=d,y}}}function os(r,t,e){var a=r.get("showAllSymbol"),n=a==="auto";if(!(a&&!n)){var i=e.getAxesByScale("ordinal")[0];if(i&&!(n&&ls(i,t))){var o=t.mapDimension(i.dim),l={};return k(i.getViewLabels(),function(s){var u=i.scale.getRawOrdinalNumber(s.tickValue);l[u]=1}),function(s){return!l.hasOwnProperty(t.get(o,s))}}}}function ls(r,t){var e=r.getExtent(),a=Math.abs(e[1]-e[0])/r.scale.count();isNaN(a)&&(a=0);for(var n=t.count(),i=Math.max(1,Math.round(n/5)),o=0;oa)return!1;return!0}function ss(r,t){return isNaN(r)||isNaN(t)}function us(r){for(var t=r.length/2;t>0&&ss(r[t*2-2],r[t*2-1]);t--);return t-1}function nn(r,t){return[r[t*2],r[t*2+1]]}function vs(r,t,e){for(var a=r.length/2,n=e==="x"?0:1,i,o,l=0,s=-1,u=0;u=t||i>=t&&o<=t){s=u;break}l=u,i=o}return{range:[l,s],t:(t-i)/(o-i)}}function Xi(r){if(r.get(["endLabel","show"]))return!0;for(var t=0;t0&&e.get(["emphasis","lineStyle","width"])==="bolder"){var G=p.getState("emphasis").style;G.lineWidth=+p.style.lineWidth+1}le(p).seriesIndex=e.seriesIndex,se(p,R,M,V);var B=rn(e.get("smooth")),W=e.get("smoothMonotone");if(p.setShape({smooth:B,smoothMonotone:W,connectNulls:x}),d){var $=s.getCalculationInfo("stackedOnSeries"),F=0;d.useStyle(Me(v.getAreaStyle(),{fill:N,opacity:.7,lineJoin:"bevel",decal:s.getVisual("style").decal})),$&&(F=rn($.get("smooth"))),d.setShape({smooth:B,stackedOnSmooth:F,smoothMonotone:W,connectNulls:x}),ge(d,e,"areaStyle"),le(d).seriesIndex=e.seriesIndex,se(d,R,M,V)}var X=function(j){i._changePolyState(j)};s.eachItemGraphicEl(function(j){j&&(j.onHoverStateChange=X)}),this._polyline.onHoverStateChange=X,this._data=s,this._coordSys=o,this._stackedOnPoints=w,this._points=h,this._step=A,this._valueOrigin=b,e.get("triggerLineEvent")&&(this.packEventData(e,p),d&&this.packEventData(e,d))},t.prototype.packEventData=function(e,a){le(a).eventData={componentType:"series",componentSubType:"line",componentIndex:e.componentIndex,seriesIndex:e.seriesIndex,seriesName:e.name,seriesType:"line"}},t.prototype.highlight=function(e,a,n,i){var o=e.getData(),l=Wr(o,i);if(this._changePolyState("emphasis"),!(l instanceof Array)&&l!=null&&l>=0){var s=o.getLayout("points"),u=o.getItemGraphicEl(l);if(!u){var v=s[l*2],h=s[l*2+1];if(isNaN(v)||isNaN(h)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(v,h))return;var c=e.get("zlevel")||0,f=e.get("z")||0;u=new da(o,l),u.x=v,u.y=h,u.setZ(c,f);var g=u.getSymbolPath().getTextContent();g&&(g.zlevel=c,g.z=f,g.z2=this._polyline.z2+1),u.__temp=!0,o.setItemGraphicEl(l,u),u.stopSymbolAnimation(!0),this.group.add(u)}u.highlight()}else ee.prototype.highlight.call(this,e,a,n,i)},t.prototype.downplay=function(e,a,n,i){var o=e.getData(),l=Wr(o,i);if(this._changePolyState("normal"),l!=null&&l>=0){var s=o.getItemGraphicEl(l);s&&(s.__temp?(o.setItemGraphicEl(l,null),this.group.remove(s)):s.downplay())}else ee.prototype.downplay.call(this,e,a,n,i)},t.prototype._changePolyState=function(e){var a=this._polygon;jt(this._polyline,e),a&&jt(a,e)},t.prototype._newPolyline=function(e){var a=this._polyline;return a&&this._lineGroup.remove(a),a=new ts({shape:{points:e},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(a),this._polyline=a,a},t.prototype._newPolygon=function(e,a){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new Wi({shape:{points:e,stackedOnPoints:a},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},t.prototype._initSymbolLabelAnimation=function(e,a,n){var i,o,l=a.getBaseAxis(),s=l.inverse;a.type==="cartesian2d"?(i=l.isHorizontal(),o=!1):a.type==="polar"&&(i=l.dim==="angle",o=!0);var u=e.hostModel,v=u.get("animationDuration");be(v)&&(v=v(null));var h=u.get("animationDelay")||0,c=be(h)?h(null):h;e.eachItemGraphicEl(function(f,g){var p=f;if(p){var d=[f.x,f.y],m=void 0,y=void 0,S=void 0;if(n)if(o){var b=n,D=a.pointToCoord(d);i?(m=b.startAngle,y=b.endAngle,S=-D[1]/180*Math.PI):(m=b.r0,y=b.r,S=D[0])}else{var w=n;i?(m=w.x,y=w.x+w.width,S=f.x):(m=w.y+w.height,y=w.y,S=f.y)}var _=y===m?0:(S-m)/(y-m);s&&(_=1-_);var x=be(h)?h(g):v*_+c,T=p.getSymbolPath(),L=T.getTextContent();p.attr({scaleX:0,scaleY:0}),p.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:x}),L&&L.animateFrom({style:{opacity:0}},{duration:300,delay:x}),T.disableLabelAnimation=!0}})},t.prototype._initOrUpdateEndLabel=function(e,a,n){var i=e.getModel("endLabel");if(Xi(e)){var o=e.getData(),l=this._polyline,s=o.getLayout("points");if(!s){l.removeTextContent(),this._endLabel=null;return}var u=this._endLabel;u||(u=this._endLabel=new Ee({z2:200}),u.ignoreClip=!0,l.setTextContent(this._endLabel),l.disableLabelAnimation=!0);var v=us(s);v>=0&&(Te(l,we(e,"endLabel"),{inheritColor:n,labelFetcher:e,labelDataIndex:v,defaultText:function(h,c,f){return f!=null?Pi(o,f):Ct(o,h)},enableTextSetter:!0},hs(i,a)),l.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},t.prototype._endLabelOnDuring=function(e,a,n,i,o,l,s){var u=this._endLabel,v=this._polyline;if(u){e<1&&i.originalX==null&&(i.originalX=u.x,i.originalY=u.y);var h=n.getLayout("points"),c=n.hostModel,f=c.get("connectNulls"),g=l.get("precision"),p=l.get("distance")||0,d=s.getBaseAxis(),m=d.isHorizontal(),y=d.inverse,S=a.shape,b=y?m?S.x:S.y+S.height:m?S.x+S.width:S.y,D=(m?p:0)*(y?-1:1),w=(m?0:-p)*(y?-1:1),_=m?"x":"y",x=vs(h,b,_),T=x.range,L=T[1]-T[0],A=void 0;if(L>=1){if(L>1&&!f){var I=nn(h,T[0]);u.attr({x:I[0]+D,y:I[1]+w}),o&&(A=c.getRawValue(T[0]))}else{var I=v.getPointOn(b,_);I&&u.attr({x:I[0]+D,y:I[1]+w});var N=c.getRawValue(T[0]),C=c.getRawValue(T[1]);o&&(A=fl(n,g,N,C,x.t))}i.lastFrameIndex=T[0]}else{var P=e===1||i.lastFrameIndex>0?T[0]:0,I=nn(h,P);o&&(A=c.getRawValue(P)),u.attr({x:I[0]+D,y:I[1]+w})}o&&pi(u).setLabelText(A)}},t.prototype._doUpdateAnimation=function(e,a,n,i,o,l,s){var u=this._polyline,v=this._polygon,h=e.hostModel,c=es(this._data,e,this._stackedOnPoints,a,this._coordSys,n,this._valueOrigin),f=c.current,g=c.stackedOnCurrent,p=c.next,d=c.stackedOnNext;if(o&&(f=Ue(c.current,n,o,s),g=Ue(c.stackedOnCurrent,n,o,s),p=Ue(c.next,n,o,s),d=Ue(c.stackedOnNext,n,o,s)),an(f,p)>3e3||v&&an(g,d)>3e3){u.stopAnimation(),u.setShape({points:p}),v&&(v.stopAnimation(),v.setShape({points:p,stackedOnPoints:d}));return}u.shape.__points=c.current,u.shape.points=f;var m={shape:{points:p}};c.current!==f&&(m.shape.__points=c.next),u.stopAnimation(),K(u,m,h),v&&(v.setShape({points:f,stackedOnPoints:g}),v.stopAnimation(),K(v,{shape:{stackedOnPoints:d}},h),u.shape.points!==v.shape.points&&(v.shape.points=u.shape.points));for(var y=[],S=c.status,b=0;bt&&(t=r[e]);return isFinite(t)?t:NaN},min:function(r){for(var t=1/0,e=0;e10&&o.type==="cartesian2d"&&i){var s=o.getBaseAxis(),u=o.getOtherAxis(s),v=s.getExtent(),h=a.getDevicePixelRatio(),c=Math.abs(v[1]-v[0])*(h||1),f=Math.round(l/c);if(isFinite(f)&&f>1){i==="lttb"&&t.setData(n.lttbDownSample(n.mapDimension(u.dim),1/f));var g=void 0;Re(i)?g=ps[i]:be(i)&&(g=i),g&&t.setData(n.downSample(n.mapDimension(u.dim),1/f,g,gs))}}}}}function hp(r){r.registerChartView(fs),r.registerSeriesModel(Kl),r.registerLayout(zt("line",!0)),r.registerVisual({seriesType:"line",reset:function(t){var e=t.getData(),a=t.getModel("lineStyle").getLineStyle();a&&!a.stroke&&(a.stroke=e.getVisual("style").fill),e.setVisual("legendLineStyle",a)}}),r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC,Yi("line"))}var qi=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.getInitialData=function(e,a){return He(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(e,a,n){var i=this.coordinateSystem;if(i&&i.clampData){var o=i.clampData(e),l=i.dataToPoint(o);if(n)k(i.getAxes(),function(c,f){if(c.type==="category"&&a!=null){var g=c.getTicksCoords(),p=o[f],d=a[f]==="x1"||a[f]==="y1";if(d&&(p+=1),g.length<2)return;if(g.length===2){l[f]=c.toGlobalCoord(c.getExtent()[d?1:0]);return}for(var m=void 0,y=void 0,S=1,b=0;bp){y=(D+m)/2;break}b===1&&(S=w-g[0].tickValue)}y==null&&(m?m&&(y=g[g.length-1].coord):y=g[0].coord),l[f]=c.toGlobalCoord(y)}});else{var s=this.getData(),u=s.getLayout("offset"),v=s.getLayout("size"),h=i.getBaseAxis().isHorizontal()?0:1;l[h]+=u+v/2}return l}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},t}(ne);ne.registerClass(qi);const ta=qi;var ds=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.getInitialData=function(){return He(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var e=this.get("progressiveThreshold"),a=this.get("largeThreshold");return a>e&&(e=a),e},t.prototype.brushSelector=function(e,a,n){return n.rect(a.getItemLayout(e))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=di(ta.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),t}(ta);const ys=ds;var ms=function(){function r(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return r}(),Ss=function(r){z(t,r);function t(e){var a=r.call(this,e)||this;return a.type="sausage",a}return t.prototype.getDefaultShape=function(){return new ms},t.prototype.buildPath=function(e,a){var n=a.cx,i=a.cy,o=Math.max(a.r0||0,0),l=Math.max(a.r,0),s=(l-o)*.5,u=o+s,v=a.startAngle,h=a.endAngle,c=a.clockwise,f=Math.PI*2,g=c?h-vMath.PI/2&&vl)return!0;l=h}return!1},t.prototype._isOrderDifferentInView=function(e,a){for(var n=a.scale,i=n.getExtent(),o=Math.max(0,i[0]),l=Math.min(i[1],n.getOrdinalMeta().categories.length-1);o<=l;++o)if(e.ordinalNumbers[o]!==n.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(e,a,n,i){if(this._isOrderChangedWithinSameData(e,a,n)){var o=this._dataSort(e,n,a);this._isOrderDifferentInView(o,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(e,a,n){var i=a.baseAxis,o=this._dataSort(e,i,function(l){return e.get(e.mapDimension(a.otherAxis.dim),l)});n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:o})},t.prototype.remove=function(e,a){this._clear(this._model),this._removeOnRenderedListener(a)},t.prototype.dispose=function(e,a){this._removeOnRenderedListener(a)},t.prototype._removeOnRenderedListener=function(e){this._onRendered&&(e.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(e){var a=this.group,n=this._data;e&&e.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl(function(i){Kt(i,e,le(i).dataIndex)})):a.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t}(ee),on={cartesian2d:function(r,t){var e=t.width<0?-1:1,a=t.height<0?-1:1;e<0&&(t.x+=t.width,t.width=-t.width),a<0&&(t.y+=t.height,t.height=-t.height);var n=r.x+r.width,i=r.y+r.height,o=Ia(t.x,r.x),l=La(t.x+t.width,n),s=Ia(t.y,r.y),u=La(t.y+t.height,i),v=ln?l:o,t.y=h&&s>i?u:s,t.width=v?0:l-o,t.height=h?0:u-s,e<0&&(t.x+=t.width,t.width=-t.width),a<0&&(t.y+=t.height,t.height=-t.height),v||h},polar:function(r,t){var e=t.r0<=t.r?1:-1;if(e<0){var a=t.r;t.r=t.r0,t.r0=a}var n=La(t.r,r.r),i=Ia(t.r0,r.r0);t.r=n,t.r0=i;var o=n-i<0;if(e<0){var a=t.r;t.r=t.r0,t.r0=a}return o}},ln={cartesian2d:function(r,t,e,a,n,i,o,l,s){var u=new Le({shape:U({},a),z2:1});if(u.__dataIndex=e,u.name="item",i){var v=u.shape,h=n?"height":"width";v[h]=0}return u},polar:function(r,t,e,a,n,i,o,l,s){var u=!n&&s?aa:Ke,v=new u({shape:a,z2:1});v.name="item";var h=ji(n);if(v.calculateTextPosition=bs(h,{isRoundCap:u===aa}),i){var c=v.shape,f=n?"r":"endAngle",g={};c[f]=n?a.r0:a.startAngle,g[f]=a[f],(l?K:oe)(v,{shape:g},i)}return v}};function xs(r,t){var e=r.get("realtimeSort",!0),a=t.getBaseAxis();if(e&&a.type==="category"&&t.type==="cartesian2d")return{baseAxis:a,otherAxis:t.getOtherAxis(a)}}function sn(r,t,e,a,n,i,o,l){var s,u;i?(u={x:a.x,width:a.width},s={y:a.y,height:a.height}):(u={y:a.y,height:a.height},s={x:a.x,width:a.width}),l||(o?K:oe)(e,{shape:s},t,n,null);var v=t?r.baseAxis.model:null;(o?K:oe)(e,{shape:u},v,n)}function un(r,t){for(var e=0;e0?1:-1,o=a.height>0?1:-1;return{x:a.x+i*n/2,y:a.y+o*n/2,width:a.width-i*n,height:a.height-o*n}},polar:function(r,t,e){var a=r.getItemLayout(t);return{cx:a.cx,cy:a.cy,r0:a.r0,r:a.r,startAngle:a.startAngle,endAngle:a.endAngle,clockwise:a.clockwise}}};function Ls(r){return r.startAngle!=null&&r.endAngle!=null&&r.startAngle===r.endAngle}function ji(r){return function(t){var e=t?"Arc":"Angle";return function(a){switch(a){case"start":case"insideStart":case"end":case"insideEnd":return a+e;default:return a}}}(r)}function hn(r,t,e,a,n,i,o,l){var s=t.getItemVisual(e,"style");if(l){if(!i.get("roundCap")){var v=r.shape,h=nt(a.getModel("itemStyle"),v,!0);U(v,h),r.setShape(v)}}else{var u=a.get(["itemStyle","borderRadius"])||0;r.setShape("r",u)}r.useStyle(s);var c=a.getShallow("cursor");c&&r.attr("cursor",c);var f=l?o?n.r>=n.r0?"endArc":"startArc":n.endAngle>=n.startAngle?"endAngle":"startAngle":o?n.height>=0?"bottom":"top":n.width>=0?"right":"left",g=we(a);Te(r,g,{labelFetcher:i,labelDataIndex:e,defaultText:Ct(i.getData(),e),inheritColor:s.fill,defaultOpacity:s.opacity,defaultOutsidePosition:f});var p=r.getTextContent();if(l&&p){var d=a.get(["label","position"]);r.textConfig.inside=d==="middle"?!0:null,ws(r,d==="outside"?f:d,ji(o),a.get(["label","rotate"]))}yi(p,g,i.getRawValue(e),function(y){return Pi(t,y)});var m=a.getModel(["emphasis"]);se(r,m.get("focus"),m.get("blurScope"),m.get("disabled")),ge(r,a),Ls(n)&&(r.style.fill="none",r.style.stroke="none",k(r.states,function(y){y.style&&(y.style.fill=y.style.stroke="none")}))}function Ts(r,t){var e=r.get(["itemStyle","borderColor"]);if(!e||e==="none")return 0;var a=r.get(["itemStyle","borderWidth"])||0,n=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),i=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(a,n,i)}var Cs=function(){function r(){}return r}(),cn=function(r){z(t,r);function t(e){var a=r.call(this,e)||this;return a.type="largeBar",a}return t.prototype.getDefaultShape=function(){return new Cs},t.prototype.buildPath=function(e,a){for(var n=a.points,i=this.baseDimIdx,o=1-this.baseDimIdx,l=[],s=[],u=this.barWidth,v=0;v=0?e:null},30,!1);function Ps(r,t,e){for(var a=r.baseDimIdx,n=1-a,i=r.shape.points,o=r.largeDataIndices,l=[],s=[],u=r.barWidth,v=0,h=i.length/3;v=l[0]&&t<=l[0]+s[0]&&e>=l[1]&&e<=l[1]+s[1])return o[v]}return-1}function Ki(r,t,e){if(ya(e,"cartesian2d")){var a=t,n=e.getArea();return{x:r?a.x:n.x,y:r?n.y:a.y,width:r?a.width:n.width,height:r?n.height:a.height}}else{var n=e.getArea(),i=t;return{cx:n.cx,cy:n.cy,r0:r?n.r0:i.r0,r:r?n.r:i.r,startAngle:r?i.startAngle:0,endAngle:r?i.endAngle:Math.PI*2}}}function Ns(r,t,e){var a=r.type==="polar"?Ke:Le;return new a({shape:Ki(t,e,r),silent:!0,z2:0})}const Es=_s;function cp(r){r.registerChartView(Es),r.registerSeriesModel(ys),r.registerLayout(r.PRIORITY.VISUAL.LAYOUT,ye(mi,"bar")),r.registerLayout(r.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Si("bar")),r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC,Yi("bar")),r.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,e){var a=t.componentType||"series";e.eachComponent({mainType:a,query:t},function(n){t.sortInfo&&n.axis.setCategorySortInfo(t.sortInfo)})})}var Ut=Math.PI*2,gn=Math.PI/180;function Qi(r,t){return gt(r.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function Ji(r,t){var e=Qi(r,t),a=r.get("center"),n=r.get("radius");Y(n)||(n=[0,n]);var i=O(e.width,t.getWidth()),o=O(e.height,t.getHeight()),l=Math.min(i,o),s=O(n[0],l/2),u=O(n[1],l/2),v,h,c=r.coordinateSystem;if(c){var f=c.dataToPoint(a);v=f[0]||0,h=f[1]||0}else Y(a)||(a=[a,a]),v=O(a[0],i)+e.x,h=O(a[1],o)+e.y;return{cx:v,cy:h,r0:s,r:u}}function Ms(r,t,e){t.eachSeriesByType(r,function(a){var n=a.getData(),i=n.mapDimension("value"),o=Qi(a,e),l=Ji(a,e),s=l.cx,u=l.cy,v=l.r,h=l.r0,c=-a.get("startAngle")*gn,f=a.get("minAngle")*gn,g=0;n.each(i,function(L){!isNaN(L)&&g++});var p=n.getSum(i),d=Math.PI/(p||g)*2,m=a.get("clockwise"),y=a.get("roseType"),S=a.get("stillShowZeroSum"),b=n.getDataExtent(i);b[0]=0;var D=Ut,w=0,_=c,x=m?1:-1;if(n.setLayout({viewRect:o,r:v}),n.each(i,function(L,A){var I;if(isNaN(L)){n.setItemLayout(A,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:s,cy:u,r0:h,r:y?NaN:v});return}y!=="area"?I=p===0&&S?d:L*d:I=Ut/g,Ie?m:d,D=Math.abs(S.label.y-e);if(D>=b.maxY){var w=S.label.x-t-S.len2*n,_=a+S.len,x=Math.abs(w)<_?Math.sqrt(D*D/(1-w*w/_/_)):_;b.rB=x,b.maxY=D}b.list.push(S)}v(d),v(m)}for(var c=r.length,f=0;fr.unconstrainedWidth?null:f:null;a.setStyle("width",g)}var p=a.getBoundingRect();i.width=p.width;var d=(a.style.margin||0)+2.1;i.height=p.height+d,i.y-=(i.height-h)/2}}}function Ta(r){return r.position==="center"}function ks(r){var t=r.getData(),e=[],a,n,i=!1,o=(r.get("minShowLabelAngle")||0)*Rs,l=t.getLayout("viewRect"),s=t.getLayout("r"),u=l.width,v=l.x,h=l.y,c=l.height;function f(w){w.ignore=!0}function g(w){if(!w.ignore)return!0;for(var _ in w.states)if(w.states[_].ignore===!1)return!0;return!1}t.each(function(w){var _=t.getItemGraphicEl(w),x=_.shape,T=_.getTextContent(),L=_.getTextGuideLine(),A=t.getItemModel(w),I=A.getModel("label"),N=I.get("position")||A.get(["emphasis","label","position"]),C=I.get("distanceToLabelLine"),P=I.get("alignTo"),E=O(I.get("edgeDistance"),u),R=I.get("bleedMargin"),M=A.getModel("labelLine"),V=M.get("length");V=O(V,u);var G=M.get("length2");if(G=O(G,u),Math.abs(x.endAngle-x.startAngle)0?"right":"left":W>0?"left":"right"}var ce=Math.PI,pe=0,_e=I.get("rotate");if(Ie(_e))pe=_e*(ce/180);else if(N==="center")pe=0;else if(_e==="radial"||_e===!0){var Ot=W<0?-B+ce:-B;pe=Ot}else if(_e==="tangential"&&N!=="outside"&&N!=="outer"){var ze=Math.atan2(W,$);ze<0&&(ze=ce*2+ze);var Ho=$>0;Ho&&(ze=ce+ze),pe=ze-ce}if(i=!!pe,T.x=F,T.y=X,T.rotation=pe,T.setStyle({verticalAlign:"middle"}),H){T.setStyle({align:Z});var wa=T.states.select;wa&&(wa.x+=T.x,wa.y+=T.y)}else{var yt=T.getBoundingRect().clone();yt.applyTransform(T.getComputedTransform());var Vr=(T.style.margin||0)+2.1;yt.y-=Vr/2,yt.height+=Vr,e.push({label:T,labelLine:L,position:N,len:V,len2:G,minTurnAngle:M.get("minTurnAngle"),maxSurfaceAngle:M.get("maxSurfaceAngle"),surfaceNormal:new ve(W,$),linePoints:j,textAlign:Z,labelDistance:C,labelAlignTo:P,edgeDistance:E,bleedMargin:R,rect:yt,unconstrainedWidth:yt.width,labelStyleWidth:T.style.width})}_.setTextConfig({inside:H})}}),!i&&r.get("avoidLabelOverlap")&&Vs(e,a,n,s,u,c,v,h);for(var p=0;p0){for(var v=o.getItemLayout(0),h=1;isNaN(v&&v.startAngle)&&h=i.r0}},t.type="pie",t}(ee);const Gs=Bs;function dt(r,t,e){t=Y(t)&&{coordDimensions:t}||U({encodeDefine:r.getEncode()},t);var a=r.getSource(),n=sa(a,t).dimensions,i=new ot(n,r);return i.initData(a,e),i}var Os=function(){function r(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return r.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},r.prototype.containName=function(t){var e=this._getRawData();return e.indexOfName(t)>=0},r.prototype.indexOfName=function(t){var e=this._getDataWithEncodedVisual();return e.indexOfName(t)},r.prototype.getItemVisual=function(t,e){var a=this._getDataWithEncodedVisual();return a.getItemVisual(t,e)},r}();const Gt=Os;var Fs=Vt(),Hs=function(r){z(t,r);function t(){return r!==null&&r.apply(this,arguments)||this}return t.prototype.init=function(e){r.prototype.init.apply(this,arguments),this.legendVisualProvider=new Gt(ue(this.getData,this),ue(this.getRawData,this)),this._defaultLabelLine(e)},t.prototype.mergeOption=function(){r.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return dt(this,{coordDimensions:["value"],encodeDefaulter:ye(gr,this)})},t.prototype.getDataParams=function(e){var a=this.getData(),n=Fs(a),i=n.seats;if(!i){var o=[];a.each(a.mapDimension("value"),function(s){o.push(s)}),i=n.seats=gl(o,a.hostModel.get("percentPrecision"))}var l=r.prototype.getDataParams.call(this,e);return l.percent=i[e]||0,l.$vars.push("percent"),l},t.prototype._defaultLabelLine=function(e){dr(e,"labelLine",["show"]);var a=e.labelLine,n=e.emphasis.labelLine;a.show=a.show&&e.label.show,n.show=n.show&&e.emphasis.label.show},t.type="series.pie",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(ne);const $s=Hs;function Ws(r){return{seriesType:r,reset:function(t,e){var a=t.getData();a.filterSelf(function(n){var i=a.mapDimension("value"),o=a.get(i,n);return!(Ie(o)&&!isNaN(o)&&o<0)})}}}function fp(r){r.registerChartView(Gs),r.registerSeriesModel($s),bi("pie",r.registerAction),r.registerLayout(ye(Ms,"pie")),r.registerProcessor(Bt("pie")),r.registerProcessor(Ws("pie"))}var Us=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.hasSymbolVisual=!0,e}return t.prototype.getInitialData=function(e,a){return He(null,this,{useEncodeDefaulter:!0})},t.prototype.getProgressive=function(){var e=this.option.progressive;return e??(this.option.large?5e3:this.get("progressive"))},t.prototype.getProgressiveThreshold=function(){var e=this.option.progressiveThreshold;return e??(this.option.large?1e4:this.get("progressiveThreshold"))},t.prototype.brushSelector=function(e,a,n){return n.point(a.getItemLayout(e))},t.prototype.getZLevelKey=function(){return this.getData().count()>this.getProgressiveThreshold()?this.id:""},t.type="series.scatter",t.dependencies=["grid","polar","geo","singleAxis","calendar"],t.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}},universalTransition:{divideShape:"clone"}},t}(ne);const Zs=Us;var to=4,Xs=function(){function r(){}return r}(),Ys=function(r){z(t,r);function t(e){var a=r.call(this,e)||this;return a._off=0,a.hoverDataIdx=-1,a}return t.prototype.getDefaultShape=function(){return new Xs},t.prototype.reset=function(){this.notClear=!1,this._off=0},t.prototype.buildPath=function(e,a){var n=a.points,i=a.size,o=this.symbolProxy,l=o.shape,s=e.getContext?e.getContext():e,u=s&&i[0]=0;u--){var v=u*2,h=i[v]-l/2,c=i[v+1]-s/2;if(e>=h&&a>=c&&e<=h+l&&a<=c+s)return u}return-1},t.prototype.contain=function(e,a){var n=this.transformCoordToLocal(e,a),i=this.getBoundingRect();if(e=n[0],a=n[1],i.contain(e,a)){var o=this.hoverDataIdx=this.findDataIndex(e,a);return o>=0}return this.hoverDataIdx=-1,!1},t.prototype.getBoundingRect=function(){var e=this._rect;if(!e){for(var a=this.shape,n=a.points,i=a.size,o=i[0],l=i[1],s=1/0,u=1/0,v=-1/0,h=-1/0,c=0;c=0&&(u.dataIndex=h+(t.startIndex||0))})},r.prototype.remove=function(){this._clear()},r.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},r}();const js=qs;var Ks=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,a,n){var i=e.getData(),o=this._updateSymbolDraw(i,e);o.updateData(i,{clipShape:this._getClipShape(e)}),this._finished=!0},t.prototype.incrementalPrepareRender=function(e,a,n){var i=e.getData(),o=this._updateSymbolDraw(i,e);o.incrementalPrepareUpdate(i),this._finished=!1},t.prototype.incrementalRender=function(e,a,n){this._symbolDraw.incrementalUpdate(e,a.getData(),{clipShape:this._getClipShape(a)}),this._finished=e.end===a.getData().count()},t.prototype.updateTransform=function(e,a,n){var i=e.getData();if(this.group.dirty(),!this._finished||i.count()>1e4)return{update:!0};var o=zt("").reset(e,a,n);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},t.prototype.eachRendered=function(e){this._symbolDraw&&this._symbolDraw.eachRendered(e)},t.prototype._getClipShape=function(e){var a=e.coordinateSystem,n=a&&a.getArea&&a.getArea();return e.get("clip",!0)?n:null},t.prototype._updateSymbolDraw=function(e,a){var n=this._symbolDraw,i=a.pipelineContext,o=i.large;return(!n||o!==this._isLargeDraw)&&(n&&n.remove(),n=this._symbolDraw=o?new js:new ga,this._isLargeDraw=o,this.group.removeAll()),this.group.add(n.group),n},t.prototype.remove=function(e,a){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},t.prototype.dispose=function(){},t.type="scatter",t}(ee);const Qs=Ks;function pp(r){ha(kl),r.registerSeriesModel(Zs),r.registerChartView(Qs),r.registerLayout(zt("scatter"))}function Js(r){r.eachSeriesByType("radar",function(t){var e=t.getData(),a=[],n=t.coordinateSystem;if(n){var i=n.getIndicatorAxes();k(i,function(o,l){e.each(e.mapDimension(i[l].dim),function(s,u){a[u]=a[u]||[];var v=n.dataToPoint(s,l);a[u][l]=yn(v)?v:mn(n)})}),e.each(function(o){var l=Uo(a[o],function(s){return yn(s)})||mn(n);a[o].push(l.slice()),e.setItemLayout(o,a[o])})}})}function yn(r){return!isNaN(r[0])&&!isNaN(r[1])}function mn(r){return[r.cx,r.cy]}function eu(r){var t=r.polar;if(t){Y(t)||(t=[t]);var e=[];k(t,function(a,n){a.indicator?(a.type&&!a.shape&&(a.shape=a.type),r.radar=r.radar||[],Y(r.radar)||(r.radar=[r.radar]),r.radar.push(a)):e.push(a)}),r.polar=e}k(r.series,function(a){a&&a.type==="radar"&&a.polarIndex&&(a.radarIndex=a.polarIndex)})}var tu=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,a,n){var i=e.coordinateSystem,o=this.group,l=e.getData(),s=this._data;function u(c,f){var g=c.getItemVisual(f,"symbol")||"circle";if(g!=="none"){var p=wi(c.getItemVisual(f,"symbolSize")),d=Ve(g,-1,-1,2,2),m=c.getItemVisual(f,"symbolRotate")||0;return d.attr({style:{strokeNoScale:!0},z2:100,scaleX:p[0]/2,scaleY:p[1]/2,rotation:m*Math.PI/180||0}),d}}function v(c,f,g,p,d,m){g.removeAll();for(var y=0;y-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n},t.type="series.map",t.dependencies=["geo"],t.layoutMode="box",t.defaultOption={z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},t}(ne);const su=lu;function uu(r,t){var e={};return k(r,function(a){a.each(a.mapDimension("value"),function(n,i){var o="ec-"+a.getName(i);e[o]=e[o]||[],isNaN(n)||e[o].push(n)})}),r[0].map(r[0].mapDimension("value"),function(a,n){for(var i="ec-"+r[0].getName(n),o=0,l=1/0,s=-1/0,u=e[i].length,v=0;v=0;o--){var l=n[o];l.hierNode={defaultAncestor:null,ancestor:l,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},e.push(l)}}function fu(r,t){var e=r.isExpand?r.children:[],a=r.parentNode.children,n=r.hierNode.i?a[r.hierNode.i-1]:null;if(e.length){du(r);var i=(e[0].hierNode.prelim+e[e.length-1].hierNode.prelim)/2;n?(r.hierNode.prelim=n.hierNode.prelim+t(r,n),r.hierNode.modifier=r.hierNode.prelim-i):r.hierNode.prelim=i}else n&&(r.hierNode.prelim=n.hierNode.prelim+t(r,n));r.parentNode.hierNode.defaultAncestor=yu(r,n,r.parentNode.hierNode.defaultAncestor||a[0],t)}function pu(r){var t=r.hierNode.prelim+r.parentNode.hierNode.modifier;r.setLayout({x:t},!0),r.hierNode.modifier+=r.parentNode.hierNode.modifier}function Sn(r){return arguments.length?r:bu}function Dt(r,t){return r-=Math.PI/2,{x:t*Math.cos(r),y:t*Math.sin(r)}}function gu(r,t){return gt(r.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function du(r){for(var t=r.children,e=t.length,a=0,n=0;--e>=0;){var i=t[e];i.hierNode.prelim+=a,i.hierNode.modifier+=a,n+=i.hierNode.change,a+=i.hierNode.shift+n}}function yu(r,t,e,a){if(t){for(var n=r,i=r,o=i.parentNode.children[0],l=t,s=n.hierNode.modifier,u=i.hierNode.modifier,v=o.hierNode.modifier,h=l.hierNode.modifier;l=Ca(l),i=Pa(i),l&&i;){n=Ca(n),o=Pa(o),n.hierNode.ancestor=r;var c=l.hierNode.prelim+h-i.hierNode.prelim-u+a(l,i);c>0&&(Su(mu(l,r,e),r,c),u+=c,s+=c),h+=l.hierNode.modifier,u+=i.hierNode.modifier,s+=n.hierNode.modifier,v+=o.hierNode.modifier}l&&!Ca(n)&&(n.hierNode.thread=l,n.hierNode.modifier+=h-s),i&&!Pa(o)&&(o.hierNode.thread=i,o.hierNode.modifier+=u-v,e=r)}return e}function Ca(r){var t=r.children;return t.length&&r.isExpand?t[t.length-1]:r.hierNode.thread}function Pa(r){var t=r.children;return t.length&&r.isExpand?t[0]:r.hierNode.thread}function mu(r,t,e){return r.hierNode.ancestor.parentNode===t.parentNode?r.hierNode.ancestor:e}function Su(r,t,e){var a=e/(t.hierNode.i-r.hierNode.i);t.hierNode.change-=a,t.hierNode.shift+=e,t.hierNode.modifier+=e,t.hierNode.prelim+=e,r.hierNode.change+=a}function bu(r,t){return r.parentNode===t.parentNode?1:2}var wu=function(){function r(){this.parentPoint=[],this.childPoints=[]}return r}(),Du=function(r){z(t,r);function t(e){return r.call(this,e)||this}return t.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},t.prototype.getDefaultShape=function(){return new wu},t.prototype.buildPath=function(e,a){var n=a.childPoints,i=n.length,o=a.parentPoint,l=n[0],s=n[i-1];if(i===1){e.moveTo(o[0],o[1]),e.lineTo(l[0],l[1]);return}var u=a.orient,v=u==="TB"||u==="BT"?0:1,h=1-v,c=O(a.forkPosition,1),f=[];f[v]=o[v],f[h]=o[h]+(s[h]-o[h])*c,e.moveTo(o[0],o[1]),e.lineTo(f[0],f[1]),e.moveTo(l[0],l[1]),f[v]=l[v],e.lineTo(f[0],f[1]),f[v]=s[v],e.lineTo(f[0],f[1]),e.lineTo(s[0],s[1]);for(var g=1;gy.x,D||(b=b-Math.PI));var _=D?"left":"right",x=l.getModel("label"),T=x.get("rotate"),L=T*(Math.PI/180),A=d.getTextContent();A&&(d.setTextConfig({position:x.get("position")||_,rotation:T==null?-b:L,origin:"center"}),A.setStyle("verticalAlign","middle"))}var I=l.get(["emphasis","focus"]),N=I==="relative"?Qa(o.getAncestorsIndices(),o.getDescendantIndices()):I==="ancestor"?o.getAncestorsIndices():I==="descendant"?o.getDescendantIndices():null;N&&(le(e).focus=N),xu(n,o,v,e,g,f,p,a),e.__edge&&(e.onHoverStateChange=function(C){if(C!=="blur"){var P=o.parentNode&&r.getItemGraphicEl(o.parentNode.dataIndex);P&&P.hoverState===yl||jt(e.__edge,C)}})}function xu(r,t,e,a,n,i,o,l){var s=t.getModel(),u=r.get("edgeShape"),v=r.get("layout"),h=r.getOrient(),c=r.get(["lineStyle","curveness"]),f=r.get("edgeForkPosition"),g=s.getModel("lineStyle").getLineStyle(),p=a.__edge;if(u==="curve")t.parentNode&&t.parentNode!==e&&(p||(p=a.__edge=new ml({shape:ir(v,h,c,n,n)})),K(p,{shape:ir(v,h,c,i,o)},r));else if(u==="polyline"&&v==="orthogonal"&&t!==e&&t.children&&t.children.length!==0&&t.isExpand===!0){for(var d=t.children,m=[],y=0;ye&&(e=n.height)}this.height=e+1},r.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,a=this.children,n=a.length;e=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},r.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},r.prototype.getModel=function(t){if(!(this.dataIndex<0)){var e=this.hostTree,a=e.data.getItemModel(this.dataIndex);return a.getModel(t)}},r.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},r.prototype.setVisual=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},r.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},r.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},r.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},r.prototype.getChildIndex=function(){if(this.parentNode){for(var t=this.parentNode.children,e=0;e=0){var a=e.getData().tree.root,n=r.targetNode;if(Re(n)&&(n=a.getNodeById(n)),n&&a.contains(n))return{node:n};var i=r.targetNodeId;if(i!=null&&(n=a.getNodeById(i)))return{node:n}}}function io(r){for(var t=[];r;)r=r.parentNode,r&&t.push(r);return t.reverse()}function _r(r,t){var e=io(r);return ft(e,t)>=0}function Sa(r,t){for(var e=[];r;){var a=r.dataIndex;e.push({name:r.name,dataIndex:a,value:t.getRawValue(a)}),r=r.parentNode}return e.reverse(),e}var Vu=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.hasSymbolVisual=!0,e.ignoreStyleOnData=!0,e}return t.prototype.getInitialData=function(e){var a={name:e.name,children:e.data},n=e.leaves||{},i=new lt(n,this,this.ecModel),o=Dr.createTree(a,this,l);function l(h){h.wrapMethod("getItemModel",function(c,f){var g=o.getNodeByDataIndex(f);return g&&g.children.length&&g.isExpand||(c.parentModel=i),c})}var s=0;o.eachNode("preorder",function(h){h.depth>s&&(s=h.depth)});var u=e.expandAndCollapse,v=u&&e.initialTreeDepth>=0?e.initialTreeDepth:s;return o.root.eachNode("preorder",function(h){var c=h.hostTree.data.getRawDataItem(h.dataIndex);h.isExpand=c&&c.collapsed!=null?!c.collapsed:h.depth<=v}),o.data},t.prototype.getOrient=function(){var e=this.get("orient");return e==="horizontal"?e="LR":e==="vertical"&&(e="TB"),e},t.prototype.setZoom=function(e){this.option.zoom=e},t.prototype.setCenter=function(e){this.option.center=e},t.prototype.formatTooltip=function(e,a,n){for(var i=this.getData().tree,o=i.root.children[0],l=i.getNodeByDataIndex(e),s=l.getValue(),u=l.name;l&&l!==o;)u=l.parentNode.name+"."+u,l=l.parentNode;return Pe("nameValue",{name:u,value:s,noValue:isNaN(s)||s==null})},t.prototype.getDataParams=function(e){var a=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(e);return a.treeAncestors=Sa(n,this),a.collapsed=!n.isExpand,a},t.type="series.tree",t.layoutMode="box",t.defaultOption={z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},t}(ne);const ku=Vu;function zu(r,t,e){for(var a=[r],n=[],i;i=a.pop();)if(n.push(i),i.isExpand){var o=i.children;if(o.length)for(var l=0;l=0;i--)e.push(n[i])}}function Bu(r,t){r.eachSeriesByType("tree",function(e){Gu(e,t)})}function Gu(r,t){var e=gu(r,t);r.layoutInfo=e;var a=r.get("layout"),n=0,i=0,o=null;a==="radial"?(n=2*Math.PI,i=Math.min(e.height,e.width)/2,o=Sn(function(S,b){return(S.parentNode===b.parentNode?1:2)/S.depth})):(n=e.width,i=e.height,o=Sn());var l=r.getData().tree.root,s=l.children[0];if(s){cu(l),zu(s,fu,o),l.hierNode.modifier=-s.hierNode.prelim,mt(s,pu);var u=s,v=s,h=s;mt(s,function(S){var b=S.getLayout().x;bv.getLayout().x&&(v=S),S.depth>h.depth&&(h=S)});var c=u===v?1:o(u,v)/2,f=c-u.getLayout().x,g=0,p=0,d=0,m=0;if(a==="radial")g=n/(v.getLayout().x+c+f),p=i/(h.depth-1||1),mt(s,function(S){d=(S.getLayout().x+f)*g,m=(S.depth-1)*p;var b=Dt(d,m);S.setLayout({x:b.x,y:b.y,rawX:d,rawY:m},!0)});else{var y=r.getOrient();y==="RL"||y==="LR"?(p=i/(v.getLayout().x+c+f),g=n/(h.depth-1||1),mt(s,function(S){m=(S.getLayout().x+f)*p,d=y==="LR"?(S.depth-1)*g:n-(S.depth-1)*g,S.setLayout({x:d,y:m},!0)})):(y==="TB"||y==="BT")&&(g=n/(v.getLayout().x+c+f),p=i/(h.depth-1||1),mt(s,function(S){d=(S.getLayout().x+f)*g,m=y==="TB"?(S.depth-1)*p:i-(S.depth-1)*p,S.setLayout({x:d,y:m},!0)}))}}}function Ou(r){r.eachSeriesByType("tree",function(t){var e=t.getData(),a=e.tree;a.eachNode(function(n){var i=n.getModel(),o=i.getModel("itemStyle").getItemStyle(),l=e.ensureUniqueItemVisual(n.dataIndex,"style");U(l,o)})})}function Fu(r){r.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},function(a){var n=t.dataIndex,i=a.getData().tree,o=i.getNodeByDataIndex(n);o.isExpand=!o.isExpand})}),r.registerAction({type:"treeRoam",event:"treeRoam",update:"none"},function(t,e,a){e.eachComponent({mainType:"series",subType:"tree",query:t},function(n){var i=n.coordinateSystem,o=Ri(i,t,void 0,a);n.setCenter&&n.setCenter(o.center),n.setZoom&&n.setZoom(o.zoom)})})}function yp(r){r.registerChartView(Au),r.registerSeriesModel(ku),r.registerLayout(Bu),r.registerVisual(Ou),Fu(r)}var xn=["treemapZoomToNode","treemapRender","treemapMove"];function Hu(r){for(var t=0;t1;)i=i.parentNode;var o=Sl(r.ecModel,i.name||i.dataIndex+"",a);n.setVisual("decal",o)})}var $u=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.preventUsingHoverLayer=!0,e}return t.prototype.getInitialData=function(e,a){var n={name:e.name,children:e.data};lo(n);var i=e.levels||[],o=this.designatedVisualItemStyle={},l=new lt({itemStyle:o},this,a);i=e.levels=Wu(i,a);var s=J(i||[],function(h){return new lt(h,l,a)},this),u=Dr.createTree(n,this,v);function v(h){h.wrapMethod("getItemModel",function(c,f){var g=u.getNodeByDataIndex(f),p=g?s[g.depth]:null;return c.parentModel=p||l,c})}return u.data},t.prototype.optionUpdated=function(){this.resetViewRoot()},t.prototype.formatTooltip=function(e,a,n){var i=this.getData(),o=this.getRawValue(e),l=i.getName(e);return Pe("nameValue",{name:l,value:o})},t.prototype.getDataParams=function(e){var a=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(e);return a.treeAncestors=Sa(n,this),a.treePathInfo=a.treeAncestors,a},t.prototype.setLayoutInfo=function(e){this.layoutInfo=this.layoutInfo||{},U(this.layoutInfo,e)},t.prototype.mapIdToIndex=function(e){var a=this._idIndexMap;a||(a=this._idIndexMap=cr(),this._idIndexMapCount=0);var n=a.get(e);return n==null&&a.set(e,n=this._idIndexMapCount++),n},t.prototype.getViewRoot=function(){return this._viewRoot},t.prototype.resetViewRoot=function(e){e?this._viewRoot=e:e=this._viewRoot;var a=this.getRawData().tree.root;(!e||e!==a&&!a.contains(e))&&(this._viewRoot=a)},t.prototype.enableAriaDecal=function(){oo(this)},t.type="series.treemap",t.layoutMode="box",t.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.32*.32,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}},emphasis:{itemStyle:{color:"rgba(0,0,0,0.9)"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],overflow:"truncate",verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},t}(ne);function lo(r){var t=0;k(r.children,function(a){lo(a);var n=a.value;Y(n)&&(n=n[0]),t+=n});var e=r.value;Y(e)&&(e=e[0]),(e==null||isNaN(e))&&(e=t),e<0&&(e=0),Y(r.value)?r.value[0]=e:r.value=e}function Wu(r,t){var e=Ur(t.get("color")),a=Ur(t.get(["aria","decal","decals"]));if(e){r=r||[];var n,i;k(r,function(l){var s=new lt(l),u=s.get("color"),v=s.get("decal");(s.get(["itemStyle","color"])||u&&u!=="none")&&(n=!0),(s.get(["itemStyle","decal"])||v&&v!=="none")&&(i=!0)});var o=r[0]||(r[0]={});return n||(o.color=e.slice()),!i&&a&&(o.decal=a.slice()),r}}const Uu=$u;var Zu=8,An=8,Na=5,Xu=function(){function r(t){this.group=new ae,t.add(this.group)}return r.prototype.render=function(t,e,a,n){var i=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),!(!i.get("show")||!a)){var l=i.getModel("itemStyle"),s=i.getModel("emphasis"),u=l.getModel("textStyle"),v=s.getModel(["itemStyle","textStyle"]),h={pos:{left:i.get("left"),right:i.get("right"),top:i.get("top"),bottom:i.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:i.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(a,h,u),this._renderContent(t,h,l,s,u,v,n),bl(o,h.pos,h.box)}},r.prototype._prepare=function(t,e,a){for(var n=t;n;n=n.parentNode){var i=fa(n.getModel().get("name"),""),o=a.getTextRect(i),l=Math.max(o.width+Zu*2,e.emptyItemWidth);e.totalWidth+=l+An,e.renderList.push({node:n,text:i,width:l})}},r.prototype._renderContent=function(t,e,a,n,i,o,l){for(var s=0,u=e.emptyItemWidth,v=t.get(["breadcrumb","height"]),h=wl(e.pos,e.box),c=e.totalWidth,f=e.renderList,g=n.getModel("itemStyle").getItemStyle(),p=f.length-1;p>=0;p--){var d=f[p],m=d.node,y=d.width,S=d.text;c>h.width&&(c-=y-u,y=u,S=null);var b=new yr({shape:{points:Yu(s,0,y,v,p===f.length-1,p===0)},style:Me(a.getItemStyle(),{lineJoin:"bevel"}),textContent:new Ee({style:Be(i,{text:S})}),textConfig:{position:"inside"},z2:kt*1e4,onclick:ye(l,m)});b.disableLabelAnimation=!0,b.getTextContent().ensureState("emphasis").style=Be(o,{text:S}),b.ensureState("emphasis").style=g,se(b,n.get("focus"),n.get("blurScope"),n.get("disabled")),this.group.add(b),qu(b,t,m),s+=y+An}},r.prototype.remove=function(){this.group.removeAll()},r}();function Yu(r,t,e,a,n,i){var o=[[n?r:r-Na,t],[r+e,t],[r+e,t+a],[n?r:r-Na,t+a]];return!i&&o.splice(2,0,[r+e+Na,t+a/2]),!n&&o.push([r,t+a/2]),o}function qu(r,t,e){le(r).eventData={componentType:"series",componentSubType:"treemap",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:e&&e.dataIndex,name:e&&e.name},treePathInfo:e&&Sa(e,t)}}const ju=Xu;var Ku=function(){function r(){this._storage=[],this._elExistsMap={}}return r.prototype.add=function(t,e,a,n,i){return this._elExistsMap[t.id]?!1:(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:e,duration:a,delay:n,easing:i}),!0)},r.prototype.finished=function(t){return this._finishedCallback=t,this},r.prototype.start=function(){for(var t=this,e=this._storage.length,a=function(){e--,e<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},n=0,i=this._storage.length;nLn||Math.abs(e.dy)>Ln)){var a=this.seriesModel.getData().tree.root;if(!a)return;var n=a.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+e.dx,y:n.y+e.dy,width:n.width,height:n.height}})}},t.prototype._onZoom=function(e){var a=e.originX,n=e.originY;if(this._state!=="animating"){var i=this.seriesModel.getData().tree.root;if(!i)return;var o=i.getLayout();if(!o)return;var l=new ct(o.x,o.y,o.width,o.height),s=this.seriesModel.layoutInfo;a-=s.x,n-=s.y;var u=jo();Gr(u,u,[-a,-n]),qo(u,u,[e.scale,e.scale]),Gr(u,u,[a,n]),l.applyTransform(u),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:l.x,y:l.y,width:l.width,height:l.height}})}},t.prototype._initEvents=function(e){var a=this;e.on("click",function(n){if(a._state==="ready"){var i=a.seriesModel.get("nodeClick",!0);if(i){var o=a.findTarget(n.offsetX,n.offsetY);if(o){var l=o.node;if(l.getLayout().isLeafRoot)a._rootToNode(o);else if(i==="zoomToNode")a._zoomToNode(o);else if(i==="link"){var s=l.hostTree.data.getItemModel(l.dataIndex),u=s.get("link",!0),v=s.get("target",!0)||"blank";u&&_i(u,v)}}}}},this)},t.prototype._renderBreadcrumb=function(e,a,n){var i=this;n||(n=e.get("leafDepth",!0)!=null?{node:e.getViewRoot()}:this.findTarget(a.getWidth()/2,a.getHeight()/2),n||(n={node:e.getData().tree.root})),(this._breadcrumb||(this._breadcrumb=new ju(this.group))).render(e,a,n.node,function(o){i._state!=="animating"&&(_r(e.getViewRoot(),o)?i._rootToNode({node:o}):i._zoomToNode({node:o}))})},t.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=St(),this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},t.prototype.dispose=function(){this._clearController()},t.prototype._zoomToNode=function(e){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:e.node})},t.prototype._rootToNode=function(e){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:e.node})},t.prototype.findTarget=function(e,a){var n,i=this.seriesModel.getViewRoot();return i.eachNode({attr:"viewChildren",order:"preorder"},function(o){var l=this._storage.background[o.getRawIndex()];if(l){var s=l.transformCoordToLocal(e,a),u=l.shape;if(u.x<=s[0]&&s[0]<=u.x+u.width&&u.y<=s[1]&&s[1]<=u.y+u.height)n={node:o,offsetX:s[0],offsetY:s[1]};else return!1}},this),n},t.type="treemap",t}(ee);function St(){return{nodeGroup:[],background:[],content:[]}}function rv(r,t,e,a,n,i,o,l,s,u){if(!o)return;var v=o.getLayout(),h=r.getData(),c=o.getModel();if(h.setItemGraphicEl(o.dataIndex,null),!v||!v.isInView)return;var f=v.width,g=v.height,p=v.borderWidth,d=v.invisible,m=o.getRawIndex(),y=l&&l.getRawIndex(),S=o.viewChildren,b=v.upperHeight,D=S&&S.length,w=c.getModel("itemStyle"),_=c.getModel(["emphasis","itemStyle"]),x=c.getModel(["blur","itemStyle"]),T=c.getModel(["select","itemStyle"]),L=w.get("borderRadius")||0,A=F("nodeGroup",or);if(!A)return;if(s.add(A),A.x=v.x||0,A.y=v.y||0,A.markRedraw(),ra(A).nodeWidth=f,ra(A).nodeHeight=g,v.isAboveViewRoot)return A;var I=F("background",In,u,ev);I&&V(A,I,D&&v.upperLabelHeight);var N=c.getModel("emphasis"),C=N.get("focus"),P=N.get("blurScope"),E=N.get("disabled"),R=C==="ancestor"?o.getAncestorsIndices():C==="descendant"?o.getDescendantIndices():C;if(D)Zr(A)&&Ft(A,!1),I&&(Ft(I,!E),h.setItemGraphicEl(o.dataIndex,I),Xr(I,R,P));else{var M=F("content",In,u,tv);M&&G(A,M),I.disableMorphing=!0,I&&Zr(I)&&Ft(I,!1),Ft(A,!E),h.setItemGraphicEl(o.dataIndex,A),Xr(A,R,P)}return A;function V(Z,H,Q){var q=le(H);if(q.dataIndex=o.dataIndex,q.seriesIndex=r.seriesIndex,H.setShape({x:0,y:0,width:f,height:g,r:L}),d)B(H);else{H.invisible=!1;var te=o.getVisual("style"),he=te.stroke,me=Pn(w);me.fill=he;var ie=et(_);ie.fill=_.get("borderColor");var ce=et(x);ce.fill=x.get("borderColor");var pe=et(T);if(pe.fill=T.get("borderColor"),Q){var _e=f-2*p;W(H,he,te.opacity,{x:p,y:0,width:_e,height:b})}else H.removeTextContent();H.setStyle(me),H.ensureState("emphasis").style=ie,H.ensureState("blur").style=ce,H.ensureState("select").style=pe,Qt(H)}Z.add(H)}function G(Z,H){var Q=le(H);Q.dataIndex=o.dataIndex,Q.seriesIndex=r.seriesIndex;var q=Math.max(f-2*p,0),te=Math.max(g-2*p,0);if(H.culling=!0,H.setShape({x:p,y:p,width:q,height:te,r:L}),d)B(H);else{H.invisible=!1;var he=o.getVisual("style"),me=he.fill,ie=Pn(w);ie.fill=me,ie.decal=he.decal;var ce=et(_),pe=et(x),_e=et(T);W(H,me,he.opacity,null),H.setStyle(ie),H.ensureState("emphasis").style=ce,H.ensureState("blur").style=pe,H.ensureState("select").style=_e,Qt(H)}Z.add(H)}function B(Z){!Z.invisible&&i.push(Z)}function W(Z,H,Q,q){var te=c.getModel(q?Cn:Tn),he=fa(c.get("name"),null),me=te.getShallow("show");Te(Z,we(c,q?Cn:Tn),{defaultText:me?he:null,inheritColor:H,defaultOpacity:Q,labelFetcher:r,labelDataIndex:o.dataIndex});var ie=Z.getTextContent();if(ie){var ce=ie.style,pe=Ko(ce.padding||0);q&&(Z.setTextConfig({layoutRect:q}),ie.disableLabelLayout=!0),ie.beforeUpdate=function(){var Ot=Math.max((q?q.width:Z.shape.width)-pe[1]-pe[3],0),ze=Math.max((q?q.height:Z.shape.height)-pe[0]-pe[2],0);(ce.width!==Ot||ce.height!==ze)&&ie.setStyle({width:Ot,height:ze})},ce.truncateMinChar=2,ce.lineOverflow="truncate",$(ce,q,v);var _e=ie.getState("emphasis");$(_e?_e.style:null,q,v)}}function $(Z,H,Q){var q=Z?Z.text:null;if(!H&&Q.isLeafRoot&&q!=null){var te=r.get("drillDownIcon",!0);Z.text=te?te+" "+q:q}}function F(Z,H,Q,q){var te=y!=null&&e[Z][y],he=n[Z];return te?(e[Z][y]=null,X(he,te)):d||(te=new H,te instanceof hi&&(te.z2=nv(Q,q)),j(he,te)),t[Z][m]=te}function X(Z,H){var Q=Z[m]={};H instanceof or?(Q.oldX=H.x,Q.oldY=H.y):Q.oldShape=U({},H.shape)}function j(Z,H){var Q=Z[m]={},q=o.parentNode,te=H instanceof ae;if(q&&(!a||a.direction==="drillDown")){var he=0,me=0,ie=n.background[q.getRawIndex()];!a&&ie&&ie.oldShape&&(he=ie.oldShape.width,me=ie.oldShape.height),te?(Q.oldX=0,Q.oldY=me):Q.oldShape={x:he,y:me,width:0,height:0}}Q.fadein=!te}}function nv(r,t){return r*Ju+t}const iv=av;var ov="itemStyle",so=Vt();const lv={seriesType:"treemap",reset:function(r){var t=r.getData().tree,e=t.root;e.isRemoved()||uo(e,{},r.getViewRoot().getAncestors(),r)}};function uo(r,t,e,a){var n=r.getModel(),i=r.getLayout(),o=r.hostTree.data;if(!(!i||i.invisible||!i.isInView)){var l=n.getModel(ov),s=sv(l,t,a),u=o.ensureUniqueItemVisual(r.dataIndex,"style"),v=l.get("borderColor"),h=l.get("borderColorSaturation"),c;h!=null&&(c=Nn(s),v=uv(h,c)),u.stroke=v;var f=r.viewChildren;if(!f||!f.length)c=Nn(s),u.fill=c;else{var g=vv(r,n,i,l,s,f);k(f,function(p,d){if(p.depth>=e.length||p===e[p.depth]){var m=hv(n,s,p,d,g,a);uo(p,m,e,a)}})}}}function sv(r,t,e){var a=U({},t),n=e.designatedVisualItemStyle;return k(["color","colorAlpha","colorSaturation"],function(i){n[i]=t[i];var o=r.get(i);n[i]=null,o!=null&&(a[i]=o)}),a}function Nn(r){var t=Ea(r,"color");if(t){var e=Ea(r,"colorAlpha"),a=Ea(r,"colorSaturation");return a&&(t=ci(t,null,null,a)),e&&(t=Qo(t,e)),t}}function uv(r,t){return t!=null?ci(t,null,null,r):null}function Ea(r,t){var e=r[t];if(e!=null&&e!=="none")return e}function vv(r,t,e,a,n,i){if(!(!i||!i.length)){var o=Ma(t,"color")||n.color!=null&&n.color!=="none"&&(Ma(t,"colorAlpha")||Ma(t,"colorSaturation"));if(o){var l=t.get("visualMin"),s=t.get("visualMax"),u=e.dataExtent.slice();l!=null&&lu[1]&&(u[1]=s);var v=t.get("colorMappingBy"),h={type:o.name,dataExtent:u,visual:o.range};h.type==="color"&&(v==="index"||v==="id")?(h.mappingMethod="category",h.loop=!0):h.mappingMethod="linear";var c=new Vi(h);return so(c).drColorMappingBy=v,c}}}function Ma(r,t){var e=r.get(t);return Y(e)&&e.length?{name:t,range:e}:null}function hv(r,t,e,a,n,i){var o=U({},t);if(n){var l=n.type,s=l==="color"&&so(n).drColorMappingBy,u=s==="index"?a:s==="id"?i.mapIdToIndex(e.getId()):e.getValue(r.get("visualDimension"));o[l]=n.mapValueToVisual(u)}return o}var Nt=Math.max,na=Math.min,En=Lt,xr=k,vo=["itemStyle","borderWidth"],cv=["itemStyle","gapWidth"],fv=["upperLabel","show"],pv=["upperLabel","height"];const gv={seriesType:"treemap",reset:function(r,t,e,a){var n=e.getWidth(),i=e.getHeight(),o=r.option,l=gt(r.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),s=o.size||[],u=O(En(l.width,s[0]),n),v=O(En(l.height,s[1]),i),h=a&&a.type,c=["treemapZoomToNode","treemapRootToNode"],f=Pt(a,c,r),g=h==="treemapRender"||h==="treemapMove"?a.rootRect:null,p=r.getViewRoot(),d=io(p);if(h!=="treemapMove"){var m=h==="treemapZoomToNode"?wv(r,f,p,u,v):g?[g.width,g.height]:[u,v],y=o.sort;y&&y!=="asc"&&y!=="desc"&&(y="desc");var S={squareRatio:o.squareRatio,sort:y,leafDepth:o.leafDepth};p.hostTree.clearLayouts();var b={x:0,y:0,width:m[0],height:m[1],area:m[0]*m[1]};p.setLayout(b),ho(p,S,!1,0),b=p.getLayout(),xr(d,function(w,_){var x=(d[_+1]||p).getValue();w.setLayout(U({dataExtent:[x,x],borderWidth:0,upperHeight:0},b))})}var D=r.getData().tree.root;D.setLayout(Dv(l,g,f),!0),r.setLayoutInfo(l),co(D,new ct(-l.x,-l.y,n,i),d,p,0)}};function ho(r,t,e,a){var n,i;if(!r.isRemoved()){var o=r.getLayout();n=o.width,i=o.height;var l=r.getModel(),s=l.get(vo),u=l.get(cv)/2,v=fo(l),h=Math.max(s,v),c=s-u,f=h-u;r.setLayout({borderWidth:s,upperHeight:h,upperLabelHeight:v},!0),n=Nt(n-2*c,0),i=Nt(i-c-f,0);var g=n*i,p=dv(r,l,g,t,e,a);if(p.length){var d={x:c,y:f,width:n,height:i},m=na(n,i),y=1/0,S=[];S.area=0;for(var b=0,D=p.length;b=0;s--){var u=n[a==="asc"?o-s-1:s].getValue();u/e*tl[1]&&(l[1]=u)})),{sum:a,dataExtent:l}}function bv(r,t,e){for(var a=0,n=1/0,i=0,o=void 0,l=r.length;ia&&(a=o));var s=r.area*r.area,u=t*t*e;return s?Nt(u*a/s,s/(u*n)):1/0}function Mn(r,t,e,a,n){var i=t===e.width?0:1,o=1-i,l=["x","y"],s=["width","height"],u=e[l[i]],v=t?r.area/t:0;(n||v>e[s[o]])&&(v=e[s[o]]);for(var h=0,c=r.length;hYr&&(u=Yr),i=l}ua&&(a=t);var i=a%2?a+2:a+3;n=[];for(var o=0;o=0?l=l+u:l=l-u:g>=0?l=l-u:l=l+u}return l}function Ga(r,t){var e=[],a=al,n=[[],[],[]],i=[[],[]],o=[];t/=2,r.eachEdge(function(l,s){var u=l.getLayout(),v=l.getVisual("fromSymbol"),h=l.getVisual("toSymbol");u.__original||(u.__original=[qe(u[0]),qe(u[1])],u[2]&&u.__original.push(qe(u[2])));var c=u.__original;if(u[2]!=null){if(Se(n[0],c[0]),Se(n[1],c[2]),Se(n[2],c[1]),v&&v!=="none"){var f=xt(l.node1),g=kn(n,c[0],f*t);a(n[0][0],n[1][0],n[2][0],g,e),n[0][0]=e[3],n[1][0]=e[4],a(n[0][1],n[1][1],n[2][1],g,e),n[0][1]=e[3],n[1][1]=e[4]}if(h&&h!=="none"){var f=xt(l.node2),g=kn(n,c[1],f*t);a(n[0][0],n[1][0],n[2][0],g,e),n[1][0]=e[1],n[2][0]=e[2],a(n[0][1],n[1][1],n[2][1],g,e),n[1][1]=e[1],n[2][1]=e[2]}Se(u[0],n[0]),Se(u[1],n[2]),Se(u[2],n[1])}else{if(Se(i[0],c[0]),Se(i[1],c[1]),bt(o,i[1],i[0]),pr(o,o),v&&v!=="none"){var f=xt(l.node1);er(i[0],i[0],o,f*t)}if(h&&h!=="none"){var f=xt(l.node2);er(i[1],i[1],o,-f*t)}Se(u[0],i[0]),Se(u[1],i[1])}})}function zn(r){return r.type==="view"}var zv=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.init=function(e,a){var n=new ga,i=new ki,o=this.group;this._controller=new mr(a.getZr()),this._controllerHost={target:o},o.add(n.group),o.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},t.prototype.render=function(e,a,n){var i=this,o=e.coordinateSystem;this._model=e;var l=this._symbolDraw,s=this._lineDraw,u=this.group;if(zn(o)){var v={x:o.x,y:o.y,scaleX:o.scaleX,scaleY:o.scaleY};this._firstRender?u.attr(v):K(u,v,e)}Ga(e.getGraph(),_t(e));var h=e.getData();l.updateData(h);var c=e.getEdgeData();s.updateData(c),this._updateNodeAndLinkScale(),this._updateController(e,a,n),clearTimeout(this._layoutTimeout);var f=e.forceLayout,g=e.get(["force","layoutAnimation"]);f&&this._startForceLayoutIteration(f,g);var p=e.get("layout");h.graph.eachNode(function(S){var b=S.dataIndex,D=S.getGraphicEl(),w=S.getModel();if(D){D.off("drag").off("dragend");var _=w.get("draggable");_&&D.on("drag",function(T){switch(p){case"force":f.warmUp(),!i._layouting&&i._startForceLayoutIteration(f,g),f.setFixed(b),h.setItemLayout(b,[D.x,D.y]);break;case"circular":h.setItemLayout(b,[D.x,D.y]),S.setLayout({fixed:!0},!0),Lr(e,"symbolSize",S,[T.offsetX,T.offsetY]),i.updateLayout(e);break;case"none":default:h.setItemLayout(b,[D.x,D.y]),Ir(e.getGraph(),e),i.updateLayout(e);break}}).on("dragend",function(){f&&f.setUnfixed(b)}),D.setDraggable(_,!!w.get("cursor"));var x=w.get(["emphasis","focus"]);x==="adjacency"&&(le(D).focus=S.getAdjacentDataIndices())}}),h.graph.eachEdge(function(S){var b=S.getGraphicEl(),D=S.getModel().get(["emphasis","focus"]);b&&D==="adjacency"&&(le(b).focus={edge:[S.dataIndex],node:[S.node1.dataIndex,S.node2.dataIndex]})});var d=e.get("layout")==="circular"&&e.get(["circular","rotateLabel"]),m=h.getLayout("cx"),y=h.getLayout("cy");h.graph.eachNode(function(S){mo(S,d,m,y)}),this._firstRender=!1},t.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},t.prototype._startForceLayoutIteration=function(e,a){var n=this;(function i(){e.step(function(o){n.updateLayout(n._model),(n._layouting=!o)&&(a?n._layoutTimeout=setTimeout(i,16):i())})})()},t.prototype._updateController=function(e,a,n){var i=this,o=this._controller,l=this._controllerHost,s=this.group;if(o.setPointerChecker(function(u,v,h){var c=s.getBoundingRect();return c.applyTransform(s.transform),c.contain(v,h)&&!Ni(u,n,e)}),!zn(e.coordinateSystem)){o.disable();return}o.enable(e.get("roam")),l.zoomLimit=e.get("scaleLimit"),l.zoom=e.coordinateSystem.getZoom(),o.off("pan").off("zoom").on("pan",function(u){Ei(l,u.dx,u.dy),n.dispatchAction({seriesId:e.id,type:"graphRoam",dx:u.dx,dy:u.dy})}).on("zoom",function(u){Mi(l,u.scale,u.originX,u.originY),n.dispatchAction({seriesId:e.id,type:"graphRoam",zoom:u.scale,originX:u.originX,originY:u.originY}),i._updateNodeAndLinkScale(),Ga(e.getGraph(),_t(e)),i._lineDraw.updateLayout(),n.updateLabelLayout()})},t.prototype._updateNodeAndLinkScale=function(){var e=this._model,a=e.getData(),n=_t(e);a.eachItemGraphicEl(function(i,o){i&&i.setSymbolScale(n)})},t.prototype.updateLayout=function(e){Ga(e.getGraph(),_t(e)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},t.prototype.remove=function(e,a){this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},t.type="graph",t}(ee);const Bv=zv;function vt(r){return"_EC_"+r}var Gv=function(){function r(t){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=t||!1}return r.prototype.isDirected=function(){return this._directed},r.prototype.addNode=function(t,e){t=t==null?""+e:""+t;var a=this._nodesMap;if(!a[vt(t)]){var n=new tt(t,e);return n.hostGraph=this,this.nodes.push(n),a[vt(t)]=n,n}},r.prototype.getNodeByIndex=function(t){var e=this.data.getRawIndex(t);return this.nodes[e]},r.prototype.getNodeById=function(t){return this._nodesMap[vt(t)]},r.prototype.addEdge=function(t,e,a){var n=this._nodesMap,i=this._edgesMap;if(Ie(t)&&(t=this.nodes[t]),Ie(e)&&(e=this.nodes[e]),t instanceof tt||(t=n[vt(t)]),e instanceof tt||(e=n[vt(e)]),!(!t||!e)){var o=t.id+"-"+e.id,l=new So(t,e,a);return l.hostGraph=this,this._directed&&(t.outEdges.push(l),e.inEdges.push(l)),t.edges.push(l),t!==e&&e.edges.push(l),this.edges.push(l),i[o]=l,l}},r.prototype.getEdgeByIndex=function(t){var e=this.edgeData.getRawIndex(t);return this.edges[e]},r.prototype.getEdge=function(t,e){t instanceof tt&&(t=t.id),e instanceof tt&&(e=e.id);var a=this._edgesMap;return this._directed?a[t+"-"+e]:a[t+"-"+e]||a[e+"-"+t]},r.prototype.eachNode=function(t,e){for(var a=this.nodes,n=a.length,i=0;i=0&&t.call(e,a[i],i)},r.prototype.eachEdge=function(t,e){for(var a=this.edges,n=a.length,i=0;i=0&&a[i].node1.dataIndex>=0&&a[i].node2.dataIndex>=0&&t.call(e,a[i],i)},r.prototype.breadthFirstTraverse=function(t,e,a,n){if(e instanceof tt||(e=this._nodesMap[vt(e)]),!!e){for(var i=a==="out"?"outEdges":a==="in"?"inEdges":"edges",o=0;o=0&&s.node2.dataIndex>=0});for(var i=0,o=n.length;i=0&&this[r][t].setItemVisual(this.dataIndex,e,a)},getVisual:function(e){return this[r][t].getItemVisual(this.dataIndex,e)},setLayout:function(e,a){this.dataIndex>=0&&this[r][t].setItemLayout(this.dataIndex,e,a)},getLayout:function(){return this[r][t].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[r][t].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[r][t].getRawIndex(this.dataIndex)}}}la(tt,bo("hostGraph","data"));la(So,bo("hostGraph","edgeData"));const Ov=Gv;function wo(r,t,e,a,n){for(var i=new Ov(a),o=0;o "+c)),u++)}var f=e.get("coordinateSystem"),g;if(f==="cartesian2d"||f==="polar")g=He(r,e);else{var p=xi.get(f),d=p?p.dimensions||[]:[];ft(d,"value")<0&&d.concat(["value"]);var m=sa(r,{coordDimensions:d,encodeDefine:e.getEncode()}).dimensions;g=new ot(m,e),g.initData(r)}var y=new ot(["value"],e);return y.initData(s,l),n&&n(g,y),ro({mainData:g,struct:i,structAttr:"graph",datas:{node:g,edge:y},datasAttr:{node:"data",edge:"edgeData"}}),i.update(),i}var Fv=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.hasSymbolVisual=!0,e}return t.prototype.init=function(e){r.prototype.init.apply(this,arguments);var a=this;function n(){return a._categoriesData}this.legendVisualProvider=new Gt(n,n),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},t.prototype.mergeOption=function(e){r.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},t.prototype.mergeDefaultAndTheme=function(e){r.prototype.mergeDefaultAndTheme.apply(this,arguments),dr(e,"edgeLabel",["show"])},t.prototype.getInitialData=function(e,a){var n=e.edges||e.links||[],i=e.data||e.nodes||[],o=this;if(i&&n){Tv(this);var l=wo(i,n,this,!0,s);return k(l.edges,function(u){Cv(u.node1,u.node2,this,u.dataIndex)},this),l.data}function s(u,v){u.wrapMethod("getItemModel",function(g){var p=o._categoriesModels,d=g.getShallow("category"),m=p[d];return m&&(m.parentModel=g.parentModel,g.parentModel=m),g});var h=lt.prototype.getModel;function c(g,p){var d=h.call(this,g,p);return d.resolveParentPath=f,d}v.wrapMethod("getItemModel",function(g){return g.resolveParentPath=f,g.getModel=c,g});function f(g){if(g&&(g[0]==="label"||g[1]==="label")){var p=g.slice();return g[0]==="label"?p[0]="edgeLabel":g[1]==="label"&&(p[1]="edgeLabel"),p}return g}}},t.prototype.getGraph=function(){return this.getData().graph},t.prototype.getEdgeData=function(){return this.getGraph().edgeData},t.prototype.getCategoriesData=function(){return this._categoriesData},t.prototype.formatTooltip=function(e,a,n){if(n==="edge"){var i=this.getData(),o=this.getDataParams(e,n),l=i.graph.getEdgeByIndex(e),s=i.getName(l.node1.dataIndex),u=i.getName(l.node2.dataIndex),v=[];return s!=null&&v.push(s),u!=null&&v.push(u),Pe("nameValue",{name:v.join(" > "),value:o.value,noValue:o.value==null})}var h=_l({series:this,dataIndex:e,multipleSeries:a});return h},t.prototype._updateCategoriesData=function(){var e=J(this.option.categories||[],function(n){return n.value!=null?n:U({value:0},n)}),a=new ot(["value"],this);a.initData(e),this._categoriesData=a,this._categoriesModels=a.mapArray(function(n){return a.getItemModel(n)})},t.prototype.setZoom=function(e){this.option.zoom=e},t.prototype.setCenter=function(e){this.option.center=e},t.prototype.isAnimationEnabled=function(){return r.prototype.isAnimationEnabled.call(this)&&!(this.get("layout")==="force"&&this.get(["force","layoutAnimation"]))},t.type="series.graph",t.dependencies=["grid","polar","geo","singleAxis","calendar"],t.defaultOption={z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},t}(ne);const Hv=Fv;var $v={type:"graphRoam",event:"graphRoam",update:"none"};function Sp(r){r.registerChartView(Bv),r.registerSeriesModel(Hv),r.registerProcessor(_v),r.registerVisual(xv),r.registerVisual(Av),r.registerLayout(Pv),r.registerLayout(r.PRIORITY.VISUAL.POST_CHART_LAYOUT,Ev),r.registerLayout(Rv),r.registerCoordinateSystem("graphView",{dimensions:Sr.dimensions,create:kv}),r.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series:focusNodeAdjacency"},Ja),r.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series:unfocusNodeAdjacency"},Ja),r.registerAction($v,function(t,e,a){e.eachComponent({mainType:"series",query:t},function(n){var i=n.coordinateSystem,o=Ri(i,t,void 0,a);n.setCenter&&n.setCenter(o.center),n.setZoom&&n.setZoom(o.zoom)})})}var Wv=function(){function r(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0}return r}(),Uv=function(r){z(t,r);function t(e){var a=r.call(this,e)||this;return a.type="pointer",a}return t.prototype.getDefaultShape=function(){return new Wv},t.prototype.buildPath=function(e,a){var n=Math.cos,i=Math.sin,o=a.r,l=a.width,s=a.angle,u=a.x-n(s)*l*(l>=o/3?1:2),v=a.y-i(s)*l*(l>=o/3?1:2);s=a.angle-Math.PI/2,e.moveTo(u,v),e.lineTo(a.x+n(s)*l,a.y+i(s)*l),e.lineTo(a.x+n(a.angle)*o,a.y+i(a.angle)*o),e.lineTo(a.x-n(s)*l,a.y-i(s)*l),e.lineTo(u,v)},t}(De);const Zv=Uv;function Xv(r,t){var e=r.get("center"),a=t.getWidth(),n=t.getHeight(),i=Math.min(a,n),o=O(e[0],t.getWidth()),l=O(e[1],t.getHeight()),s=O(r.get("radius"),i/2);return{cx:o,cy:l,r:s}}function Xt(r,t){var e=r==null?"":r+"";return t&&(Re(t)?e=t.replace("{value}",e):be(t)&&(e=t(r))),e}var Yv=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,a,n){this.group.removeAll();var i=e.get(["axisLine","lineStyle","color"]),o=Xv(e,n);this._renderMain(e,a,n,i,o),this._data=e.getData()},t.prototype.dispose=function(){},t.prototype._renderMain=function(e,a,n,i,o){var l=this.group,s=e.get("clockwise"),u=-e.get("startAngle")/180*Math.PI,v=-e.get("endAngle")/180*Math.PI,h=e.getModel("axisLine"),c=h.get("roundCap"),f=c?aa:Ke,g=h.get("show"),p=h.getModel("lineStyle"),d=p.get("width"),m=[u,v];nl(m,!s),u=m[0],v=m[1];for(var y=v-u,S=u,b=[],D=0;g&&D=T&&(L===0?0:i[L-1][0])Math.PI/2&&(F+=Math.PI)):$==="tangential"?F=-x-Math.PI/2:Ie($)&&(F=$*Math.PI/180),F===0?h.add(new Ee({style:Be(S,{text:V,x:B,y:W,verticalAlign:P<-.8?"top":P>.8?"bottom":"middle",align:C<-.4?"left":C>.4?"right":"center"},{inheritColor:G}),silent:!0})):h.add(new Ee({style:Be(S,{text:V,x:B,y:W,verticalAlign:"middle",align:"center"},{inheritColor:G}),silent:!0,originX:B,originY:W,rotation:F}))}if(y.get("show")&&E!==b){var R=y.get("distance");R=R?R+v:v;for(var X=0;X<=D;X++){C=Math.cos(x),P=Math.sin(x);var j=new qr({shape:{x1:C*(g-R)+c,y1:P*(g-R)+f,x2:C*(g-_-R)+c,y2:P*(g-_-R)+f},silent:!0,style:I});I.stroke==="auto"&&j.setStyle({stroke:i((E+X/D)/b)}),h.add(j),x+=L}x-=L}else x+=T}},t.prototype._renderPointer=function(e,a,n,i,o,l,s,u,v){var h=this.group,c=this._data,f=this._progressEls,g=[],p=e.get(["pointer","show"]),d=e.getModel("progress"),m=d.get("show"),y=e.getData(),S=y.mapDimension("value"),b=+e.get("min"),D=+e.get("max"),w=[b,D],_=[l,s];function x(L,A){var I=y.getItemModel(L),N=I.getModel("pointer"),C=O(N.get("width"),o.r),P=O(N.get("length"),o.r),E=e.get(["pointer","icon"]),R=N.get("offsetCenter"),M=O(R[0],o.r),V=O(R[1],o.r),G=N.get("keepAspect"),B;return E?B=Ve(E,M-C/2,V-P,C,P,null,G):B=new Zv({shape:{angle:-Math.PI/2,width:C,r:P,x:M,y:V}}),B.rotation=-(A+Math.PI/2),B.x=o.cx,B.y=o.cy,B}function T(L,A){var I=d.get("roundCap"),N=I?aa:Ke,C=d.get("overlap"),P=C?d.get("width"):v/y.count(),E=C?o.r-P:o.r-(L+1)*P,R=C?o.r:o.r-L*P,M=new N({shape:{startAngle:l,endAngle:A,cx:o.cx,cy:o.cy,clockwise:u,r0:E,r:R}});return C&&(M.z2=D-y.get(S,L)%D),M}(m||p)&&(y.diff(c).add(function(L){var A=y.get(S,L);if(p){var I=x(L,l);oe(I,{rotation:-((isNaN(+A)?_[0]:Ce(A,w,_,!0))+Math.PI/2)},e),h.add(I),y.setItemGraphicEl(L,I)}if(m){var N=T(L,l),C=d.get("clip");oe(N,{shape:{endAngle:Ce(A,w,_,C)}},e),h.add(N),jr(e.seriesIndex,y.dataType,L,N),g[L]=N}}).update(function(L,A){var I=y.get(S,L);if(p){var N=c.getItemGraphicEl(A),C=N?N.rotation:l,P=x(L,C);P.rotation=C,K(P,{rotation:-((isNaN(+I)?_[0]:Ce(I,w,_,!0))+Math.PI/2)},e),h.add(P),y.setItemGraphicEl(L,P)}if(m){var E=f[A],R=E?E.shape.endAngle:l,M=T(L,R),V=d.get("clip");K(M,{shape:{endAngle:Ce(I,w,_,V)}},e),h.add(M),jr(e.seriesIndex,y.dataType,L,M),g[L]=M}}).execute(),y.each(function(L){var A=y.getItemModel(L),I=A.getModel("emphasis"),N=I.get("focus"),C=I.get("blurScope"),P=I.get("disabled");if(p){var E=y.getItemGraphicEl(L),R=y.getItemVisual(L,"style"),M=R.fill;if(E instanceof Rt){var V=E.style;E.useStyle(U({image:V.image,x:V.x,y:V.y,width:V.width,height:V.height},R))}else E.useStyle(R),E.type!=="pointer"&&E.setColor(M);E.setStyle(A.getModel(["pointer","itemStyle"]).getItemStyle()),E.style.fill==="auto"&&E.setStyle("fill",i(Ce(y.get(S,L),w,[0,1],!0))),E.z2EmphasisLift=0,ge(E,A),se(E,N,C,P)}if(m){var G=g[L];G.useStyle(y.getItemVisual(L,"style")),G.setStyle(A.getModel(["progress","itemStyle"]).getItemStyle()),G.z2EmphasisLift=0,ge(G,A),se(G,N,C,P)}}),this._progressEls=g)},t.prototype._renderAnchor=function(e,a){var n=e.getModel("anchor"),i=n.get("show");if(i){var o=n.get("size"),l=n.get("icon"),s=n.get("offsetCenter"),u=n.get("keepAspect"),v=Ve(l,a.cx-o/2+O(s[0],a.r),a.cy-o/2+O(s[1],a.r),o,o,null,u);v.z2=n.get("showAbove")?1:0,v.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(v)}},t.prototype._renderTitleAndDetail=function(e,a,n,i,o){var l=this,s=e.getData(),u=s.mapDimension("value"),v=+e.get("min"),h=+e.get("max"),c=new ae,f=[],g=[],p=e.isAnimationEnabled(),d=e.get(["pointer","showAbove"]);s.diff(this._data).add(function(m){f[m]=new Ee({silent:!0}),g[m]=new Ee({silent:!0})}).update(function(m,y){f[m]=l._titleEls[y],g[m]=l._detailEls[y]}).execute(),s.each(function(m){var y=s.getItemModel(m),S=s.get(u,m),b=new ae,D=i(Ce(S,[v,h],[0,1],!0)),w=y.getModel("title");if(w.get("show")){var _=w.get("offsetCenter"),x=o.cx+O(_[0],o.r),T=o.cy+O(_[1],o.r),L=f[m];L.attr({z2:d?0:2,style:Be(w,{x,y:T,text:s.getName(m),align:"center",verticalAlign:"middle"},{inheritColor:D})}),b.add(L)}var A=y.getModel("detail");if(A.get("show")){var I=A.get("offsetCenter"),N=o.cx+O(I[0],o.r),C=o.cy+O(I[1],o.r),P=O(A.get("width"),o.r),E=O(A.get("height"),o.r),R=e.get(["progress","show"])?s.getItemVisual(m,"style").fill:D,L=g[m],M=A.get("formatter");L.attr({z2:d?0:2,style:Be(A,{x:N,y:C,text:Xt(S,M),width:isNaN(P)?null:P,height:isNaN(E)?null:E,align:"center",verticalAlign:"middle"},{inheritColor:R})}),yi(L,{normal:A},S,function(G){return Xt(G,M)}),p&&xl(L,m,s,e,{getFormattedLabel:function(G,B,W,$,F,X){return Xt(X?X.interpolatedValue:S,M)}}),b.add(L)}c.add(b)}),this.group.add(c),this._titleEls=f,this._detailEls=g},t.type="gauge",t}(ee);const qv=Yv;var jv=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.visualStyleAccessPath="itemStyle",e}return t.prototype.getInitialData=function(e,a){return dt(this,["value"])},t.type="series.gauge",t.defaultOption={z:2,colorBy:"data",center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12,rotate:0},pointer:{icon:null,offsetCenter:[0,0],show:!0,showAbove:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},t}(ne);const Kv=jv;function bp(r){r.registerChartView(qv),r.registerSeriesModel(Kv)}var Qv=["itemStyle","opacity"],Jv=function(r){z(t,r);function t(e,a){var n=r.call(this)||this,i=n,o=new pt,l=new Ee;return i.setTextContent(l),n.setTextGuideLine(o),n.updateData(e,a,!0),n}return t.prototype.updateData=function(e,a,n){var i=this,o=e.hostModel,l=e.getItemModel(a),s=e.getItemLayout(a),u=l.getModel("emphasis"),v=l.get(Qv);v=v??1,n||ke(i),i.useStyle(e.getItemVisual(a,"style")),i.style.lineJoin="round",n?(i.setShape({points:s.points}),i.style.opacity=0,oe(i,{style:{opacity:v}},o,a)):K(i,{style:{opacity:v},shape:{points:s.points}},o,a),ge(i,l),this._updateLabel(e,a),se(this,u.get("focus"),u.get("blurScope"),u.get("disabled"))},t.prototype._updateLabel=function(e,a){var n=this,i=this.getTextGuideLine(),o=n.getTextContent(),l=e.hostModel,s=e.getItemModel(a),u=e.getItemLayout(a),v=u.label,h=e.getItemVisual(a,"style"),c=h.fill;Te(o,we(s),{labelFetcher:e.hostModel,labelDataIndex:a,defaultOpacity:h.opacity,defaultText:e.getName(a)},{normal:{align:v.textAlign,verticalAlign:v.verticalAlign}}),n.setTextConfig({local:!0,inside:!!v.inside,insideStroke:c,outsideFill:c});var f=v.linePoints;i.setShape({points:f}),n.textGuideLineConfig={anchor:f?new ve(f[0][0],f[0][1]):null},K(o,{style:{x:v.x,y:v.y}},l,a),o.attr({rotation:v.rotation,originX:v.x,originY:v.y,z2:10}),Gi(n,Oi(s),{stroke:c})},t}(yr),eh=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.ignoreLabelLineUpdate=!0,e}return t.prototype.render=function(e,a,n){var i=e.getData(),o=this._data,l=this.group;i.diff(o).add(function(s){var u=new Jv(i,s);i.setItemGraphicEl(s,u),l.add(u)}).update(function(s,u){var v=o.getItemGraphicEl(u);v.updateData(i,s),l.add(v),i.setItemGraphicEl(s,v)}).remove(function(s){var u=o.getItemGraphicEl(s);Kt(u,e,s)}).execute(),this._data=i},t.prototype.remove=function(){this.group.removeAll(),this._data=null},t.prototype.dispose=function(){},t.type="funnel",t}(ee);const th=eh;var ah=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.init=function(e){r.prototype.init.apply(this,arguments),this.legendVisualProvider=new Gt(ue(this.getData,this),ue(this.getRawData,this)),this._defaultLabelLine(e)},t.prototype.getInitialData=function(e,a){return dt(this,{coordDimensions:["value"],encodeDefaulter:ye(gr,this)})},t.prototype._defaultLabelLine=function(e){dr(e,"labelLine",["show"]);var a=e.labelLine,n=e.emphasis.labelLine;a.show=a.show&&e.label.show,n.show=n.show&&e.emphasis.label.show},t.prototype.getDataParams=function(e){var a=this.getData(),n=r.prototype.getDataParams.call(this,e),i=a.mapDimension("value"),o=a.getSum(i);return n.percent=o?+(a.get(i,e)/o*100).toFixed(2):0,n.$vars.push("percent"),n},t.type="series.funnel",t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},t}(ne);const rh=ah;function nh(r,t){return gt(r.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function ih(r,t){for(var e=r.mapDimension("value"),a=r.mapArray(e,function(s){return s}),n=[],i=t==="ascending",o=0,l=r.count();o=0&&(l[o[s].depth]=new lt(o[s],this,a));if(i&&n){var u=wo(i,n,this,!0,v);return u.data}function v(h,c){h.wrapMethod("getItemModel",function(f,g){var p=f.parentModel,d=p.getData().getItemLayout(g);if(d){var m=d.depth,y=p.levelModels[m];y&&(f.parentModel=y)}return f}),c.wrapMethod("getItemModel",function(f,g){var p=f.parentModel,d=p.getGraph().getEdgeByIndex(g),m=d.node1.getLayout();if(m){var y=m.depth,S=p.levelModels[y];S&&(f.parentModel=S)}return f})}},t.prototype.setNodePosition=function(e,a){var n=this.option.data||this.option.nodes,i=n[e];i.localX=a[0],i.localY=a[1]},t.prototype.getGraph=function(){return this.getData().graph},t.prototype.getEdgeData=function(){return this.getGraph().edgeData},t.prototype.formatTooltip=function(e,a,n){function i(f){return isNaN(f)||f==null}if(n==="edge"){var o=this.getDataParams(e,n),l=o.data,s=o.value,u=l.source+" -- "+l.target;return Pe("nameValue",{name:u,value:s,noValue:i(s)})}else{var v=this.getGraph().getNodeByIndex(e),h=v.getLayout().value,c=this.getDataParams(e,n).data.name;return Pe("nameValue",{name:c!=null?c+"":null,value:h,noValue:i(h)})}},t.prototype.optionUpdated=function(){},t.prototype.getDataParams=function(e,a){var n=r.prototype.getDataParams.call(this,e,a);if(n.value==null&&a==="node"){var i=this.getGraph().getNodeByIndex(e),o=i.getLayout().value;n.value=o}return n},t.type="series.sankey",t.defaultOption={z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},edgeLabel:{show:!1,fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},t}(ne);const Ih=Ah;function Lh(r,t){r.eachSeriesByType("sankey",function(e){var a=e.get("nodeWidth"),n=e.get("nodeGap"),i=Th(e,t);e.layoutInfo=i;var o=i.width,l=i.height,s=e.getGraph(),u=s.nodes,v=s.edges;Ph(u);var h=fr(u,function(p){return p.getLayout().value===0}),c=h.length!==0?0:e.get("layoutIterations"),f=e.get("orient"),g=e.get("nodeAlign");Ch(u,v,a,n,o,l,c,f,g)})}function Th(r,t){return gt(r.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function Ch(r,t,e,a,n,i,o,l,s){Nh(r,t,e,n,i,l,s),Vh(r,t,i,n,a,o,l),Wh(r,l)}function Ph(r){k(r,function(t){var e=je(t.outEdges,ia),a=je(t.inEdges,ia),n=t.getValue()||0,i=Math.max(e,a,n);t.setLayout({value:i},!0)})}function Nh(r,t,e,a,n,i,o){for(var l=[],s=[],u=[],v=[],h=0,c=0;c=0;m&&d.depth>f&&(f=d.depth),p.setLayout({depth:m?d.depth:h},!0),i==="vertical"?p.setLayout({dy:e},!0):p.setLayout({dx:e},!0);for(var y=0;yh-1?f:h-1;o&&o!=="left"&&Eh(r,o,i,_);var x=i==="vertical"?(n-e)/_:(a-e)/_;Rh(r,x,i)}function _o(r){var t=r.hostGraph.data.getRawDataItem(r.dataIndex);return t.depth!=null&&t.depth>=0}function Eh(r,t,e,a){if(t==="right"){for(var n=[],i=r,o=0;i.length;){for(var l=0;l0;i--)s*=.99,Bh(l,s,o),Fa(l,n,e,a,o),$h(l,s,o),Fa(l,n,e,a,o)}function kh(r,t){var e=[],a=t==="vertical"?"y":"x",n=ar(r,function(i){return i.getLayout()[a]});return n.keys.sort(function(i,o){return i-o}),k(n.keys,function(i){e.push(n.buckets.get(i))}),e}function zh(r,t,e,a,n,i){var o=1/0;k(r,function(l){var s=l.length,u=0;k(l,function(h){u+=h.getLayout().value});var v=i==="vertical"?(a-(s-1)*n)/u:(e-(s-1)*n)/u;v0&&(l=s.getLayout()[i]+u,n==="vertical"?s.setLayout({x:l},!0):s.setLayout({y:l},!0)),v=s.getLayout()[i]+s.getLayout()[c]+t;var g=n==="vertical"?a:e;if(u=v-t-g,u>0){l=s.getLayout()[i]-u,n==="vertical"?s.setLayout({x:l},!0):s.setLayout({y:l},!0),v=l;for(var f=h-2;f>=0;--f)s=o[f],u=s.getLayout()[i]+s.getLayout()[c]+t-v,u>0&&(l=s.getLayout()[i]-u,n==="vertical"?s.setLayout({x:l},!0):s.setLayout({y:l},!0)),v=s.getLayout()[i]}})}function Bh(r,t,e){k(r.slice().reverse(),function(a){k(a,function(n){if(n.outEdges.length){var i=je(n.outEdges,Gh,e)/je(n.outEdges,ia);if(isNaN(i)){var o=n.outEdges.length;i=o?je(n.outEdges,Oh,e)/o:0}if(e==="vertical"){var l=n.getLayout().x+(i-Qe(n,e))*t;n.setLayout({x:l},!0)}else{var s=n.getLayout().y+(i-Qe(n,e))*t;n.setLayout({y:s},!0)}}})})}function Gh(r,t){return Qe(r.node2,t)*r.getValue()}function Oh(r,t){return Qe(r.node2,t)}function Fh(r,t){return Qe(r.node1,t)*r.getValue()}function Hh(r,t){return Qe(r.node1,t)}function Qe(r,t){return t==="vertical"?r.getLayout().x+r.getLayout().dx/2:r.getLayout().y+r.getLayout().dy/2}function ia(r){return r.getValue()}function je(r,t,e){for(var a=0,n=r.length,i=-1;++io&&(o=s)}),k(a,function(l){var s=new Vi({type:"color",mappingMethod:"linear",dataExtent:[i,o],visual:t.get("color")}),u=s.mapValueToVisual(l.getLayout().value),v=l.getModel().get(["itemStyle","color"]);v!=null?(l.setVisual("color",v),l.setVisual("style",{fill:v})):(l.setVisual("color",u),l.setVisual("style",{fill:u}))})}n.length&&k(n,function(l){var s=l.getModel().get("lineStyle");l.setVisual("style",s)})})}function _p(r){r.registerChartView(xh),r.registerSeriesModel(Ih),r.registerLayout(Lh),r.registerVisual(Uh),r.registerAction({type:"dragNode",event:"dragnode",update:"update"},function(t,e){e.eachComponent({mainType:"series",subType:"sankey",query:t},function(a){a.setNodePosition(t.dataIndex,[t.localX,t.localY])})})}var xo=function(){function r(){}return r.prototype.getInitialData=function(t,e){var a,n=e.getComponent("xAxis",this.get("xAxisIndex")),i=e.getComponent("yAxis",this.get("yAxisIndex")),o=n.get("type"),l=i.get("type"),s;o==="category"?(t.layout="horizontal",a=n.getOrdinalMeta(),s=!0):l==="category"?(t.layout="vertical",a=i.getOrdinalMeta(),s=!0):t.layout=t.layout||"horizontal";var u=["x","y"],v=t.layout==="horizontal"?0:1,h=this._baseAxisDim=u[v],c=u[1-v],f=[n,i],g=f[v].get("type"),p=f[1-v].get("type"),d=t.data;if(d&&s){var m=[];k(d,function(b,D){var w;Y(b)?(w=b.slice(),b.unshift(D)):Y(b.value)?(w=U({},b),w.value=w.value.slice(),b.value.unshift(D)):w=b,m.push(w)}),t.data=m}var y=this.defaultValueDimensions,S=[{name:h,type:rr(g),ordinalMeta:a,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:rr(p),dimsDef:y.slice()}];return dt(this,{coordDimensions:S,dimensionsCount:y.length+1,encodeDefaulter:ye(Il,S,this)})},r.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},r}(),Ao=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],e.visualDrawType="stroke",e}return t.type="series.boxplot",t.dependencies=["xAxis","yAxis","grid"],t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},t}(ne);la(Ao,xo,!0);const Zh=Ao;var Xh=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,a,n){var i=e.getData(),o=this.group,l=this._data;this._data||o.removeAll();var s=e.get("layout")==="horizontal"?1:0;i.diff(l).add(function(u){if(i.hasValue(u)){var v=i.getItemLayout(u),h=On(v,i,u,s,!0);i.setItemGraphicEl(u,h),o.add(h)}}).update(function(u,v){var h=l.getItemGraphicEl(v);if(!i.hasValue(u)){o.remove(h);return}var c=i.getItemLayout(u);h?(ke(h),Io(c,h,i,u)):h=On(c,i,u,s),o.add(h),i.setItemGraphicEl(u,h)}).remove(function(u){var v=l.getItemGraphicEl(u);v&&o.remove(v)}).execute(),this._data=i},t.prototype.remove=function(e){var a=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl(function(i){i&&a.remove(i)})},t.type="boxplot",t}(ee),Yh=function(){function r(){}return r}(),qh=function(r){z(t,r);function t(e){var a=r.call(this,e)||this;return a.type="boxplotBoxPath",a}return t.prototype.getDefaultShape=function(){return new Yh},t.prototype.buildPath=function(e,a){var n=a.points,i=0;for(e.moveTo(n[i][0],n[i][1]),i++;i<4;i++)e.lineTo(n[i][0],n[i][1]);for(e.closePath();ip){var b=[m,S];a.push(b)}}}return{boxData:e,outliers:a}}var rc={type:"echarts:boxplot",transform:function(t){var e=t.upstream;if(e.sourceFormat!==Tl){var a="";Li(a)}var n=ac(e.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:n.boxData},{data:n.outliers}]}};function xp(r){r.registerSeriesModel(Zh),r.registerChartView(Kh),r.registerLayout(Qh),r.registerTransform(rc)}var nc=["color","borderColor"],ic=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,a,n){this.group.removeClipPath(),this._progressiveEls=null,this._updateDrawMode(e),this._isLargeDraw?this._renderLarge(e):this._renderNormal(e)},t.prototype.incrementalPrepareRender=function(e,a,n){this._clear(),this._updateDrawMode(e)},t.prototype.incrementalRender=function(e,a,n,i){this._progressiveEls=[],this._isLargeDraw?this._incrementalRenderLarge(e,a):this._incrementalRenderNormal(e,a)},t.prototype.eachRendered=function(e){va(this._progressiveEls||this.group,e)},t.prototype._updateDrawMode=function(e){var a=e.pipelineContext.large;(this._isLargeDraw==null||a!==this._isLargeDraw)&&(this._isLargeDraw=a,this._clear())},t.prototype._renderNormal=function(e){var a=e.getData(),n=this._data,i=this.group,o=a.getLayout("isSimpleBox"),l=e.get("clip",!0),s=e.coordinateSystem,u=s.getArea&&s.getArea();this._data||i.removeAll(),a.diff(n).add(function(v){if(a.hasValue(v)){var h=a.getItemLayout(v);if(l&&Fn(u,h))return;var c=Ha(h,v,!0);oe(c,{shape:{points:h.ends}},e,v),$a(c,a,v,o),i.add(c),a.setItemGraphicEl(v,c)}}).update(function(v,h){var c=n.getItemGraphicEl(h);if(!a.hasValue(v)){i.remove(c);return}var f=a.getItemLayout(v);if(l&&Fn(u,f)){i.remove(c);return}c?(K(c,{shape:{points:f.ends}},e,v),ke(c)):c=Ha(f),$a(c,a,v,o),i.add(c),a.setItemGraphicEl(v,c)}).remove(function(v){var h=n.getItemGraphicEl(v);h&&i.remove(h)}).execute(),this._data=a},t.prototype._renderLarge=function(e){this._clear(),Hn(e,this.group);var a=e.get("clip",!0)?ma(e.coordinateSystem,!1,e):null;a?this.group.setClipPath(a):this.group.removeClipPath()},t.prototype._incrementalRenderNormal=function(e,a){for(var n=a.getData(),i=n.getLayout("isSimpleBox"),o;(o=e.next())!=null;){var l=n.getItemLayout(o),s=Ha(l);$a(s,n,o,i),s.incremental=!0,this.group.add(s),this._progressiveEls.push(s)}},t.prototype._incrementalRenderLarge=function(e,a){Hn(a,this.group,this._progressiveEls,!0)},t.prototype.remove=function(e){this._clear()},t.prototype._clear=function(){this.group.removeAll(),this._data=null},t.type="candlestick",t}(ee),oc=function(){function r(){}return r}(),lc=function(r){z(t,r);function t(e){var a=r.call(this,e)||this;return a.type="normalCandlestickBox",a}return t.prototype.getDefaultShape=function(){return new oc},t.prototype.buildPath=function(e,a){var n=a.points;this.__simpleBox?(e.moveTo(n[4][0],n[4][1]),e.lineTo(n[6][0],n[6][1])):(e.moveTo(n[0][0],n[0][1]),e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]),e.lineTo(n[3][0],n[3][1]),e.closePath(),e.moveTo(n[4][0],n[4][1]),e.lineTo(n[5][0],n[5][1]),e.moveTo(n[6][0],n[6][1]),e.lineTo(n[7][0],n[7][1]))},t}(De);function Ha(r,t,e){var a=r.ends;return new lc({shape:{points:e?sc(a,r):a},z2:100})}function Fn(r,t){for(var e=!0,a=0;a0?"borderColor":"borderColor0"])||e.get(["itemStyle",r>0?"color":"color0"]);r===0&&(n=e.get(["itemStyle","borderColorDoji"]));var i=e.getModel("itemStyle").getItemStyle(nc);t.useStyle(i),t.style.fill=null,t.style.stroke=n}const vc=ic;var Lo=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],e}return t.prototype.getShadowDim=function(){return"open"},t.prototype.brushSelector=function(e,a,n){var i=a.getItemLayout(e);return i&&n.rect(i.brushRect)},t.type="series.candlestick",t.dependencies=["xAxis","yAxis","grid"],t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderColorDoji:null,borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},t}(ne);la(Lo,xo,!0);const hc=Lo;function cc(r){!r||!Y(r.series)||k(r.series,function(t){ol(t)&&t.type==="k"&&(t.type="candlestick")})}var fc=["itemStyle","borderColor"],pc=["itemStyle","borderColor0"],gc=["itemStyle","borderColorDoji"],dc=["itemStyle","color"],yc=["itemStyle","color0"],mc={seriesType:"candlestick",plan:ua(),performRawSeries:!0,reset:function(r,t){function e(i,o){return o.get(i>0?dc:yc)}function a(i,o){return o.get(i===0?gc:i>0?fc:pc)}if(!t.isSeriesFiltered(r)){var n=r.pipelineContext.large;return!n&&{progress:function(i,o){for(var l;(l=i.next())!=null;){var s=o.getItemModel(l),u=o.getItemLayout(l).sign,v=s.getItemStyle();v.fill=e(u,s),v.stroke=a(u,s)||v.fill;var h=o.ensureUniqueItemVisual(l,"style");U(h,v)}}}}}};const Sc=mc;var bc={seriesType:"candlestick",plan:ua(),reset:function(r){var t=r.coordinateSystem,e=r.getData(),a=wc(r,e),n=0,i=1,o=["x","y"],l=e.getDimensionIndex(e.mapDimension(o[n])),s=J(e.mapDimensionsAll(o[i]),e.getDimensionIndex,e),u=s[0],v=s[1],h=s[2],c=s[3];if(e.setLayout({candleWidth:a,isSimpleBox:a<=1.3}),l<0||s.length<4)return;return{progress:r.pipelineContext.large?g:f};function f(p,d){for(var m,y=d.getStore();(m=p.next())!=null;){var S=y.get(l,m),b=y.get(u,m),D=y.get(v,m),w=y.get(h,m),_=y.get(c,m),x=Math.min(b,D),T=Math.max(b,D),L=R(x,S),A=R(T,S),I=R(w,S),N=R(_,S),C=[];M(C,A,0),M(C,L,1),C.push(G(N),G(A),G(I),G(L));var P=d.getItemModel(m),E=!!P.get(["itemStyle","borderColorDoji"]);d.setItemLayout(m,{sign:$n(y,m,b,D,v,E),initBaseline:b>D?A[i]:L[i],ends:C,brushRect:V(w,_,S)})}function R(B,W){var $=[];return $[n]=W,$[i]=B,isNaN(W)||isNaN(B)?[NaN,NaN]:t.dataToPoint($)}function M(B,W,$){var F=W.slice(),X=W.slice();F[n]=xa(F[n]+a/2,1,!1),X[n]=xa(X[n]-a/2,1,!0),$?B.push(F,X):B.push(X,F)}function V(B,W,$){var F=R(B,$),X=R(W,$);return F[n]-=a/2,X[n]-=a/2,{x:F[0],y:F[1],width:a,height:X[1]-F[1]}}function G(B){return B[n]=xa(B[n],1),B}}function g(p,d){for(var m=rt(p.count*4),y=0,S,b=[],D=[],w,_=d.getStore(),x=!!r.get(["itemStyle","borderColorDoji"]);(w=p.next())!=null;){var T=_.get(l,w),L=_.get(u,w),A=_.get(v,w),I=_.get(h,w),N=_.get(c,w);if(isNaN(T)||isNaN(I)||isNaN(N)){m[y++]=NaN,y+=3;continue}m[y++]=$n(_,w,L,A,v,x),b[n]=T,b[i]=I,S=t.dataToPoint(b,null,D),m[y++]=S?S[0]:NaN,m[y++]=S?S[1]:NaN,b[i]=N,S=t.dataToPoint(b,null,D),m[y++]=S?S[1]:NaN}d.setLayout("largePoints",m)}}};function $n(r,t,e,a,n,i){var o;return e>a?o=-1:e0?r.get(n,t-1)<=a?1:-1:1,o}function wc(r,t){var e=r.getBaseAxis(),a,n=e.type==="category"?e.getBandWidth():(a=e.getExtent(),Math.abs(a[1]-a[0])/t.count()),i=O(It(r.get("barMaxWidth"),n),n),o=O(It(r.get("barMinWidth"),1),n),l=r.get("barWidth");return l!=null?O(l,n):Math.max(Math.min(n/2,i),o)}const Dc=bc;function Ap(r){r.registerChartView(vc),r.registerSeriesModel(hc),r.registerPreprocessor(cc),r.registerVisual(Sc),r.registerLayout(Dc)}function Wn(r,t){var e=t.rippleEffectColor||t.color;r.eachChild(function(a){a.attr({z:t.z,zlevel:t.zlevel,style:{stroke:t.brushType==="stroke"?e:null,fill:t.brushType==="fill"?e:null}})})}var _c=function(r){z(t,r);function t(e,a){var n=r.call(this)||this,i=new da(e,a),o=new ae;return n.add(i),n.add(o),n.updateData(e,a),n}return t.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},t.prototype.startEffectAnimation=function(e){for(var a=e.symbolType,n=e.color,i=e.rippleNumber,o=this.childAt(1),l=0;l0&&(l=this._getLineLength(i)/v*1e3),l!==this._period||s!==this._loop||u!==this._roundTrip){i.stopAnimation();var c=void 0;be(h)?c=h(n):c=h,i.__t>0&&(c=-l*i.__t),this._animateSymbol(i,l,c,s,u)}this._period=l,this._loop=s,this._roundTrip=u}},t.prototype._animateSymbol=function(e,a,n,i,o){if(a>0){e.__t=0;var l=this,s=e.animate("",i).when(o?a*2:a,{__t:o?2:1}).delay(n).during(function(){l._updateSymbolPosition(e)});i||s.done(function(){l.remove(e)}),s.start()}},t.prototype._getLineLength=function(e){return at(e.__p1,e.__cp1)+at(e.__cp1,e.__p2)},t.prototype._updateAnimationPoints=function(e,a){e.__p1=a[0],e.__p2=a[1],e.__cp1=a[2]||[(a[0][0]+a[1][0])/2,(a[0][1]+a[1][1])/2]},t.prototype.updateData=function(e,a,n){this.childAt(0).updateData(e,a,n),this._updateEffectSymbol(e,a)},t.prototype._updateSymbolPosition=function(e){var a=e.__p1,n=e.__p2,i=e.__cp1,o=e.__t<1?e.__t:2-e.__t,l=[e.x,e.y],s=l.slice(),u=fi,v=sl;l[0]=u(a[0],i[0],n[0],o),l[1]=u(a[1],i[1],n[1],o);var h=e.__t<1?v(a[0],i[0],n[0],o):v(n[0],i[0],a[0],1-o),c=e.__t<1?v(a[1],i[1],n[1],o):v(n[1],i[1],a[1],1-o);e.rotation=-Math.atan2(c,h)-Math.PI/2,(this._symbolType==="line"||this._symbolType==="rect"||this._symbolType==="roundRect")&&(e.__lastT!==void 0&&e.__lastT=0&&!(i[s]<=a);s--);s=Math.min(s,o-2)}else{for(s=l;sa);s++);s=Math.min(s-1,o-2)}var v=(a-i[s])/(i[s+1]-i[s]),h=n[s],c=n[s+1];e.x=h[0]*(1-v)+v*c[0],e.y=h[1]*(1-v)+v*c[1];var f=e.__t<1?c[0]-h[0]:h[0]-c[0],g=e.__t<1?c[1]-h[1]:h[1]-c[1];e.rotation=-Math.atan2(g,f)-Math.PI/2,this._lastFrame=s,this._lastFramePercent=a,e.ignore=!1}},t}(To);const Ec=Nc;var Mc=function(){function r(){this.polyline=!1,this.curveness=0,this.segs=[]}return r}(),Rc=function(r){z(t,r);function t(e){var a=r.call(this,e)||this;return a._off=0,a.hoverDataIdx=-1,a}return t.prototype.reset=function(){this.notClear=!1,this._off=0},t.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},t.prototype.getDefaultShape=function(){return new Mc},t.prototype.buildPath=function(e,a){var n=a.segs,i=a.curveness,o;if(a.polyline)for(o=this._off;o0){e.moveTo(n[o++],n[o++]);for(var s=1;s0){var f=(u+h)/2-(v-c)*i,g=(v+c)/2-(h-u)*i;e.quadraticCurveTo(f,g,h,c)}else e.lineTo(h,c)}this.incremental&&(this._off=o,this.notClear=!0)},t.prototype.findDataIndex=function(e,a){var n=this.shape,i=n.segs,o=n.curveness,l=this.style.lineWidth;if(n.polyline)for(var s=0,u=0;u0)for(var h=i[u++],c=i[u++],f=1;f0){var d=(h+g)/2-(c-p)*o,m=(c+p)/2-(g-h)*o;if(ul(h,c,d,m,g,p,l,e,a))return s}else if(Fr(h,c,g,p,l,e,a))return s;s++}return-1},t.prototype.contain=function(e,a){var n=this.transformCoordToLocal(e,a),i=this.getBoundingRect();if(e=n[0],a=n[1],i.contain(e,a)){var o=this.hoverDataIdx=this.findDataIndex(e,a);return o>=0}return this.hoverDataIdx=-1,!1},t.prototype.getBoundingRect=function(){var e=this._rect;if(!e){for(var a=this.shape,n=a.segs,i=1/0,o=1/0,l=-1/0,s=-1/0,u=0;u0&&(o.dataIndex=s+t.__startIndex)})},r.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},r}();const kc=Vc;var zc={seriesType:"lines",plan:ua(),reset:function(r){var t=r.coordinateSystem;if(t){var e=r.get("polyline"),a=r.pipelineContext.large;return{progress:function(n,i){var o=[];if(a){var l=void 0,s=n.end-n.start;if(e){for(var u=0,v=n.start;v0&&(v||u.configLayer(l,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(s/10+.9,1),0)})),o.updateData(i);var h=e.get("clip",!0)&&ma(e.coordinateSystem,!1,e);h?this.group.setClipPath(h):this.group.removeClipPath(),this._lastZlevel=l,this._finished=!0},t.prototype.incrementalPrepareRender=function(e,a,n){var i=e.getData(),o=this._updateLineDraw(i,e);o.incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},t.prototype.incrementalRender=function(e,a,n){this._lineDraw.incrementalUpdate(e,a.getData()),this._finished=e.end===a.getData().count()},t.prototype.eachRendered=function(e){this._lineDraw&&this._lineDraw.eachRendered(e)},t.prototype.updateTransform=function(e,a,n){var i=e.getData(),o=e.pipelineContext;if(!this._finished||o.large||o.progressiveRender)return{update:!0};var l=Po.reset(e,a,n);l.progress&&l.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},t.prototype._updateLineDraw=function(e,a){var n=this._lineDraw,i=this._showEffect(a),o=!!a.get("polyline"),l=a.pipelineContext,s=l.large;return(!n||i!==this._hasEffet||o!==this._isPolyline||s!==this._isLargeDraw)&&(n&&n.remove(),n=this._lineDraw=s?new kc:new ki(o?i?Ec:Co:i?To:zi),this._hasEffet=i,this._isPolyline=o,this._isLargeDraw=s),this.group.add(n.group),n},t.prototype._showEffect=function(e){return!!e.get(["effect","show"])},t.prototype._clearLayer=function(e){var a=e.getZr(),n=a.painter.getType()==="svg";!n&&this._lastZlevel!=null&&a.painter.getLayer(this._lastZlevel).clear(!0)},t.prototype.remove=function(e,a){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(a)},t.prototype.dispose=function(e,a){this.remove(e,a)},t.type="lines",t}(ee);const Gc=Bc;var Oc=typeof Uint32Array>"u"?Array:Uint32Array,Fc=typeof Float64Array>"u"?Array:Float64Array;function Un(r){var t=r.data;t&&t[0]&&t[0][0]&&t[0][0].coord&&(r.data=J(t,function(e){var a=[e[0].coord,e[1].coord],n={coords:a};return e[0].name&&(n.fromName=e[0].name),e[1].name&&(n.toName=e[1].name),vl([n,e[0],e[1]])}))}var Hc=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.visualStyleAccessPath="lineStyle",e.visualDrawType="stroke",e}return t.prototype.init=function(e){e.data=e.data||[],Un(e);var a=this._processFlatCoordsArray(e.data);this._flatCoords=a.flatCoords,this._flatCoordsOffset=a.flatCoordsOffset,a.flatCoords&&(e.data=new Float32Array(a.count)),r.prototype.init.apply(this,arguments)},t.prototype.mergeOption=function(e){if(Un(e),e.data){var a=this._processFlatCoordsArray(e.data);this._flatCoords=a.flatCoords,this._flatCoordsOffset=a.flatCoordsOffset,a.flatCoords&&(e.data=new Float32Array(a.count))}r.prototype.mergeOption.apply(this,arguments)},t.prototype.appendData=function(e){var a=this._processFlatCoordsArray(e.data);a.flatCoords&&(this._flatCoords?(this._flatCoords=Qa(this._flatCoords,a.flatCoords),this._flatCoordsOffset=Qa(this._flatCoordsOffset,a.flatCoordsOffset)):(this._flatCoords=a.flatCoords,this._flatCoordsOffset=a.flatCoordsOffset),e.data=new Float32Array(a.count)),this.getRawData().appendData(e.data)},t.prototype._getCoordsFromItemModel=function(e){var a=this.getData().getItemModel(e),n=a.option instanceof Array?a.option:a.getShallow("coords");return n},t.prototype.getLineCoordsCount=function(e){return this._flatCoordsOffset?this._flatCoordsOffset[e*2+1]:this._getCoordsFromItemModel(e).length},t.prototype.getLineCoords=function(e,a){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[e*2],i=this._flatCoordsOffset[e*2+1],o=0;o ")})},t.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},t.prototype.getProgressive=function(){var e=this.option.progressive;return e??(this.option.large?1e4:this.get("progressive"))},t.prototype.getProgressiveThreshold=function(){var e=this.option.progressiveThreshold;return e??(this.option.large?2e4:this.get("progressiveThreshold"))},t.prototype.getZLevelKey=function(){var e=this.getModel("effect"),a=e.get("trailLength");return this.getData().count()>this.getProgressiveThreshold()?this.id:e.get("show")&&a>0?a+"":""},t.type="series.lines",t.dependencies=["grid","polar","geo","calendar"],t.defaultOption={coordinateSystem:"geo",z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},t}(ne);const $c=Hc;function Yt(r){return r instanceof Array||(r=[r,r]),r}var Wc={seriesType:"lines",reset:function(r){var t=Yt(r.get("symbol")),e=Yt(r.get("symbolSize")),a=r.getData();a.setVisual("fromSymbol",t&&t[0]),a.setVisual("toSymbol",t&&t[1]),a.setVisual("fromSymbolSize",e&&e[0]),a.setVisual("toSymbolSize",e&&e[1]);function n(i,o){var l=i.getItemModel(o),s=Yt(l.getShallow("symbol",!0)),u=Yt(l.getShallow("symbolSize",!0));s[0]&&i.setItemVisual(o,"fromSymbol",s[0]),s[1]&&i.setItemVisual(o,"toSymbol",s[1]),u[0]&&i.setItemVisual(o,"fromSymbolSize",u[0]),u[1]&&i.setItemVisual(o,"toSymbolSize",u[1])}return{dataEach:a.hasItemOption?n:null}}};const Uc=Wc;function Lp(r){r.registerChartView(Gc),r.registerSeriesModel($c),r.registerLayout(Po),r.registerVisual(Uc)}var Zc=256,Xc=function(){function r(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=Hr.createCanvas();this.canvas=t}return r.prototype.update=function(t,e,a,n,i,o){var l=this._getBrush(),s=this._getGradient(i,"inRange"),u=this._getGradient(i,"outOfRange"),v=this.pointSize+this.blurSize,h=this.canvas,c=h.getContext("2d"),f=t.length;h.width=e,h.height=a;for(var g=0;g0){var I=o(S)?s:u;S>0&&(S=S*L+x),D[w++]=I[A],D[w++]=I[A+1],D[w++]=I[A+2],D[w++]=I[A+3]*S*256}else w+=4}return c.putImageData(b,0,0),h},r.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=Hr.createCanvas()),e=this.pointSize+this.blurSize,a=e*2;t.width=a,t.height=a;var n=t.getContext("2d");return n.clearRect(0,0,a,a),n.shadowOffsetX=a,n.shadowBlur=this.blurSize,n.shadowColor="#000",n.beginPath(),n.arc(-e,e,this.pointSize,0,Math.PI*2,!0),n.closePath(),n.fill(),t},r.prototype._getGradient=function(t,e){for(var a=this._gradientPixels,n=a[e]||(a[e]=new Uint8ClampedArray(256*4)),i=[0,0,0,0],o=0,l=0;l<256;l++)t[e](l/255,!0,i),n[o++]=i[0],n[o++]=i[1],n[o++]=i[2],n[o++]=i[3];return n},r}();const Yc=Xc;function qc(r,t,e){var a=r[1]-r[0];t=J(t,function(o){return{interval:[(o.interval[0]-r[0])/a,(o.interval[1]-r[0])/a]}});var n=t.length,i=0;return function(o){var l;for(l=i;l=0;l--){var s=t[l].interval;if(s[0]<=o&&o<=s[1]){i=l;break}}return l>=0&&l=t[0]&&a<=t[1]}}function Zn(r){var t=r.dimensions;return t[0]==="lng"&&t[1]==="lat"}var Kc=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,a,n){var i;a.eachComponent("visualMap",function(l){l.eachTargetSeries(function(s){s===e&&(i=l)})}),this._progressiveEls=null,this.group.removeAll();var o=e.coordinateSystem;o.type==="cartesian2d"||o.type==="calendar"?this._renderOnCartesianAndCalendar(e,n,0,e.getData().count()):Zn(o)&&this._renderOnGeo(o,e,i,n)},t.prototype.incrementalPrepareRender=function(e,a,n){this.group.removeAll()},t.prototype.incrementalRender=function(e,a,n,i){var o=a.coordinateSystem;o&&(Zn(o)?this.render(a,n,i):(this._progressiveEls=[],this._renderOnCartesianAndCalendar(a,i,e.start,e.end,!0)))},t.prototype.eachRendered=function(e){va(this._progressiveEls||this.group,e)},t.prototype._renderOnCartesianAndCalendar=function(e,a,n,i,o){var l=e.coordinateSystem,s=ya(l,"cartesian2d"),u,v,h,c;if(s){var f=l.getAxis("x"),g=l.getAxis("y");u=f.getBandWidth()+.5,v=g.getBandWidth()+.5,h=f.scale.getExtent(),c=g.scale.getExtent()}for(var p=this.group,d=e.getData(),m=e.getModel(["emphasis","itemStyle"]).getItemStyle(),y=e.getModel(["blur","itemStyle"]).getItemStyle(),S=e.getModel(["select","itemStyle"]).getItemStyle(),b=e.get(["itemStyle","borderRadius"]),D=we(e),w=e.getModel("emphasis"),_=w.get("focus"),x=w.get("blurScope"),T=w.get("disabled"),L=s?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],A=n;Ah[1]||Pc[1])continue;var E=l.dataToPoint([C,P]);I=new Le({shape:{x:E[0]-u/2,y:E[1]-v/2,width:u,height:v},style:N})}else{if(isNaN(d.get(L[1],A)))continue;I=new Le({z2:1,shape:l.dataToRect([d.get(L[0],A)]).contentShape,style:N})}if(d.hasItemOption){var R=d.getItemModel(A),M=R.getModel("emphasis");m=M.getModel("itemStyle").getItemStyle(),y=R.getModel(["blur","itemStyle"]).getItemStyle(),S=R.getModel(["select","itemStyle"]).getItemStyle(),b=R.get(["itemStyle","borderRadius"]),_=M.get("focus"),x=M.get("blurScope"),T=M.get("disabled"),D=we(R)}I.shape.r=b;var V=e.getRawValue(A),G="-";V&&V[2]!=null&&(G=V[2]+""),Te(I,D,{labelFetcher:e,labelDataIndex:A,defaultOpacity:N.opacity,defaultText:G}),I.ensureState("emphasis").style=m,I.ensureState("blur").style=y,I.ensureState("select").style=S,se(I,_,x,T),I.incremental=o,o&&(I.states.emphasis.hoverLayer=!0),p.add(I),d.setItemGraphicEl(A,I),this._progressiveEls&&this._progressiveEls.push(I)}},t.prototype._renderOnGeo=function(e,a,n,i){var o=n.targetVisuals.inRange,l=n.targetVisuals.outOfRange,s=a.getData(),u=this._hmLayer||this._hmLayer||new Yc;u.blurSize=a.get("blurSize"),u.pointSize=a.get("pointSize"),u.minOpacity=a.get("minOpacity"),u.maxOpacity=a.get("maxOpacity");var v=e.getViewRect().clone(),h=e.getRoamTransform();v.applyTransform(h);var c=Math.max(v.x,0),f=Math.max(v.y,0),g=Math.min(v.width+v.x,i.getWidth()),p=Math.min(v.height+v.y,i.getHeight()),d=g-c,m=p-f,y=[s.mapDimension("lng"),s.mapDimension("lat"),s.mapDimension("value")],S=s.mapArray(y,function(_,x,T){var L=e.dataToPoint([_,x]);return L[0]-=c,L[1]-=f,L.push(T),L}),b=n.getExtent(),D=n.type==="visualMap.continuous"?jc(b,n.option.range):qc(b,n.getPieceList(),n.option.selected);u.update(S,d,m,o.color.getNormalizer(),{inRange:o.color.getColorMapper(),outOfRange:l.color.getColorMapper()},D);var w=new Rt({style:{width:d,height:m,x:c,y:f,image:u.canvas},silent:!0});this.group.add(w)},t.type="heatmap",t}(ee);const Qc=Kc;var Jc=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.getInitialData=function(e,a){return He(null,this,{generateCoord:"value"})},t.prototype.preventIncremental=function(){var e=xi.get(this.get("coordinateSystem"));if(e&&e.dimensions)return e.dimensions[0]==="lng"&&e.dimensions[1]==="lat"},t.type="series.heatmap",t.dependencies=["grid","geo","calendar"],t.defaultOption={coordinateSystem:"cartesian2d",z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:"#212121"}}},t}(ne);const ef=Jc;function Tp(r){r.registerChartView(Qc),r.registerSeriesModel(ef)}var tf=["itemStyle","borderWidth"],Xn=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],Za=new Di,af=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,a,n){var i=this.group,o=e.getData(),l=this._data,s=e.coordinateSystem,u=s.getBaseAxis(),v=u.isHorizontal(),h=s.master.getRect(),c={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:e,coordSys:s,coordSysExtent:[[h.x,h.x+h.width],[h.y,h.y+h.height]],isHorizontal:v,valueDim:Xn[+v],categoryDim:Xn[1-+v]};return o.diff(l).add(function(f){if(o.hasValue(f)){var g=qn(o,f),p=Yn(o,f,g,c),d=jn(o,c,p);o.setItemGraphicEl(f,d),i.add(d),Qn(d,c,p)}}).update(function(f,g){var p=l.getItemGraphicEl(g);if(!o.hasValue(f)){i.remove(p);return}var d=qn(o,f),m=Yn(o,f,d,c),y=ko(o,m);p&&y!==p.__pictorialShapeStr&&(i.remove(p),o.setItemGraphicEl(f,null),p=null),p?vf(p,c,m):p=jn(o,c,m,!0),o.setItemGraphicEl(f,p),p.__pictorialSymbolMeta=m,i.add(p),Qn(p,c,m)}).remove(function(f){var g=l.getItemGraphicEl(f);g&&Kn(l,f,g.__pictorialSymbolMeta.animationModel,g)}).execute(),this._data=o,this.group},t.prototype.remove=function(e,a){var n=this.group,i=this._data;e.get("animation")?i&&i.eachItemGraphicEl(function(o){Kn(i,le(o).dataIndex,e,o)}):n.removeAll()},t.type="pictorialBar",t}(ee);function Yn(r,t,e,a){var n=r.getItemLayout(t),i=e.get("symbolRepeat"),o=e.get("symbolClip"),l=e.get("symbolPosition")||"start",s=e.get("symbolRotate"),u=(s||0)*Math.PI/180||0,v=e.get("symbolPatternSize")||2,h=e.isAnimationEnabled(),c={dataIndex:t,layout:n,itemModel:e,symbolType:r.getItemVisual(t,"symbol")||"circle",style:r.getItemVisual(t,"style"),symbolClip:o,symbolRepeat:i,symbolRepeatDirection:e.get("symbolRepeatDirection"),symbolPatternSize:v,rotation:u,animationModel:h?e:null,hoverScale:h&&e.get(["emphasis","scale"]),z2:e.getShallow("z",!0)||0};rf(e,i,n,a,c),nf(r,t,n,i,o,c.boundingLength,c.pxSign,v,a,c),of(e,c.symbolScale,u,a,c);var f=c.symbolSize,g=Ti(e.get("symbolOffset"),f);return lf(e,f,n,i,o,g,l,c.valueLineWidth,c.boundingLength,c.repeatCutLength,a,c),c}function rf(r,t,e,a,n){var i=a.valueDim,o=r.get("symbolBoundingData"),l=a.coordSys.getOtherAxis(a.coordSys.getBaseAxis()),s=l.toGlobalCoord(l.dataToCoord(0)),u=1-+(e[i.wh]<=0),v;if(Y(o)){var h=[Xa(l,o[0])-s,Xa(l,o[1])-s];h[1]0?1:-1}function Xa(r,t){return r.toGlobalCoord(r.dataToCoord(r.scale.parse(t)))}function nf(r,t,e,a,n,i,o,l,s,u){var v=s.valueDim,h=s.categoryDim,c=Math.abs(e[h.wh]),f=r.getItemVisual(t,"symbolSize"),g;Y(f)?g=f.slice():f==null?g=["100%","100%"]:g=[f,f],g[h.index]=O(g[h.index],c),g[v.index]=O(g[v.index],a?c:Math.abs(i)),u.symbolSize=g;var p=u.symbolScale=[g[0]/l,g[1]/l];p[v.index]*=(s.isHorizontal?-1:1)*o}function of(r,t,e,a,n){var i=r.get(tf)||0;i&&(Za.attr({scaleX:t[0],scaleY:t[1],rotation:e}),Za.updateTransform(),i/=Za.getLineScale(),i*=t[a.valueDim.index]),n.valueLineWidth=i||0}function lf(r,t,e,a,n,i,o,l,s,u,v,h){var c=v.categoryDim,f=v.valueDim,g=h.pxSign,p=Math.max(t[f.index]+l,0),d=p;if(a){var m=Math.abs(s),y=Lt(r.get("symbolMargin"),"15%")+"",S=!1;y.lastIndexOf("!")===y.length-1&&(S=!0,y=y.slice(0,y.length-1));var b=O(y,t[f.index]),D=Math.max(p+b*2,0),w=S?0:b*2,_=Cl(a),x=_?a:Jn((m+w)/D),T=m-x*p;b=T/2/(S?x:Math.max(x-1,1)),D=p+b*2,w=S?0:b*2,!_&&a!=="fixed"&&(x=u?Jn((Math.abs(u)+w)/D):0),d=x*D-w,h.repeatTimes=x,h.symbolMargin=b}var L=g*(d/2),A=h.pathPosition=[];A[c.index]=e[c.wh]/2,A[f.index]=o==="start"?L:o==="end"?s-L:s/2,i&&(A[0]+=i[0],A[1]+=i[1]);var I=h.bundlePosition=[];I[c.index]=e[c.xy],I[f.index]=e[f.xy];var N=h.barRectShape=U({},e);N[f.wh]=g*Math.max(Math.abs(e[f.wh]),Math.abs(A[f.index]+L)),N[c.wh]=e[c.wh];var C=h.clipShape={};C[c.xy]=-e[c.xy],C[c.wh]=v.ecSize[c.wh],C[f.xy]=0,C[f.wh]=e[f.wh]}function No(r){var t=r.symbolPatternSize,e=Ve(r.symbolType,-t/2,-t/2,t,t);return e.attr({culling:!0}),e.type!=="image"&&e.setStyle({strokeNoScale:!0}),e}function Eo(r,t,e,a){var n=r.__pictorialBundle,i=e.symbolSize,o=e.valueLineWidth,l=e.pathPosition,s=t.valueDim,u=e.repeatTimes||0,v=0,h=i[t.valueDim.index]+o+e.symbolMargin*2;for(Tr(r,function(p){p.__pictorialAnimationIndex=v,p.__pictorialRepeatTimes=u,v0:m<0)&&(y=u-1-p),d[s.index]=h*(y-u/2+.5)+l[s.index],{x:d[0],y:d[1],scaleX:e.symbolScale[0],scaleY:e.symbolScale[1],rotation:e.rotation}}}function Mo(r,t,e,a){var n=r.__pictorialBundle,i=r.__pictorialMainPath;i?ht(i,null,{x:e.pathPosition[0],y:e.pathPosition[1],scaleX:e.symbolScale[0],scaleY:e.symbolScale[1],rotation:e.rotation},e,a):(i=r.__pictorialMainPath=No(e),n.add(i),ht(i,{x:e.pathPosition[0],y:e.pathPosition[1],scaleX:0,scaleY:0,rotation:e.rotation},{scaleX:e.symbolScale[0],scaleY:e.symbolScale[1]},e,a))}function Ro(r,t,e){var a=U({},t.barRectShape),n=r.__pictorialBarRect;n?ht(n,null,{shape:a},t,e):(n=r.__pictorialBarRect=new Le({z2:2,shape:a,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),n.disableMorphing=!0,r.add(n))}function Vo(r,t,e,a){if(e.symbolClip){var n=r.__pictorialClipPath,i=U({},e.clipShape),o=t.valueDim,l=e.animationModel,s=e.dataIndex;if(n)K(n,{shape:i},l,s);else{i[o.wh]=0,n=new Le({shape:i}),r.__pictorialBundle.setClipPath(n),r.__pictorialClipPath=n;var u={};u[o.wh]=e.clipShape[o.wh],ca[a?"updateProps":"initProps"](n,{shape:u},l,s)}}}function qn(r,t){var e=r.getItemModel(t);return e.getAnimationDelayParams=sf,e.isAnimationEnabled=uf,e}function sf(r){return{index:r.__pictorialAnimationIndex,count:r.__pictorialRepeatTimes}}function uf(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function jn(r,t,e,a){var n=new ae,i=new ae;return n.add(i),n.__pictorialBundle=i,i.x=e.bundlePosition[0],i.y=e.bundlePosition[1],e.symbolRepeat?Eo(n,t,e):Mo(n,t,e),Ro(n,e,a),Vo(n,t,e,a),n.__pictorialShapeStr=ko(r,e),n.__pictorialSymbolMeta=e,n}function vf(r,t,e){var a=e.animationModel,n=e.dataIndex,i=r.__pictorialBundle;K(i,{x:e.bundlePosition[0],y:e.bundlePosition[1]},a,n),e.symbolRepeat?Eo(r,t,e,!0):Mo(r,t,e,!0),Ro(r,e,!0),Vo(r,t,e,!0)}function Kn(r,t,e,a){var n=a.__pictorialBarRect;n&&n.removeTextContent();var i=[];Tr(a,function(o){i.push(o)}),a.__pictorialMainPath&&i.push(a.__pictorialMainPath),a.__pictorialClipPath&&(e=null),k(i,function(o){Jt(o,{scaleX:0,scaleY:0},e,t,function(){a.parent&&a.parent.remove(a)})}),r.setItemGraphicEl(t,null)}function ko(r,t){return[r.getItemVisual(t.dataIndex,"symbol")||"none",!!t.symbolRepeat,!!t.symbolClip].join(":")}function Tr(r,t,e){k(r.__pictorialBundle.children(),function(a){a!==r.__pictorialBarRect&&t.call(e,a)})}function ht(r,t,e,a,n,i){t&&r.attr(t),a.symbolClip&&!n?e&&r.attr(e):e&&ca[n?"updateProps":"initProps"](r,e,a.animationModel,a.dataIndex,i)}function Qn(r,t,e){var a=e.dataIndex,n=e.itemModel,i=n.getModel("emphasis"),o=i.getModel("itemStyle").getItemStyle(),l=n.getModel(["blur","itemStyle"]).getItemStyle(),s=n.getModel(["select","itemStyle"]).getItemStyle(),u=n.getShallow("cursor"),v=i.get("focus"),h=i.get("blurScope"),c=i.get("scale");Tr(r,function(p){if(p instanceof Rt){var d=p.style;p.useStyle(U({image:d.image,x:d.x,y:d.y,width:d.width,height:d.height},e.style))}else p.useStyle(e.style);var m=p.ensureState("emphasis");m.style=o,c&&(m.scaleX=p.scaleX*1.1,m.scaleY=p.scaleY*1.1),p.ensureState("blur").style=l,p.ensureState("select").style=s,u&&(p.cursor=u),p.z2=e.z2});var f=t.valueDim.posDesc[+(e.boundingLength>0)],g=r.__pictorialBarRect;Te(g,we(n),{labelFetcher:t.seriesModel,labelDataIndex:a,defaultText:Ct(t.seriesModel.getData(),a),inheritColor:e.style.fill,defaultOpacity:e.style.opacity,defaultOutsidePosition:f}),se(r,v,h,i.get("disabled"))}function Jn(r){var t=Math.round(r);return Math.abs(r-t)<1e-4?t:Math.ceil(r)}const hf=af;var cf=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.hasSymbolVisual=!0,e.defaultSymbol="roundRect",e}return t.prototype.getInitialData=function(e){return e.stack=null,r.prototype.getInitialData.apply(this,arguments)},t.type="series.pictorialBar",t.dependencies=["grid"],t.defaultOption=di(ta.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),t}(ta);const ff=cf;function Cp(r){r.registerChartView(hf),r.registerSeriesModel(ff),r.registerLayout(r.PRIORITY.VISUAL.LAYOUT,ye(mi,"pictorialBar")),r.registerLayout(r.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Si("pictorialBar"))}var pf=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e._layers=[],e}return t.prototype.render=function(e,a,n){var i=e.getData(),o=this,l=this.group,s=e.getLayerSeries(),u=i.getLayout("layoutInfo"),v=u.rect,h=u.boundaryGap;l.x=0,l.y=v.y+h[0];function c(d){return d.name}var f=new pa(this._layersSeries||[],s,c,c),g=[];f.add(ue(p,this,"add")).update(ue(p,this,"update")).remove(ue(p,this,"remove")).execute();function p(d,m,y){var S=o._layers;if(d==="remove"){l.remove(S[m]);return}for(var b=[],D=[],w,_=s[m].indices,x=0;x<_.length;x++){var T=i.getItemLayout(_[x]),L=T.x,A=T.y0,I=T.y;b.push(L,A),D.push(L,A+I),w=i.getItemVisual(_[x],"style")}var N,C=i.getItemLayout(_[0]),P=e.getModel("label"),E=P.get("margin"),R=e.getModel("emphasis");if(d==="add"){var M=g[m]=new ae;N=new Wi({shape:{points:b,stackedOnPoints:D,smooth:.4,stackedOnSmooth:.4,smoothConstraint:!1},z2:0}),M.add(N),l.add(M),e.isAnimationEnabled()&&N.setClipPath(gf(N.getBoundingRect(),e,function(){N.removeClipPath()}))}else{var M=S[y];N=M.childAt(0),l.add(M),g[m]=M,K(N,{shape:{points:b,stackedOnPoints:D}},e),ke(N)}Te(N,we(e),{labelDataIndex:_[x-1],defaultText:i.getName(_[x-1]),inheritColor:w.fill},{normal:{verticalAlign:"middle"}}),N.setTextConfig({position:null,local:!0});var V=N.getTextContent();V&&(V.x=C.x-E,V.y=C.y0+C.y/2),N.useStyle(w),i.setItemGraphicEl(m,N),ge(N,e),se(N,R.get("focus"),R.get("blurScope"),R.get("disabled"))}this._layersSeries=s,this._layers=g},t.type="themeRiver",t}(ee);function gf(r,t,e){var a=new Le({shape:{x:r.x-10,y:r.y-10,width:0,height:r.height+20}});return oe(a,{shape:{x:r.x-50,width:r.width+100,height:r.height+20}},t,e),a}const df=pf;var Ya=2,yf=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.init=function(e){r.prototype.init.apply(this,arguments),this.legendVisualProvider=new Gt(ue(this.getData,this),ue(this.getRawData,this))},t.prototype.fixData=function(e){var a=e.length,n={},i=ar(e,function(c){return n.hasOwnProperty(c[0]+"")||(n[c[0]+""]=-1),c[2]}),o=[];i.buckets.each(function(c,f){o.push({name:f,dataList:c})});for(var l=o.length,s=0;si&&(i=l),a.push(l)}for(var u=0;ui&&(i=h)}return{y0:n,max:i}}function Pp(r){r.registerChartView(df),r.registerSeriesModel(mf),r.registerLayout(Sf),r.registerProcessor(Bt("themeRiver"))}var wf=2,Df=4,_f=function(r){z(t,r);function t(e,a,n,i){var o=r.call(this)||this;o.z2=wf,o.textConfig={inside:!0},le(o).seriesIndex=a.seriesIndex;var l=new Ee({z2:Df,silent:e.getModel().get(["label","silent"])});return o.setTextContent(l),o.updateData(!0,e,a,n,i),o}return t.prototype.updateData=function(e,a,n,i,o){this.node=a,a.piece=this,n=n||this._seriesModel,i=i||this._ecModel;var l=this;le(l).dataIndex=a.dataIndex;var s=a.getModel(),u=s.getModel("emphasis"),v=a.getLayout(),h=U({},v);h.label=null;var c=a.getVisual("style");c.lineJoin="bevel";var f=a.getVisual("decal");f&&(c.decal=Ci(f,o));var g=nt(s.getModel("itemStyle"),h,!0);U(h,g),k(Tt,function(y){var S=l.ensureState(y),b=s.getModel([y,"itemStyle"]);S.style=b.getItemStyle();var D=nt(b,h);D&&(S.shape=D)}),e?(l.setShape(h),l.shape.r=v.r0,oe(l,{shape:{r:v.r}},n,a.dataIndex)):(K(l,{shape:h},n),ke(l)),l.useStyle(c),this._updateLabel(n);var p=s.getShallow("cursor");p&&l.attr("cursor",p),this._seriesModel=n||this._seriesModel,this._ecModel=i||this._ecModel;var d=u.get("focus"),m=d==="ancestor"?a.getAncestorsIndices():d==="descendant"?a.getDescendantIndices():d;se(this,m,u.get("blurScope"),u.get("disabled"))},t.prototype._updateLabel=function(e){var a=this,n=this.node.getModel(),i=n.getModel("label"),o=this.node.getLayout(),l=o.endAngle-o.startAngle,s=(o.startAngle+o.endAngle)/2,u=Math.cos(s),v=Math.sin(s),h=this,c=h.getTextContent(),f=this.node.dataIndex,g=i.get("minAngle")/180*Math.PI,p=i.get("show")&&!(g!=null&&Math.abs(l)Math.PI/2?"right":"left"):!I||I==="center"?(l===2*Math.PI&&o.r0===0?L=0:L=(o.r+o.r0)/2,I="center"):I==="left"?(L=o.r0+A,s>Math.PI/2&&(I="right")):I==="right"&&(L=o.r-A,s>Math.PI/2&&(I="left")),b.style.align=I,b.style.verticalAlign=d(y,"verticalAlign")||"middle",b.x=L*u+o.cx,b.y=L*v+o.cy;var N=d(y,"rotate"),C=0;N==="radial"?(C=hl(-s),C>Math.PI/2&&CMath.PI/2?C-=Math.PI:C<-Math.PI/2&&(C+=Math.PI)):Ie(N)&&(C=N*Math.PI/180),b.rotation=C});function d(m,y){var S=m.get(y);return S??i.get(y)}c.dirtyStyle()},t}(Ke);const ti=_f;var ur="sunburstRootToNode",ai="sunburstHighlight",xf="sunburstUnhighlight";function Af(r){r.registerAction({type:ur,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},a);function a(n,i){var o=Pt(t,[ur],n);if(o){var l=n.getViewRoot();l&&(t.direction=_r(l,o.node)?"rollUp":"drillDown"),n.resetViewRoot(o.node)}}}),r.registerAction({type:ai,update:"none"},function(t,e,a){t=U({},t),e.eachComponent({mainType:"series",subType:"sunburst",query:t},n);function n(i){var o=Pt(t,[ai],i);o&&(t.dataIndex=o.node.dataIndex)}a.dispatchAction(U(t,{type:"highlight"}))}),r.registerAction({type:xf,update:"updateView"},function(t,e,a){t=U({},t),a.dispatchAction(U(t,{type:"downplay"}))})}var If=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,a,n,i){var o=this;this.seriesModel=e,this.api=n,this.ecModel=a;var l=e.getData(),s=l.tree.root,u=e.getViewRoot(),v=this.group,h=e.get("renderLabelForZeroData"),c=[];u.eachNode(function(y){c.push(y)});var f=this._oldChildren||[];g(c,f),m(s,u),this._initEvents(),this._oldChildren=c;function g(y,S){if(y.length===0&&S.length===0)return;new pa(S,y,b,b).add(D).update(D).remove(ye(D,null)).execute();function b(w){return w.getId()}function D(w,_){var x=w==null?null:y[w],T=_==null?null:S[_];p(x,T)}}function p(y,S){if(!h&&y&&!y.getValue()&&(y=null),y!==s&&S!==s){if(S&&S.piece)y?(S.piece.updateData(!1,y,e,a,n),l.setItemGraphicEl(y.dataIndex,S.piece)):d(S);else if(y){var b=new ti(y,e,a,n);v.add(b),l.setItemGraphicEl(y.dataIndex,b)}}}function d(y){y&&y.piece&&(v.remove(y.piece),y.piece=null)}function m(y,S){S.depth>0?(o.virtualPiece?o.virtualPiece.updateData(!1,y,e,a,n):(o.virtualPiece=new ti(y,e,a,n),v.add(o.virtualPiece)),S.piece.off("click"),o.virtualPiece.on("click",function(b){o._rootToNode(S.parentNode)})):o.virtualPiece&&(v.remove(o.virtualPiece),o.virtualPiece=null)}},t.prototype._initEvents=function(){var e=this;this.group.off("click"),this.group.on("click",function(a){var n=!1,i=e.seriesModel.getViewRoot();i.eachNode(function(o){if(!n&&o.piece&&o.piece===a.target){var l=o.getModel().get("nodeClick");if(l==="rootToNode")e._rootToNode(o);else if(l==="link"){var s=o.getModel(),u=s.get("link");if(u){var v=s.get("target",!0)||"_blank";_i(u,v)}}n=!0}})})},t.prototype._rootToNode=function(e){e!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:ur,from:this.uid,seriesId:this.seriesModel.id,targetNode:e})},t.prototype.containPoint=function(e,a){var n=a.getData(),i=n.getItemLayout(0);if(i){var o=e[0]-i.cx,l=e[1]-i.cy,s=Math.sqrt(o*o+l*l);return s<=i.r&&s>=i.r0}},t.type="sunburst",t}(ee);const Lf=If;var Tf=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e.ignoreStyleOnData=!0,e}return t.prototype.getInitialData=function(e,a){var n={name:e.name,children:e.data};zo(n);var i=this._levelModels=J(e.levels||[],function(s){return new lt(s,this,a)},this),o=Dr.createTree(n,this,l);function l(s){s.wrapMethod("getItemModel",function(u,v){var h=o.getNodeByDataIndex(v),c=i[h.depth];return c&&(u.parentModel=c),u})}return o.data},t.prototype.optionUpdated=function(){this.resetViewRoot()},t.prototype.getDataParams=function(e){var a=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(e);return a.treePathInfo=Sa(n,this),a},t.prototype.getLevelModel=function(e){return this._levelModels&&this._levelModels[e.depth]},t.prototype.getViewRoot=function(){return this._viewRoot},t.prototype.resetViewRoot=function(e){e?this._viewRoot=e:e=this._viewRoot;var a=this.getRawData().tree.root;(!e||e!==a&&!a.contains(e))&&(this._viewRoot=a)},t.prototype.enableAriaDecal=function(){oo(this)},t.type="series.sunburst",t.defaultOption={z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],sort:"desc"},t}(ne);function zo(r){var t=0;k(r.children,function(a){zo(a);var n=a.value;Y(n)&&(n=n[0]),t+=n});var e=r.value;Y(e)&&(e=e[0]),(e==null||isNaN(e))&&(e=t),e<0&&(e=0),Y(r.value)?r.value[0]=e:r.value=e}const Cf=Tf;var ri=Math.PI/180;function Pf(r,t,e){t.eachSeriesByType(r,function(a){var n=a.get("center"),i=a.get("radius");Y(i)||(i=[0,i]),Y(n)||(n=[n,n]);var o=e.getWidth(),l=e.getHeight(),s=Math.min(o,l),u=O(n[0],o),v=O(n[1],l),h=O(i[0],s/2),c=O(i[1],s/2),f=-a.get("startAngle")*ri,g=a.get("minAngle")*ri,p=a.getData().tree.root,d=a.getViewRoot(),m=d.depth,y=a.get("sort");y!=null&&Bo(d,y);var S=0;k(d.children,function(E){!isNaN(E.getValue())&&S++});var b=d.getValue(),D=Math.PI/(b||S)*2,w=d.depth>0,_=d.height-(w?-1:1),x=(c-h)/(_||1),T=a.get("clockwise"),L=a.get("stillShowZeroSum"),A=T?1:-1,I=function(E,R){if(E){var M=R;if(E!==p){var V=E.getValue(),G=b===0&&L?D:V*D;G1;)o=o.parentNode;var l=n.getColorFromPalette(o.name||o.dataIndex+"",t);return a.depth>1&&Re(l)&&(l=cl(l,(a.depth-1)/(i-1)*.5)),l}r.eachSeriesByType("sunburst",function(a){var n=a.getData(),i=n.tree;i.eachNode(function(o){var l=o.getModel(),s=l.getModel("itemStyle").getItemStyle();s.fill||(s.fill=e(o,a,i.root.height));var u=n.ensureUniqueItemVisual(o.dataIndex,"style");U(u,s)})})}function Np(r){r.registerChartView(Lf),r.registerSeriesModel(Cf),r.registerLayout(ye(Pf,"sunburst")),r.registerProcessor(ye(Bt,"sunburst")),r.registerVisual(Ef),Af(r)}var ni={color:"fill",borderColor:"stroke"},Mf={symbol:1,symbolSize:1,symbolKeepAspect:1,legendIcon:1,visualMeta:1,liftZ:1,decal:1},Oe=Vt(),Rf=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},t.prototype.getInitialData=function(e,a){return He(null,this)},t.prototype.getDataParams=function(e,a,n){var i=r.prototype.getDataParams.call(this,e,a);return n&&(i.info=Oe(n).info),i},t.type="series.custom",t.dependencies=["grid","polar","geo","singleAxis","calendar"],t.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,clip:!1},t}(ne);const Vf=Rf;function kf(r,t){return t=t||[0,0],J(["x","y"],function(e,a){var n=this.getAxis(e),i=t[a],o=r[a]/2;return n.type==="category"?n.getBandWidth():Math.abs(n.dataToCoord(i-o)-n.dataToCoord(i+o))},this)}function zf(r){var t=r.master.getRect();return{coordSys:{type:"cartesian2d",x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:function(e){return r.dataToPoint(e)},size:ue(kf,r)}}}function Bf(r,t){return t=t||[0,0],J([0,1],function(e){var a=t[e],n=r[e]/2,i=[],o=[];return i[e]=a-n,o[e]=a+n,i[1-e]=o[1-e]=t[1-e],Math.abs(this.dataToPoint(i)[e]-this.dataToPoint(o)[e])},this)}function Gf(r){var t=r.getBoundingRect();return{coordSys:{type:"geo",x:t.x,y:t.y,width:t.width,height:t.height,zoom:r.getZoom()},api:{coord:function(e){return r.dataToPoint(e)},size:ue(Bf,r)}}}function Of(r,t){var e=this.getAxis(),a=t instanceof Array?t[0]:t,n=(r instanceof Array?r[0]:r)/2;return e.type==="category"?e.getBandWidth():Math.abs(e.dataToCoord(a-n)-e.dataToCoord(a+n))}function Ff(r){var t=r.getRect();return{coordSys:{type:"singleAxis",x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:function(e){return r.dataToPoint(e)},size:ue(Of,r)}}}function Hf(r,t){return t=t||[0,0],J(["Radius","Angle"],function(e,a){var n="get"+e+"Axis",i=this[n](),o=t[a],l=r[a]/2,s=i.type==="category"?i.getBandWidth():Math.abs(i.dataToCoord(o-l)-i.dataToCoord(o+l));return e==="Angle"&&(s=s*Math.PI/180),s},this)}function $f(r){var t=r.getRadiusAxis(),e=r.getAngleAxis(),a=t.getExtent();return a[0]>a[1]&&a.reverse(),{coordSys:{type:"polar",cx:r.cx,cy:r.cy,r:a[1],r0:a[0]},api:{coord:function(n){var i=t.dataToRadius(n[0]),o=e.dataToAngle(n[1]),l=r.coordToPoint([i,o]);return l.push(i,o*Math.PI/180),l},size:ue(Hf,r)}}}function Wf(r){var t=r.getRect(),e=r.getRangeInfo();return{coordSys:{type:"calendar",x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:r.getCellWidth(),cellHeight:r.getCellHeight(),rangeInfo:{start:e.start,end:e.end,weeks:e.weeks,dayCount:e.allDay}},api:{coord:function(a,n){return r.dataToPoint(a,n)}}}}var Fe="emphasis",Ye="normal",Cr="blur",Pr="select",Je=[Ye,Fe,Cr,Pr],qa={normal:["itemStyle"],emphasis:[Fe,"itemStyle"],blur:[Cr,"itemStyle"],select:[Pr,"itemStyle"]},ja={normal:["label"],emphasis:[Fe,"label"],blur:[Cr,"label"],select:[Pr,"label"]},Uf=["x","y"],Zf="e\0\0",xe={normal:{},emphasis:{},blur:{},select:{}},Xf={cartesian2d:zf,geo:Gf,single:Ff,polar:$f,calendar:Wf};function vr(r){return r instanceof De}function hr(r){return r instanceof hi}function Yf(r,t){t.copyTransform(r),hr(t)&&hr(r)&&(t.setStyle(r.style),t.z=r.z,t.z2=r.z2,t.zlevel=r.zlevel,t.invisible=r.invisible,t.ignore=r.ignore,vr(t)&&vr(r)&&t.setShape(r.shape))}var qf=function(r){z(t,r);function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,a,n,i){this._progressiveEls=null;var o=this._data,l=e.getData(),s=this.group,u=ii(e,l,a,n);o||s.removeAll(),l.diff(o).add(function(h){Ka(n,null,h,u(h,i),e,s,l)}).remove(function(h){var c=o.getItemGraphicEl(h);c&&br(c,Oe(c).option,e)}).update(function(h,c){var f=o.getItemGraphicEl(c);Ka(n,f,h,u(h,i),e,s,l)}).execute();var v=e.get("clip",!0)?ma(e.coordinateSystem,!1,e):null;v?s.setClipPath(v):s.removeClipPath(),this._data=l},t.prototype.incrementalPrepareRender=function(e,a,n){this.group.removeAll(),this._data=null},t.prototype.incrementalRender=function(e,a,n,i,o){var l=a.getData(),s=ii(a,l,n,i),u=this._progressiveEls=[];function v(f){f.isGroup||(f.incremental=!0,f.ensureState("emphasis").hoverLayer=!0)}for(var h=e.start;h=0?t.getStore().get(R,P):void 0}var M=t.get(E.name,P),V=E&&E.ordinalMeta;return V?V.categories[M]:M}function w(C,P){P==null&&(P=u);var E=t.getItemVisual(P,"style"),R=E&&E.fill,M=E&&E.opacity,V=y(P,Ye).getItemStyle();R!=null&&(V.fill=R),M!=null&&(V.opacity=M);var G={inheritColor:Re(R)?R:"#000"},B=S(P,Ye),W=Be(B,null,G,!1,!0);W.text=B.getShallow("show")?It(r.getFormattedLabel(P,Ye),Ct(t,P)):null;var $=Kr(B,G,!1);return T(C,V),V=Qr(V,W,$),C&&x(V,C),V.legacy=!0,V}function _(C,P){P==null&&(P=u);var E=y(P,Fe).getItemStyle(),R=S(P,Fe),M=Be(R,null,null,!0,!0);M.text=R.getShallow("show")?Mt(r.getFormattedLabel(P,Fe),r.getFormattedLabel(P,Ye),Ct(t,P)):null;var V=Kr(R,null,!0);return T(C,E),E=Qr(E,M,V),C&&x(E,C),E.legacy=!0,E}function x(C,P){for(var E in P)Ge(P,E)&&(C[E]=P[E])}function T(C,P){C&&(C.textFill&&(P.textFill=C.textFill),C.textPosition&&(P.textPosition=C.textPosition))}function L(C,P){if(P==null&&(P=u),Ge(ni,C)){var E=t.getItemVisual(P,"style");return E?E[ni[C]]:null}if(Ge(Mf,C))return t.getItemVisual(P,C)}function A(C){if(i.type==="cartesian2d"){var P=i.getBaseAxis();return Nl(Me({axis:P},C))}}function I(){return e.getCurrentSeriesIndices()}function N(C){return El(C,e)}}function Jf(r){var t={};return k(r.dimensions,function(e){var a=r.getDimensionInfo(e);if(!a.isExtraCoord){var n=a.coordDim,i=t[n]=t[n]||[];i[a.coordDimIndex]=r.getDimensionIndex(e)}}),t}function Ka(r,t,e,a,n,i,o){if(!a){i.remove(t);return}var l=Mr(r,t,e,a,n,i);return l&&o.setItemGraphicEl(e,l),l&&se(l,a.focus,a.blurScope,a.emphasisDisabled),l}function Mr(r,t,e,a,n,i){var o=-1,l=t;t&&Oo(t,a,n)&&(o=ft(i.childrenRef(),t),t=null);var s=!t,u=t;u?u.clearStates():(u=Nr(a),l&&Yf(l,u)),a.morph===!1?u.disableMorphing=!0:u.disableMorphing&&(u.disableMorphing=!1),xe.normal.cfg=xe.normal.conOpt=xe.emphasis.cfg=xe.emphasis.conOpt=xe.blur.cfg=xe.blur.conOpt=xe.select.cfg=xe.select.conOpt=null,xe.isLegacy=!1,tp(u,e,a,n,s,xe),ep(u,e,a,n,s),Er(r,u,e,a,xe,n,s),Ge(a,"info")&&(Oe(u).info=a.info);for(var v=0;v=0?i.replaceAt(u,o):i.add(u),u}function Oo(r,t,e){var a=Oe(r),n=t.type,i=t.shape,o=t.style;return e.isUniversalTransitionEnabled()||n!=null&&n!==a.customGraphicType||n==="path"&&op(i)&&Fo(i)!==a.customPathData||n==="image"&&Ge(o,"image")&&o.image!==a.customImagePath}function ep(r,t,e,a,n){var i=e.clipPath;if(i===!1)r&&r.getClipPath()&&r.removeClipPath();else if(i){var o=r.getClipPath();o&&Oo(o,i,a)&&(o=null),o||(o=Nr(i),r.setClipPath(o)),Er(null,o,t,i,null,a,n)}}function tp(r,t,e,a,n,i){if(!r.isGroup){oi(e,null,i),oi(e,Fe,i);var o=i.normal.conOpt,l=i.emphasis.conOpt,s=i.blur.conOpt,u=i.select.conOpt;if(o!=null||l!=null||u!=null||s!=null){var v=r.getTextContent();if(o===!1)v&&r.removeTextContent();else{o=i.normal.conOpt=o||{type:"text"},v?v.clearStates():(v=Nr(o),r.setTextContent(v)),Er(null,v,t,o,null,a,n);for(var h=o&&o.style,c=0;c=v;f--){var g=t.childAt(f);rp(t,g,n)}}}function rp(r,t,e){t&&br(t,Oe(r).option,e)}function np(r){new pa(r.oldChildren,r.newChildren,li,li,r).add(si).update(si).remove(ip).execute()}function li(r,t){var e=r&&r.name;return e??Zf+t}function si(r,t){var e=this.context,a=r!=null?e.newChildren[r]:null,n=t!=null?e.oldChildren[t]:null;Mr(e.api,n,e.dataIndex,a,e.seriesModel,e.group)}function ip(r){var t=this.context,e=t.oldChildren[r];e&&br(e,Oe(e).option,t.seriesModel)}function Fo(r){return r&&(r.pathData||r.d)}function op(r){return r&&(Ge(r,"pathData")||Ge(r,"d"))}function Ep(r){r.registerChartView(jf),r.registerSeriesModel(Vf)}export{cp as BarChart,xp as BoxplotChart,Ap as CandlestickChart,Ep as CustomChart,Ip as EffectScatterChart,wp as FunnelChart,bp as GaugeChart,Sp as GraphChart,Tp as HeatmapChart,hp as LineChart,Lp as LinesChart,dp as MapChart,Dp as ParallelChart,Cp as PictorialBarChart,fp as PieChart,gp as RadarChart,_p as SankeyChart,pp as ScatterChart,Np as SunburstChart,Pp as ThemeRiverChart,yp as TreeChart,mp as TreemapChart}; diff --git a/templates/assets/dist/assets/charts-9b126745.js b/templates/assets/dist/assets/charts-9b126745.js deleted file mode 100644 index c6805df5..00000000 --- a/templates/assets/dist/assets/charts-9b126745.js +++ /dev/null @@ -1,17306 +0,0 @@ -import { a2 as PathProxy, ai as Point, O as retrieve2, f as defaults, G as dist, aD as lerp, _ as __extends, q as map, S as isNumber, aE as cubicRootAt, X as Path, af as cubicAt, R as Rect$1, n as isFunction, Z as ZRText, g as each$2, aF as lerp$1, p as isString, aw as calculateTextPosition, l as isArray, az as parsePercent, h as extend, d as curry, aG as retrieve3, b as bind, B as BoundingRect, aH as find, a as ZRImage, c as clone, V as createHashMap, aI as fromPoints, av as concatArray, U as assert, N as keys, j as indexOf, K as noop, aJ as translate, aK as scale, aL as create, as as normalizeCssArray, aj as Displayable, aM as modifyHSL, aN as modifyAlpha, aO as retrieve, i as filter, a5 as clone$1, ad as normalize$2, a7 as scale$1, aP as create$1, a6 as sub, aQ as len, aR as set, aS as copy, aT as scaleAndAdd$1, ab as quadraticSubdivide, ah as quadraticAt$1, aU as distSquare, m as mixin, aV as normalizeArcAngles, aA as eqNaN, o as isObject, aW as clone$2, ag as quadraticDerivativeAt, aX as containStroke, aY as containStroke$1, aZ as mergeAll, ax as platformApi, a_ as normalizeRadian, $ as lift, ap as hasOwn } from "./graphic-c958e8df.js"; -import { c as createSeriesData, p as prepareSeriesDataSchema } from "./createSeriesData-47a0bdc8.js"; -import { b3 as DISPLAY_STATES, N as Polyline$2, b4 as SPECIAL_STATES, I as Group$1, b as createSymbol, ad as SeriesModel, i as isDimensionStacked, b5 as createFloat32Array, Z as initProps, C as round, S as Sector, b6 as convertToColorString, b7 as setStatesStylesFromModel, f as getECData, b8 as toggleHoverEmphasis, b9 as queryDataIndex, ae as ChartView, ba as setStatesFlag, bb as setLabelStyle, bc as getLabelStatesModels, bd as interpolateRawValues, be as labelInner, a3 as updateProps, K as LinearGradient, bf as createRenderPlanner, bg as inheritDefaultOption, bh as traverseElements, bi as saveOldStyle, bj as removeElementWithFadeOut, bk as setLabelValueAnimation, aJ as throttle, bl as layout, bm as createProgressiveLayout, s as linearMap, h as getLayoutRect, bn as parsePercent$1, aI as SeriesData, bo as makeSeriesEncodeForNameBased, bp as getPercentSeats, bq as defaultEmphasis, br as makeInner, bs as createLegacyDataSelectAction, aK as use, P as Polygon, bt as graphic, bu as normalizeSymbolSize, bv as retrieveVisualColorForTooltipMarker, bw as createTooltipMarkup, G as Circle, bx as Z2_EMPHASIS_LIFT, by as HOVER_STATE_BLUR, F as BezierCurve, bz as setDefaultStateProxy, bA as removeElement, bB as convertOptionIdName, M as Model, bC as getDecalFromPalette, aT as normalizeToArray, bD as positionElement, bE as getAvailableSize, a as createTextStyle, bF as makeStyleMapper, bG as DataDiffer, bH as windowOpen, bI as isHighDownDispatcher, bJ as setAsHighDownDispatcher, bK as enableHoverFocus, j as MAX_SAFE_INTEGER, b1 as CoordinateSystem, bL as defaultSeriesFormatTooltip, L as Line, bM as setCommonECData, bN as animateLabelValue, u as numericToNumber, bO as enterEmphasis, bP as leaveEmphasis, bQ as groupData, b2 as getDimensionTypeByAxis, a$ as makeSeriesEncodeForAxisCoordSys, k as asc, w as quantile, bR as SOURCE_FORMAT_ARRAY_ROWS, bS as throwError, bT as subPixelOptimize, bU as normalizeSymbolOffset, q as isNumeric, aZ as SINGLE_REFERRING, bV as createOrUpdatePatternFromDecal, bW as createTextConfig, bX as getLayoutOnAxis, bY as getFont, $ as makePath, X as getShapeClass } from "./Axis-1d2b148d.js"; -import { S as SymbolDraw, a as SymbolClz, g as getDefaultInterpolatedLabel, b as getDefaultLabel, i as isCoordinateSystemType, s as shiftLayoutOnY, c as install$m, d as install$n, M as MapDraw, e as geoSourceManager, f as install$o, R as RoamController, V as View, o as onIrrelevantElement, u as updateViewOnPan, h as updateViewOnZoom, j as updateCenterAndZoom, k as VisualMapping, L as LineDraw, l as install$p, m as Line$1, n as applyLeaveTransition, p as convertToEC4StyleForCustomSerise, q as isEC4CompatibleStyle, r as convertFromEC4CompatibleStyle, t as stopPreviousKeyframeAnimationAndRestore, v as applyUpdateTransition, w as applyKeyframeAnimation } from "./customGraphicKeyframeAnimation-e508d217.js"; -PathProxy.CMD; -function projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) { - var dx = x - x1; - var dy = y - y1; - var dx1 = x2 - x1; - var dy1 = y2 - y1; - var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1); - dx1 /= lineLen; - dy1 /= lineLen; - var projectedLen = dx * dx1 + dy * dy1; - var t = projectedLen / lineLen; - if (limitToEnds) { - t = Math.min(Math.max(t, 0), 1); - } - t *= lineLen; - var ox = out[0] = x1 + t * dx1; - var oy = out[1] = y1 + t * dy1; - return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y)); -} -var pt0 = new Point(); -var pt1 = new Point(); -var pt2 = new Point(); -var dir = new Point(); -var dir2 = new Point(); -var tmpArr = []; -var tmpProjPoint = new Point(); -function limitTurnAngle(linePoints, minTurnAngle) { - if (!(minTurnAngle <= 180 && minTurnAngle > 0)) { - return; - } - minTurnAngle = minTurnAngle / 180 * Math.PI; - pt0.fromArray(linePoints[0]); - pt1.fromArray(linePoints[1]); - pt2.fromArray(linePoints[2]); - Point.sub(dir, pt0, pt1); - Point.sub(dir2, pt2, pt1); - var len1 = dir.len(); - var len2 = dir2.len(); - if (len1 < 1e-3 || len2 < 1e-3) { - return; - } - dir.scale(1 / len1); - dir2.scale(1 / len2); - var angleCos = dir.dot(dir2); - var minTurnAngleCos = Math.cos(minTurnAngle); - if (minTurnAngleCos < angleCos) { - var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false); - tmpProjPoint.fromArray(tmpArr); - tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle)); - var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y); - if (isNaN(t)) { - return; - } - if (t < 0) { - Point.copy(tmpProjPoint, pt1); - } else if (t > 1) { - Point.copy(tmpProjPoint, pt2); - } - tmpProjPoint.toArray(linePoints[1]); - } -} -function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) { - if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) { - return; - } - maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI; - pt0.fromArray(linePoints[0]); - pt1.fromArray(linePoints[1]); - pt2.fromArray(linePoints[2]); - Point.sub(dir, pt1, pt0); - Point.sub(dir2, pt2, pt1); - var len1 = dir.len(); - var len2 = dir2.len(); - if (len1 < 1e-3 || len2 < 1e-3) { - return; - } - dir.scale(1 / len1); - dir2.scale(1 / len2); - var angleCos = dir.dot(surfaceNormal); - var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle); - if (angleCos < maxSurfaceAngleCos) { - var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false); - tmpProjPoint.fromArray(tmpArr); - var HALF_PI = Math.PI / 2; - var angle2 = Math.acos(dir2.dot(surfaceNormal)); - var newAngle = HALF_PI + angle2 - maxSurfaceAngle; - if (newAngle >= HALF_PI) { - Point.copy(tmpProjPoint, pt2); - } else { - tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle)); - var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y); - if (isNaN(t)) { - return; - } - if (t < 0) { - Point.copy(tmpProjPoint, pt1); - } else if (t > 1) { - Point.copy(tmpProjPoint, pt2); - } - } - tmpProjPoint.toArray(linePoints[1]); - } -} -function setLabelLineState(labelLine, ignore, stateName, stateModel) { - var isNormal = stateName === "normal"; - var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName); - stateObj.ignore = ignore; - var smooth = stateModel.get("smooth"); - if (smooth && smooth === true) { - smooth = 0.3; - } - stateObj.shape = stateObj.shape || {}; - if (smooth > 0) { - stateObj.shape.smooth = smooth; - } - var styleObj = stateModel.getModel("lineStyle").getLineStyle(); - isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj; -} -function buildLabelLinePath(path, shape) { - var smooth = shape.smooth; - var points = shape.points; - if (!points) { - return; - } - path.moveTo(points[0][0], points[0][1]); - if (smooth > 0 && points.length >= 3) { - var len1 = dist(points[0], points[1]); - var len2 = dist(points[1], points[2]); - if (!len1 || !len2) { - path.lineTo(points[1][0], points[1][1]); - path.lineTo(points[2][0], points[2][1]); - return; - } - var moveLen = Math.min(len1, len2) * smooth; - var midPoint0 = lerp([], points[1], points[0], moveLen / len1); - var midPoint2 = lerp([], points[1], points[2], moveLen / len2); - var midPoint1 = lerp([], midPoint0, midPoint2, 0.5); - path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]); - path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]); - } else { - for (var i = 1; i < points.length; i++) { - path.lineTo(points[i][0], points[i][1]); - } - } -} -function setLabelLineStyle(targetEl, statesModels, defaultStyle) { - var labelLine = targetEl.getTextGuideLine(); - var label = targetEl.getTextContent(); - if (!label) { - if (labelLine) { - targetEl.removeTextGuideLine(); - } - return; - } - var normalModel = statesModels.normal; - var showNormal = normalModel.get("show"); - var labelIgnoreNormal = label.ignore; - for (var i = 0; i < DISPLAY_STATES.length; i++) { - var stateName = DISPLAY_STATES[i]; - var stateModel = statesModels[stateName]; - var isNormal = stateName === "normal"; - if (stateModel) { - var stateShow = stateModel.get("show"); - var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal); - if (isLabelIgnored || !retrieve2(stateShow, showNormal)) { - var stateObj = isNormal ? labelLine : labelLine && labelLine.states[stateName]; - if (stateObj) { - stateObj.ignore = true; - } - continue; - } - if (!labelLine) { - labelLine = new Polyline$2(); - targetEl.setTextGuideLine(labelLine); - if (!isNormal && (labelIgnoreNormal || !showNormal)) { - setLabelLineState(labelLine, true, "normal", statesModels.normal); - } - if (targetEl.stateProxy) { - labelLine.stateProxy = targetEl.stateProxy; - } - } - setLabelLineState(labelLine, false, stateName, stateModel); - } - } - if (labelLine) { - defaults(labelLine.style, defaultStyle); - labelLine.style.fill = null; - var showAbove = normalModel.get("showAbove"); - var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {}; - labelLineConfig.showAbove = showAbove || false; - labelLine.buildPath = buildLabelLinePath; - } -} -function getLabelLineStatesModels(itemModel, labelLineName) { - labelLineName = labelLineName || "labelLine"; - var statesModels = { - normal: itemModel.getModel(labelLineName) - }; - for (var i = 0; i < SPECIAL_STATES.length; i++) { - var stateName = SPECIAL_STATES[i]; - statesModels[stateName] = itemModel.getModel([stateName, labelLineName]); - } - return statesModels; -} -var LineSeriesModel = ( - /** @class */ - function(_super) { - __extends(LineSeriesModel2, _super); - function LineSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = LineSeriesModel2.type; - _this.hasSymbolVisual = true; - return _this; - } - LineSeriesModel2.prototype.getInitialData = function(option) { - return createSeriesData(null, this, { - useEncodeDefaulter: true - }); - }; - LineSeriesModel2.prototype.getLegendIcon = function(opt) { - var group = new Group$1(); - var line = createSymbol("line", 0, opt.itemHeight / 2, opt.itemWidth, 0, opt.lineStyle.stroke, false); - group.add(line); - line.setStyle(opt.lineStyle); - var visualType = this.getData().getVisual("symbol"); - var visualRotate = this.getData().getVisual("symbolRotate"); - var symbolType = visualType === "none" ? "circle" : visualType; - var size = opt.itemHeight * 0.8; - var symbol = createSymbol(symbolType, (opt.itemWidth - size) / 2, (opt.itemHeight - size) / 2, size, size, opt.itemStyle.fill); - group.add(symbol); - symbol.setStyle(opt.itemStyle); - var symbolRotate = opt.iconRotate === "inherit" ? visualRotate : opt.iconRotate || 0; - symbol.rotation = symbolRotate * Math.PI / 180; - symbol.setOrigin([opt.itemWidth / 2, opt.itemHeight / 2]); - if (symbolType.indexOf("empty") > -1) { - symbol.style.stroke = symbol.style.fill; - symbol.style.fill = "#fff"; - symbol.style.lineWidth = 2; - } - return group; - }; - LineSeriesModel2.type = "series.line"; - LineSeriesModel2.dependencies = ["grid", "polar"]; - LineSeriesModel2.defaultOption = { - // zlevel: 0, - z: 3, - coordinateSystem: "cartesian2d", - legendHoverLink: true, - clip: true, - label: { - position: "top" - }, - // itemStyle: { - // }, - endLabel: { - show: false, - valueAnimation: true, - distance: 8 - }, - lineStyle: { - width: 2, - type: "solid" - }, - emphasis: { - scale: true - }, - // areaStyle: { - // origin of areaStyle. Valid values: - // `'auto'/null/undefined`: from axisLine to data - // `'start'`: from min to data - // `'end'`: from data to max - // origin: 'auto' - // }, - // false, 'start', 'end', 'middle' - step: false, - // Disabled if step is true - smooth: false, - smoothMonotone: null, - symbol: "emptyCircle", - symbolSize: 4, - symbolRotate: null, - showSymbol: true, - // `false`: follow the label interval strategy. - // `true`: show all symbols. - // `'auto'`: If possible, show all symbols, otherwise - // follow the label interval strategy. - showAllSymbol: "auto", - // Whether to connect break point. - connectNulls: false, - // Sampling for large data. Can be: 'average', 'max', 'min', 'sum', 'lttb'. - sampling: "none", - animationEasing: "linear", - // Disable progressive - progressive: 0, - hoverLayerThreshold: Infinity, - universalTransition: { - divideShape: "clone" - }, - triggerLineEvent: false - }; - return LineSeriesModel2; - }(SeriesModel) -); -const LineSeries = LineSeriesModel; -function prepareDataCoordInfo(coordSys, data, valueOrigin) { - var baseAxis = coordSys.getBaseAxis(); - var valueAxis = coordSys.getOtherAxis(baseAxis); - var valueStart = getValueStart(valueAxis, valueOrigin); - var baseAxisDim = baseAxis.dim; - var valueAxisDim = valueAxis.dim; - var valueDim = data.mapDimension(valueAxisDim); - var baseDim = data.mapDimension(baseAxisDim); - var baseDataOffset = valueAxisDim === "x" || valueAxisDim === "radius" ? 1 : 0; - var dims = map(coordSys.dimensions, function(coordDim) { - return data.mapDimension(coordDim); - }); - var stacked = false; - var stackResultDim = data.getCalculationInfo("stackResultDimension"); - if (isDimensionStacked( - data, - dims[0] - /* , dims[1] */ - )) { - stacked = true; - dims[0] = stackResultDim; - } - if (isDimensionStacked( - data, - dims[1] - /* , dims[0] */ - )) { - stacked = true; - dims[1] = stackResultDim; - } - return { - dataDimsForPoint: dims, - valueStart, - valueAxisDim, - baseAxisDim, - stacked: !!stacked, - valueDim, - baseDim, - baseDataOffset, - stackedOverDimension: data.getCalculationInfo("stackedOverDimension") - }; -} -function getValueStart(valueAxis, valueOrigin) { - var valueStart = 0; - var extent = valueAxis.scale.getExtent(); - if (valueOrigin === "start") { - valueStart = extent[0]; - } else if (valueOrigin === "end") { - valueStart = extent[1]; - } else if (isNumber(valueOrigin) && !isNaN(valueOrigin)) { - valueStart = valueOrigin; - } else { - if (extent[0] > 0) { - valueStart = extent[0]; - } else if (extent[1] < 0) { - valueStart = extent[1]; - } - } - return valueStart; -} -function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) { - var value = NaN; - if (dataCoordInfo.stacked) { - value = data.get(data.getCalculationInfo("stackedOverDimension"), idx); - } - if (isNaN(value)) { - value = dataCoordInfo.valueStart; - } - var baseDataOffset = dataCoordInfo.baseDataOffset; - var stackedData = []; - stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx); - stackedData[1 - baseDataOffset] = value; - return coordSys.dataToPoint(stackedData); -} -function diffData(oldData, newData) { - var diffResult = []; - newData.diff(oldData).add(function(idx) { - diffResult.push({ - cmd: "+", - idx - }); - }).update(function(newIdx, oldIdx) { - diffResult.push({ - cmd: "=", - idx: oldIdx, - idx1: newIdx - }); - }).remove(function(idx) { - diffResult.push({ - cmd: "-", - idx - }); - }).execute(); - return diffResult; -} -function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) { - var diff = diffData(oldData, newData); - var currPoints = []; - var nextPoints = []; - var currStackedPoints = []; - var nextStackedPoints = []; - var status = []; - var sortedIndices = []; - var rawIndices = []; - var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin); - var oldPoints = oldData.getLayout("points") || []; - var newPoints = newData.getLayout("points") || []; - for (var i = 0; i < diff.length; i++) { - var diffItem = diff[i]; - var pointAdded = true; - var oldIdx2 = void 0; - var newIdx2 = void 0; - switch (diffItem.cmd) { - case "=": - oldIdx2 = diffItem.idx * 2; - newIdx2 = diffItem.idx1 * 2; - var currentX = oldPoints[oldIdx2]; - var currentY = oldPoints[oldIdx2 + 1]; - var nextX = newPoints[newIdx2]; - var nextY = newPoints[newIdx2 + 1]; - if (isNaN(currentX) || isNaN(currentY)) { - currentX = nextX; - currentY = nextY; - } - currPoints.push(currentX, currentY); - nextPoints.push(nextX, nextY); - currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]); - nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]); - rawIndices.push(newData.getRawIndex(diffItem.idx1)); - break; - case "+": - var newIdx = diffItem.idx; - var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint; - var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]); - newIdx2 = newIdx * 2; - currPoints.push(oldPt[0], oldPt[1]); - nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]); - var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx); - currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]); - nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]); - rawIndices.push(newData.getRawIndex(newIdx)); - break; - case "-": - pointAdded = false; - } - if (pointAdded) { - status.push(diffItem); - sortedIndices.push(sortedIndices.length); - } - } - sortedIndices.sort(function(a, b) { - return rawIndices[a] - rawIndices[b]; - }); - var len2 = currPoints.length; - var sortedCurrPoints = createFloat32Array(len2); - var sortedNextPoints = createFloat32Array(len2); - var sortedCurrStackedPoints = createFloat32Array(len2); - var sortedNextStackedPoints = createFloat32Array(len2); - var sortedStatus = []; - for (var i = 0; i < sortedIndices.length; i++) { - var idx = sortedIndices[i]; - var i2 = i * 2; - var idx2 = idx * 2; - sortedCurrPoints[i2] = currPoints[idx2]; - sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1]; - sortedNextPoints[i2] = nextPoints[idx2]; - sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1]; - sortedCurrStackedPoints[i2] = currStackedPoints[idx2]; - sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1]; - sortedNextStackedPoints[i2] = nextStackedPoints[idx2]; - sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1]; - sortedStatus[i] = status[idx]; - } - return { - current: sortedCurrPoints, - next: sortedNextPoints, - stackedOnCurrent: sortedCurrStackedPoints, - stackedOnNext: sortedNextStackedPoints, - status: sortedStatus - }; -} -var mathMin$2 = Math.min; -var mathMax$2 = Math.max; -function isPointNull$1(x, y) { - return isNaN(x) || isNaN(y); -} -function drawSegment(ctx, points, start, segLen, allLen, dir3, smooth, smoothMonotone, connectNulls) { - var prevX; - var prevY; - var cpx0; - var cpy0; - var cpx1; - var cpy1; - var idx = start; - var k = 0; - for (; k < segLen; k++) { - var x = points[idx * 2]; - var y = points[idx * 2 + 1]; - if (idx >= allLen || idx < 0) { - break; - } - if (isPointNull$1(x, y)) { - if (connectNulls) { - idx += dir3; - continue; - } - break; - } - if (idx === start) { - ctx[dir3 > 0 ? "moveTo" : "lineTo"](x, y); - cpx0 = x; - cpy0 = y; - } else { - var dx = x - prevX; - var dy = y - prevY; - if (dx * dx + dy * dy < 0.5) { - idx += dir3; - continue; - } - if (smooth > 0) { - var nextIdx = idx + dir3; - var nextX = points[nextIdx * 2]; - var nextY = points[nextIdx * 2 + 1]; - while (nextX === x && nextY === y && k < segLen) { - k++; - nextIdx += dir3; - idx += dir3; - nextX = points[nextIdx * 2]; - nextY = points[nextIdx * 2 + 1]; - x = points[idx * 2]; - y = points[idx * 2 + 1]; - dx = x - prevX; - dy = y - prevY; - } - var tmpK = k + 1; - if (connectNulls) { - while (isPointNull$1(nextX, nextY) && tmpK < segLen) { - tmpK++; - nextIdx += dir3; - nextX = points[nextIdx * 2]; - nextY = points[nextIdx * 2 + 1]; - } - } - var ratioNextSeg = 0.5; - var vx = 0; - var vy = 0; - var nextCpx0 = void 0; - var nextCpy0 = void 0; - if (tmpK >= segLen || isPointNull$1(nextX, nextY)) { - cpx1 = x; - cpy1 = y; - } else { - vx = nextX - prevX; - vy = nextY - prevY; - var dx0 = x - prevX; - var dx1 = nextX - x; - var dy0 = y - prevY; - var dy1 = nextY - y; - var lenPrevSeg = void 0; - var lenNextSeg = void 0; - if (smoothMonotone === "x") { - lenPrevSeg = Math.abs(dx0); - lenNextSeg = Math.abs(dx1); - var dir_1 = vx > 0 ? 1 : -1; - cpx1 = x - dir_1 * lenPrevSeg * smooth; - cpy1 = y; - nextCpx0 = x + dir_1 * lenNextSeg * smooth; - nextCpy0 = y; - } else if (smoothMonotone === "y") { - lenPrevSeg = Math.abs(dy0); - lenNextSeg = Math.abs(dy1); - var dir_2 = vy > 0 ? 1 : -1; - cpx1 = x; - cpy1 = y - dir_2 * lenPrevSeg * smooth; - nextCpx0 = x; - nextCpy0 = y + dir_2 * lenNextSeg * smooth; - } else { - lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0); - lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1); - ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg); - cpx1 = x - vx * smooth * (1 - ratioNextSeg); - cpy1 = y - vy * smooth * (1 - ratioNextSeg); - nextCpx0 = x + vx * smooth * ratioNextSeg; - nextCpy0 = y + vy * smooth * ratioNextSeg; - nextCpx0 = mathMin$2(nextCpx0, mathMax$2(nextX, x)); - nextCpy0 = mathMin$2(nextCpy0, mathMax$2(nextY, y)); - nextCpx0 = mathMax$2(nextCpx0, mathMin$2(nextX, x)); - nextCpy0 = mathMax$2(nextCpy0, mathMin$2(nextY, y)); - vx = nextCpx0 - x; - vy = nextCpy0 - y; - cpx1 = x - vx * lenPrevSeg / lenNextSeg; - cpy1 = y - vy * lenPrevSeg / lenNextSeg; - cpx1 = mathMin$2(cpx1, mathMax$2(prevX, x)); - cpy1 = mathMin$2(cpy1, mathMax$2(prevY, y)); - cpx1 = mathMax$2(cpx1, mathMin$2(prevX, x)); - cpy1 = mathMax$2(cpy1, mathMin$2(prevY, y)); - vx = x - cpx1; - vy = y - cpy1; - nextCpx0 = x + vx * lenNextSeg / lenPrevSeg; - nextCpy0 = y + vy * lenNextSeg / lenPrevSeg; - } - } - ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y); - cpx0 = nextCpx0; - cpy0 = nextCpy0; - } else { - ctx.lineTo(x, y); - } - } - prevX = x; - prevY = y; - idx += dir3; - } - return k; -} -var ECPolylineShape = ( - /** @class */ - function() { - function ECPolylineShape2() { - this.smooth = 0; - this.smoothConstraint = true; - } - return ECPolylineShape2; - }() -); -var ECPolyline = ( - /** @class */ - function(_super) { - __extends(ECPolyline2, _super); - function ECPolyline2(opts) { - var _this = _super.call(this, opts) || this; - _this.type = "ec-polyline"; - return _this; - } - ECPolyline2.prototype.getDefaultStyle = function() { - return { - stroke: "#000", - fill: null - }; - }; - ECPolyline2.prototype.getDefaultShape = function() { - return new ECPolylineShape(); - }; - ECPolyline2.prototype.buildPath = function(ctx, shape) { - var points = shape.points; - var i = 0; - var len2 = points.length / 2; - if (shape.connectNulls) { - for (; len2 > 0; len2--) { - if (!isPointNull$1(points[len2 * 2 - 2], points[len2 * 2 - 1])) { - break; - } - } - for (; i < len2; i++) { - if (!isPointNull$1(points[i * 2], points[i * 2 + 1])) { - break; - } - } - } - while (i < len2) { - i += drawSegment(ctx, points, i, len2, len2, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1; - } - }; - ECPolyline2.prototype.getPointOn = function(xOrY, dim) { - if (!this.path) { - this.createPathProxy(); - this.buildPath(this.path, this.shape); - } - var path = this.path; - var data = path.data; - var CMD = PathProxy.CMD; - var x0; - var y0; - var isDimX = dim === "x"; - var roots = []; - for (var i = 0; i < data.length; ) { - var cmd = data[i++]; - var x = void 0; - var y = void 0; - var x2 = void 0; - var y2 = void 0; - var x3 = void 0; - var y3 = void 0; - var t = void 0; - switch (cmd) { - case CMD.M: - x0 = data[i++]; - y0 = data[i++]; - break; - case CMD.L: - x = data[i++]; - y = data[i++]; - t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0); - if (t <= 1 && t >= 0) { - var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0; - return isDimX ? [xOrY, val] : [val, xOrY]; - } - x0 = x; - y0 = y; - break; - case CMD.C: - x = data[i++]; - y = data[i++]; - x2 = data[i++]; - y2 = data[i++]; - x3 = data[i++]; - y3 = data[i++]; - var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots); - if (nRoot > 0) { - for (var i_1 = 0; i_1 < nRoot; i_1++) { - var t_1 = roots[i_1]; - if (t_1 <= 1 && t_1 >= 0) { - var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1); - return isDimX ? [xOrY, val] : [val, xOrY]; - } - } - } - x0 = x3; - y0 = y3; - break; - } - } - }; - return ECPolyline2; - }(Path) -); -var ECPolygonShape = ( - /** @class */ - function(_super) { - __extends(ECPolygonShape2, _super); - function ECPolygonShape2() { - return _super !== null && _super.apply(this, arguments) || this; - } - return ECPolygonShape2; - }(ECPolylineShape) -); -var ECPolygon = ( - /** @class */ - function(_super) { - __extends(ECPolygon2, _super); - function ECPolygon2(opts) { - var _this = _super.call(this, opts) || this; - _this.type = "ec-polygon"; - return _this; - } - ECPolygon2.prototype.getDefaultShape = function() { - return new ECPolygonShape(); - }; - ECPolygon2.prototype.buildPath = function(ctx, shape) { - var points = shape.points; - var stackedOnPoints = shape.stackedOnPoints; - var i = 0; - var len2 = points.length / 2; - var smoothMonotone = shape.smoothMonotone; - if (shape.connectNulls) { - for (; len2 > 0; len2--) { - if (!isPointNull$1(points[len2 * 2 - 2], points[len2 * 2 - 1])) { - break; - } - } - for (; i < len2; i++) { - if (!isPointNull$1(points[i * 2], points[i * 2 + 1])) { - break; - } - } - } - while (i < len2) { - var k = drawSegment(ctx, points, i, len2, len2, 1, shape.smooth, smoothMonotone, shape.connectNulls); - drawSegment(ctx, stackedOnPoints, i + k - 1, k, len2, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls); - i += k + 1; - ctx.closePath(); - } - }; - return ECPolygon2; - }(Path) -); -function createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) { - var rect = cartesian.getArea(); - var x = rect.x; - var y = rect.y; - var width = rect.width; - var height = rect.height; - var lineWidth = seriesModel.get(["lineStyle", "width"]) || 2; - x -= lineWidth / 2; - y -= lineWidth / 2; - width += lineWidth; - height += lineWidth; - x = Math.floor(x); - width = Math.round(width); - var clipPath = new Rect$1({ - shape: { - x, - y, - width, - height - } - }); - if (hasAnimation) { - var baseAxis = cartesian.getBaseAxis(); - var isHorizontal = baseAxis.isHorizontal(); - var isAxisInversed = baseAxis.inverse; - if (isHorizontal) { - if (isAxisInversed) { - clipPath.shape.x += width; - } - clipPath.shape.width = 0; - } else { - if (!isAxisInversed) { - clipPath.shape.y += height; - } - clipPath.shape.height = 0; - } - var duringCb = isFunction(during) ? function(percent) { - during(percent, clipPath); - } : null; - initProps(clipPath, { - shape: { - width, - height, - x, - y - } - }, seriesModel, null, done, duringCb); - } - return clipPath; -} -function createPolarClipPath(polar, hasAnimation, seriesModel) { - var sectorArea = polar.getArea(); - var r0 = round(sectorArea.r0, 1); - var r = round(sectorArea.r, 1); - var clipPath = new Sector({ - shape: { - cx: round(polar.cx, 1), - cy: round(polar.cy, 1), - r0, - r, - startAngle: sectorArea.startAngle, - endAngle: sectorArea.endAngle, - clockwise: sectorArea.clockwise - } - }); - if (hasAnimation) { - var isRadial = polar.getBaseAxis().dim === "angle"; - if (isRadial) { - clipPath.shape.endAngle = sectorArea.startAngle; - } else { - clipPath.shape.r = r0; - } - initProps(clipPath, { - shape: { - endAngle: sectorArea.endAngle, - r - } - }, seriesModel); - } - return clipPath; -} -function createClipPath(coordSys, hasAnimation, seriesModel, done, during) { - if (!coordSys) { - return null; - } else if (coordSys.type === "polar") { - return createPolarClipPath(coordSys, hasAnimation, seriesModel); - } else if (coordSys.type === "cartesian2d") { - return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during); - } - return null; -} -function isPointsSame(points1, points2) { - if (points1.length !== points2.length) { - return; - } - for (var i = 0; i < points1.length; i++) { - if (points1[i] !== points2[i]) { - return; - } - } - return true; -} -function bboxFromPoints(points) { - var minX = Infinity; - var minY = Infinity; - var maxX = -Infinity; - var maxY = -Infinity; - for (var i = 0; i < points.length; ) { - var x = points[i++]; - var y = points[i++]; - if (!isNaN(x)) { - minX = Math.min(x, minX); - maxX = Math.max(x, maxX); - } - if (!isNaN(y)) { - minY = Math.min(y, minY); - maxY = Math.max(y, maxY); - } - } - return [[minX, minY], [maxX, maxY]]; -} -function getBoundingDiff(points1, points2) { - var _a = bboxFromPoints(points1), min1 = _a[0], max1 = _a[1]; - var _b = bboxFromPoints(points2), min2 = _b[0], max2 = _b[1]; - return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1])); -} -function getSmooth(smooth) { - return isNumber(smooth) ? smooth : smooth ? 0.5 : 0; -} -function getStackedOnPoints(coordSys, data, dataCoordInfo) { - if (!dataCoordInfo.valueDim) { - return []; - } - var len2 = data.count(); - var points = createFloat32Array(len2 * 2); - for (var idx = 0; idx < len2; idx++) { - var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx); - points[idx * 2] = pt[0]; - points[idx * 2 + 1] = pt[1]; - } - return points; -} -function turnPointsIntoStep(points, coordSys, stepTurnAt, connectNulls) { - var baseAxis = coordSys.getBaseAxis(); - var baseIndex = baseAxis.dim === "x" || baseAxis.dim === "radius" ? 0 : 1; - var stepPoints = []; - var i = 0; - var stepPt = []; - var pt = []; - var nextPt = []; - var filteredPoints = []; - if (connectNulls) { - for (i = 0; i < points.length; i += 2) { - if (!isNaN(points[i]) && !isNaN(points[i + 1])) { - filteredPoints.push(points[i], points[i + 1]); - } - } - points = filteredPoints; - } - for (i = 0; i < points.length - 2; i += 2) { - nextPt[0] = points[i + 2]; - nextPt[1] = points[i + 3]; - pt[0] = points[i]; - pt[1] = points[i + 1]; - stepPoints.push(pt[0], pt[1]); - switch (stepTurnAt) { - case "end": - stepPt[baseIndex] = nextPt[baseIndex]; - stepPt[1 - baseIndex] = pt[1 - baseIndex]; - stepPoints.push(stepPt[0], stepPt[1]); - break; - case "middle": - var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2; - var stepPt2 = []; - stepPt[baseIndex] = stepPt2[baseIndex] = middle; - stepPt[1 - baseIndex] = pt[1 - baseIndex]; - stepPt2[1 - baseIndex] = nextPt[1 - baseIndex]; - stepPoints.push(stepPt[0], stepPt[1]); - stepPoints.push(stepPt2[0], stepPt2[1]); - break; - default: - stepPt[baseIndex] = pt[baseIndex]; - stepPt[1 - baseIndex] = nextPt[1 - baseIndex]; - stepPoints.push(stepPt[0], stepPt[1]); - } - } - stepPoints.push(points[i++], points[i++]); - return stepPoints; -} -function clipColorStops(colorStops, maxSize) { - var newColorStops = []; - var len2 = colorStops.length; - var prevOutOfRangeColorStop; - var prevInRangeColorStop; - function lerpStop(stop0, stop1, clippedCoord) { - var coord0 = stop0.coord; - var p = (clippedCoord - coord0) / (stop1.coord - coord0); - var color = lerp$1(p, [stop0.color, stop1.color]); - return { - coord: clippedCoord, - color - }; - } - for (var i = 0; i < len2; i++) { - var stop_1 = colorStops[i]; - var coord = stop_1.coord; - if (coord < 0) { - prevOutOfRangeColorStop = stop_1; - } else if (coord > maxSize) { - if (prevInRangeColorStop) { - newColorStops.push(lerpStop(prevInRangeColorStop, stop_1, maxSize)); - } else if (prevOutOfRangeColorStop) { - newColorStops.push(lerpStop(prevOutOfRangeColorStop, stop_1, 0), lerpStop(prevOutOfRangeColorStop, stop_1, maxSize)); - } - break; - } else { - if (prevOutOfRangeColorStop) { - newColorStops.push(lerpStop(prevOutOfRangeColorStop, stop_1, 0)); - prevOutOfRangeColorStop = null; - } - newColorStops.push(stop_1); - prevInRangeColorStop = stop_1; - } - } - return newColorStops; -} -function getVisualGradient(data, coordSys, api) { - var visualMetaList = data.getVisual("visualMeta"); - if (!visualMetaList || !visualMetaList.length || !data.count()) { - return; - } - if (coordSys.type !== "cartesian2d") { - return; - } - var coordDim; - var visualMeta; - for (var i = visualMetaList.length - 1; i >= 0; i--) { - var dimInfo = data.getDimensionInfo(visualMetaList[i].dimension); - coordDim = dimInfo && dimInfo.coordDim; - if (coordDim === "x" || coordDim === "y") { - visualMeta = visualMetaList[i]; - break; - } - } - if (!visualMeta) { - return; - } - var axis = coordSys.getAxis(coordDim); - var colorStops = map(visualMeta.stops, function(stop) { - return { - coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)), - color: stop.color - }; - }); - var stopLen = colorStops.length; - var outerColors = visualMeta.outerColors.slice(); - if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) { - colorStops.reverse(); - outerColors.reverse(); - } - var colorStopsInRange = clipColorStops(colorStops, coordDim === "x" ? api.getWidth() : api.getHeight()); - var inRangeStopLen = colorStopsInRange.length; - if (!inRangeStopLen && stopLen) { - return colorStops[0].coord < 0 ? outerColors[1] ? outerColors[1] : colorStops[stopLen - 1].color : outerColors[0] ? outerColors[0] : colorStops[0].color; - } - var tinyExtent = 10; - var minCoord = colorStopsInRange[0].coord - tinyExtent; - var maxCoord = colorStopsInRange[inRangeStopLen - 1].coord + tinyExtent; - var coordSpan = maxCoord - minCoord; - if (coordSpan < 1e-3) { - return "transparent"; - } - each$2(colorStopsInRange, function(stop) { - stop.offset = (stop.coord - minCoord) / coordSpan; - }); - colorStopsInRange.push({ - // NOTE: inRangeStopLen may still be 0 if stoplen is zero. - offset: inRangeStopLen ? colorStopsInRange[inRangeStopLen - 1].offset : 0.5, - color: outerColors[1] || "transparent" - }); - colorStopsInRange.unshift({ - offset: inRangeStopLen ? colorStopsInRange[0].offset : 0.5, - color: outerColors[0] || "transparent" - }); - var gradient = new LinearGradient(0, 0, 0, 0, colorStopsInRange, true); - gradient[coordDim] = minCoord; - gradient[coordDim + "2"] = maxCoord; - return gradient; -} -function getIsIgnoreFunc(seriesModel, data, coordSys) { - var showAllSymbol = seriesModel.get("showAllSymbol"); - var isAuto = showAllSymbol === "auto"; - if (showAllSymbol && !isAuto) { - return; - } - var categoryAxis = coordSys.getAxesByScale("ordinal")[0]; - if (!categoryAxis) { - return; - } - if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) { - return; - } - var categoryDataDim = data.mapDimension(categoryAxis.dim); - var labelMap = {}; - each$2(categoryAxis.getViewLabels(), function(labelItem) { - var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue); - labelMap[ordinalNumber] = 1; - }); - return function(dataIndex) { - return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex)); - }; -} -function canShowAllSymbolForCategory(categoryAxis, data) { - var axisExtent = categoryAxis.getExtent(); - var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count(); - isNaN(availSize) && (availSize = 0); - var dataLen = data.count(); - var step = Math.max(1, Math.round(dataLen / 5)); - for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) { - if (SymbolClz.getSymbolSize( - data, - dataIndex - // Only for cartesian, where `isHorizontal` exists. - )[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) { - return false; - } - } - return true; -} -function isPointNull(x, y) { - return isNaN(x) || isNaN(y); -} -function getLastIndexNotNull(points) { - var len2 = points.length / 2; - for (; len2 > 0; len2--) { - if (!isPointNull(points[len2 * 2 - 2], points[len2 * 2 - 1])) { - break; - } - } - return len2 - 1; -} -function getPointAtIndex(points, idx) { - return [points[idx * 2], points[idx * 2 + 1]]; -} -function getIndexRange(points, xOrY, dim) { - var len2 = points.length / 2; - var dimIdx = dim === "x" ? 0 : 1; - var a; - var b; - var prevIndex = 0; - var nextIndex = -1; - for (var i = 0; i < len2; i++) { - b = points[i * 2 + dimIdx]; - if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) { - continue; - } - if (i === 0) { - a = b; - continue; - } - if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) { - nextIndex = i; - break; - } - prevIndex = i; - a = b; - } - return { - range: [prevIndex, nextIndex], - t: (xOrY - a) / (b - a) - }; -} -function anyStateShowEndLabel(seriesModel) { - if (seriesModel.get(["endLabel", "show"])) { - return true; - } - for (var i = 0; i < SPECIAL_STATES.length; i++) { - if (seriesModel.get([SPECIAL_STATES[i], "endLabel", "show"])) { - return true; - } - } - return false; -} -function createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) { - if (isCoordinateSystemType(coordSys, "cartesian2d")) { - var endLabelModel_1 = seriesModel.getModel("endLabel"); - var valueAnimation_1 = endLabelModel_1.get("valueAnimation"); - var data_1 = seriesModel.getData(); - var labelAnimationRecord_1 = { - lastFrameIndex: 0 - }; - var during = anyStateShowEndLabel(seriesModel) ? function(percent, clipRect) { - lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys); - } : null; - var isHorizontal = coordSys.getBaseAxis().isHorizontal(); - var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function() { - var endLabel = lineView._endLabel; - if (endLabel && hasAnimation) { - if (labelAnimationRecord_1.originalX != null) { - endLabel.attr({ - x: labelAnimationRecord_1.originalX, - y: labelAnimationRecord_1.originalY - }); - } - } - }, during); - if (!seriesModel.get("clip", true)) { - var rectShape = clipPath.shape; - var expandSize = Math.max(rectShape.width, rectShape.height); - if (isHorizontal) { - rectShape.y -= expandSize; - rectShape.height += expandSize * 2; - } else { - rectShape.x -= expandSize; - rectShape.width += expandSize * 2; - } - } - if (during) { - during(1, clipPath); - } - return clipPath; - } else { - return createPolarClipPath(coordSys, hasAnimation, seriesModel); - } -} -function getEndLabelStateSpecified(endLabelModel, coordSys) { - var baseAxis = coordSys.getBaseAxis(); - var isHorizontal = baseAxis.isHorizontal(); - var isBaseInversed = baseAxis.inverse; - var align = isHorizontal ? isBaseInversed ? "right" : "left" : "center"; - var verticalAlign = isHorizontal ? "middle" : isBaseInversed ? "top" : "bottom"; - return { - normal: { - align: endLabelModel.get("align") || align, - verticalAlign: endLabelModel.get("verticalAlign") || verticalAlign - } - }; -} -var LineView = ( - /** @class */ - function(_super) { - __extends(LineView2, _super); - function LineView2() { - return _super !== null && _super.apply(this, arguments) || this; - } - LineView2.prototype.init = function() { - var lineGroup = new Group$1(); - var symbolDraw = new SymbolDraw(); - this.group.add(symbolDraw.group); - this._symbolDraw = symbolDraw; - this._lineGroup = lineGroup; - }; - LineView2.prototype.render = function(seriesModel, ecModel, api) { - var _this = this; - var coordSys = seriesModel.coordinateSystem; - var group = this.group; - var data = seriesModel.getData(); - var lineStyleModel = seriesModel.getModel("lineStyle"); - var areaStyleModel = seriesModel.getModel("areaStyle"); - var points = data.getLayout("points") || []; - var isCoordSysPolar = coordSys.type === "polar"; - var prevCoordSys = this._coordSys; - var symbolDraw = this._symbolDraw; - var polyline = this._polyline; - var polygon = this._polygon; - var lineGroup = this._lineGroup; - var hasAnimation = !ecModel.ssr && seriesModel.isAnimationEnabled(); - var isAreaChart = !areaStyleModel.isEmpty(); - var valueOrigin = areaStyleModel.get("origin"); - var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin); - var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo); - var showSymbol = seriesModel.get("showSymbol"); - var connectNulls = seriesModel.get("connectNulls"); - var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys); - var oldData = this._data; - oldData && oldData.eachItemGraphicEl(function(el, idx) { - if (el.__temp) { - group.remove(el); - oldData.setItemGraphicEl(idx, null); - } - }); - if (!showSymbol) { - symbolDraw.remove(); - } - group.add(lineGroup); - var step = !isCoordSysPolar ? seriesModel.get("step") : false; - var clipShapeForSymbol; - if (coordSys && coordSys.getArea && seriesModel.get("clip", true)) { - clipShapeForSymbol = coordSys.getArea(); - if (clipShapeForSymbol.width != null) { - clipShapeForSymbol.x -= 0.1; - clipShapeForSymbol.y -= 0.1; - clipShapeForSymbol.width += 0.2; - clipShapeForSymbol.height += 0.2; - } else if (clipShapeForSymbol.r0) { - clipShapeForSymbol.r0 -= 0.5; - clipShapeForSymbol.r += 0.5; - } - } - this._clipShapeForSymbol = clipShapeForSymbol; - var visualColor = getVisualGradient(data, coordSys, api) || data.getVisual("style")[data.getVisual("drawType")]; - if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) { - showSymbol && symbolDraw.updateData(data, { - isIgnore: isIgnoreFunc, - clipShape: clipShapeForSymbol, - disableAnimation: true, - getSymbolPoint: function(idx) { - return [points[idx * 2], points[idx * 2 + 1]]; - } - }); - hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol); - if (step) { - points = turnPointsIntoStep(points, coordSys, step, connectNulls); - if (stackedOnPoints) { - stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step, connectNulls); - } - } - polyline = this._newPolyline(points); - if (isAreaChart) { - polygon = this._newPolygon(points, stackedOnPoints); - } else if (polygon) { - lineGroup.remove(polygon); - polygon = this._polygon = null; - } - if (!isCoordSysPolar) { - this._initOrUpdateEndLabel(seriesModel, coordSys, convertToColorString(visualColor)); - } - lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel)); - } else { - if (isAreaChart && !polygon) { - polygon = this._newPolygon(points, stackedOnPoints); - } else if (polygon && !isAreaChart) { - lineGroup.remove(polygon); - polygon = this._polygon = null; - } - if (!isCoordSysPolar) { - this._initOrUpdateEndLabel(seriesModel, coordSys, convertToColorString(visualColor)); - } - var oldClipPath = lineGroup.getClipPath(); - if (oldClipPath) { - var newClipPath = createLineClipPath(this, coordSys, false, seriesModel); - initProps(oldClipPath, { - shape: newClipPath.shape - }, seriesModel); - } else { - lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel)); - } - showSymbol && symbolDraw.updateData(data, { - isIgnore: isIgnoreFunc, - clipShape: clipShapeForSymbol, - disableAnimation: true, - getSymbolPoint: function(idx) { - return [points[idx * 2], points[idx * 2 + 1]]; - } - }); - if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) { - if (hasAnimation) { - this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin, connectNulls); - } else { - if (step) { - points = turnPointsIntoStep(points, coordSys, step, connectNulls); - if (stackedOnPoints) { - stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step, connectNulls); - } - } - polyline.setShape({ - points - }); - polygon && polygon.setShape({ - points, - stackedOnPoints - }); - } - } - } - var emphasisModel = seriesModel.getModel("emphasis"); - var focus = emphasisModel.get("focus"); - var blurScope = emphasisModel.get("blurScope"); - var emphasisDisabled = emphasisModel.get("disabled"); - polyline.useStyle(defaults( - // Use color in lineStyle first - lineStyleModel.getLineStyle(), - { - fill: "none", - stroke: visualColor, - lineJoin: "bevel" - } - )); - setStatesStylesFromModel(polyline, seriesModel, "lineStyle"); - if (polyline.style.lineWidth > 0 && seriesModel.get(["emphasis", "lineStyle", "width"]) === "bolder") { - var emphasisLineStyle = polyline.getState("emphasis").style; - emphasisLineStyle.lineWidth = +polyline.style.lineWidth + 1; - } - getECData(polyline).seriesIndex = seriesModel.seriesIndex; - toggleHoverEmphasis(polyline, focus, blurScope, emphasisDisabled); - var smooth = getSmooth(seriesModel.get("smooth")); - var smoothMonotone = seriesModel.get("smoothMonotone"); - polyline.setShape({ - smooth, - smoothMonotone, - connectNulls - }); - if (polygon) { - var stackedOnSeries = data.getCalculationInfo("stackedOnSeries"); - var stackedOnSmooth = 0; - polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), { - fill: visualColor, - opacity: 0.7, - lineJoin: "bevel", - decal: data.getVisual("style").decal - })); - if (stackedOnSeries) { - stackedOnSmooth = getSmooth(stackedOnSeries.get("smooth")); - } - polygon.setShape({ - smooth, - stackedOnSmooth, - smoothMonotone, - connectNulls - }); - setStatesStylesFromModel(polygon, seriesModel, "areaStyle"); - getECData(polygon).seriesIndex = seriesModel.seriesIndex; - toggleHoverEmphasis(polygon, focus, blurScope, emphasisDisabled); - } - var changePolyState = function(toState) { - _this._changePolyState(toState); - }; - data.eachItemGraphicEl(function(el) { - el && (el.onHoverStateChange = changePolyState); - }); - this._polyline.onHoverStateChange = changePolyState; - this._data = data; - this._coordSys = coordSys; - this._stackedOnPoints = stackedOnPoints; - this._points = points; - this._step = step; - this._valueOrigin = valueOrigin; - if (seriesModel.get("triggerLineEvent")) { - this.packEventData(seriesModel, polyline); - polygon && this.packEventData(seriesModel, polygon); - } - }; - LineView2.prototype.packEventData = function(seriesModel, el) { - getECData(el).eventData = { - componentType: "series", - componentSubType: "line", - componentIndex: seriesModel.componentIndex, - seriesIndex: seriesModel.seriesIndex, - seriesName: seriesModel.name, - seriesType: "line" - }; - }; - LineView2.prototype.highlight = function(seriesModel, ecModel, api, payload) { - var data = seriesModel.getData(); - var dataIndex = queryDataIndex(data, payload); - this._changePolyState("emphasis"); - if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) { - var points = data.getLayout("points"); - var symbol = data.getItemGraphicEl(dataIndex); - if (!symbol) { - var x = points[dataIndex * 2]; - var y = points[dataIndex * 2 + 1]; - if (isNaN(x) || isNaN(y)) { - return; - } - if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) { - return; - } - var zlevel = seriesModel.get("zlevel") || 0; - var z = seriesModel.get("z") || 0; - symbol = new SymbolClz(data, dataIndex); - symbol.x = x; - symbol.y = y; - symbol.setZ(zlevel, z); - var symbolLabel = symbol.getSymbolPath().getTextContent(); - if (symbolLabel) { - symbolLabel.zlevel = zlevel; - symbolLabel.z = z; - symbolLabel.z2 = this._polyline.z2 + 1; - } - symbol.__temp = true; - data.setItemGraphicEl(dataIndex, symbol); - symbol.stopSymbolAnimation(true); - this.group.add(symbol); - } - symbol.highlight(); - } else { - ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload); - } - }; - LineView2.prototype.downplay = function(seriesModel, ecModel, api, payload) { - var data = seriesModel.getData(); - var dataIndex = queryDataIndex(data, payload); - this._changePolyState("normal"); - if (dataIndex != null && dataIndex >= 0) { - var symbol = data.getItemGraphicEl(dataIndex); - if (symbol) { - if (symbol.__temp) { - data.setItemGraphicEl(dataIndex, null); - this.group.remove(symbol); - } else { - symbol.downplay(); - } - } - } else { - ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload); - } - }; - LineView2.prototype._changePolyState = function(toState) { - var polygon = this._polygon; - setStatesFlag(this._polyline, toState); - polygon && setStatesFlag(polygon, toState); - }; - LineView2.prototype._newPolyline = function(points) { - var polyline = this._polyline; - if (polyline) { - this._lineGroup.remove(polyline); - } - polyline = new ECPolyline({ - shape: { - points - }, - segmentIgnoreThreshold: 2, - z2: 10 - }); - this._lineGroup.add(polyline); - this._polyline = polyline; - return polyline; - }; - LineView2.prototype._newPolygon = function(points, stackedOnPoints) { - var polygon = this._polygon; - if (polygon) { - this._lineGroup.remove(polygon); - } - polygon = new ECPolygon({ - shape: { - points, - stackedOnPoints - }, - segmentIgnoreThreshold: 2 - }); - this._lineGroup.add(polygon); - this._polygon = polygon; - return polygon; - }; - LineView2.prototype._initSymbolLabelAnimation = function(data, coordSys, clipShape) { - var isHorizontalOrRadial; - var isCoordSysPolar; - var baseAxis = coordSys.getBaseAxis(); - var isAxisInverse = baseAxis.inverse; - if (coordSys.type === "cartesian2d") { - isHorizontalOrRadial = baseAxis.isHorizontal(); - isCoordSysPolar = false; - } else if (coordSys.type === "polar") { - isHorizontalOrRadial = baseAxis.dim === "angle"; - isCoordSysPolar = true; - } - var seriesModel = data.hostModel; - var seriesDuration = seriesModel.get("animationDuration"); - if (isFunction(seriesDuration)) { - seriesDuration = seriesDuration(null); - } - var seriesDelay = seriesModel.get("animationDelay") || 0; - var seriesDelayValue = isFunction(seriesDelay) ? seriesDelay(null) : seriesDelay; - data.eachItemGraphicEl(function(symbol, idx) { - var el = symbol; - if (el) { - var point = [symbol.x, symbol.y]; - var start = void 0; - var end = void 0; - var current = void 0; - if (clipShape) { - if (isCoordSysPolar) { - var polarClip = clipShape; - var coord = coordSys.pointToCoord(point); - if (isHorizontalOrRadial) { - start = polarClip.startAngle; - end = polarClip.endAngle; - current = -coord[1] / 180 * Math.PI; - } else { - start = polarClip.r0; - end = polarClip.r; - current = coord[0]; - } - } else { - var gridClip = clipShape; - if (isHorizontalOrRadial) { - start = gridClip.x; - end = gridClip.x + gridClip.width; - current = symbol.x; - } else { - start = gridClip.y + gridClip.height; - end = gridClip.y; - current = symbol.y; - } - } - } - var ratio = end === start ? 0 : (current - start) / (end - start); - if (isAxisInverse) { - ratio = 1 - ratio; - } - var delay = isFunction(seriesDelay) ? seriesDelay(idx) : seriesDuration * ratio + seriesDelayValue; - var symbolPath = el.getSymbolPath(); - var text = symbolPath.getTextContent(); - el.attr({ - scaleX: 0, - scaleY: 0 - }); - el.animateTo({ - scaleX: 1, - scaleY: 1 - }, { - duration: 200, - setToFinal: true, - delay - }); - if (text) { - text.animateFrom({ - style: { - opacity: 0 - } - }, { - duration: 300, - delay - }); - } - symbolPath.disableLabelAnimation = true; - } - }); - }; - LineView2.prototype._initOrUpdateEndLabel = function(seriesModel, coordSys, inheritColor) { - var endLabelModel = seriesModel.getModel("endLabel"); - if (anyStateShowEndLabel(seriesModel)) { - var data_2 = seriesModel.getData(); - var polyline = this._polyline; - var points = data_2.getLayout("points"); - if (!points) { - polyline.removeTextContent(); - this._endLabel = null; - return; - } - var endLabel = this._endLabel; - if (!endLabel) { - endLabel = this._endLabel = new ZRText({ - z2: 200 - // should be higher than item symbol - }); - endLabel.ignoreClip = true; - polyline.setTextContent(this._endLabel); - polyline.disableLabelAnimation = true; - } - var dataIndex = getLastIndexNotNull(points); - if (dataIndex >= 0) { - setLabelStyle(polyline, getLabelStatesModels(seriesModel, "endLabel"), { - inheritColor, - labelFetcher: seriesModel, - labelDataIndex: dataIndex, - defaultText: function(dataIndex2, opt, interpolatedValue) { - return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex2); - }, - enableTextSetter: true - }, getEndLabelStateSpecified(endLabelModel, coordSys)); - polyline.textConfig.position = null; - } - } else if (this._endLabel) { - this._polyline.removeTextContent(); - this._endLabel = null; - } - }; - LineView2.prototype._endLabelOnDuring = function(percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) { - var endLabel = this._endLabel; - var polyline = this._polyline; - if (endLabel) { - if (percent < 1 && animationRecord.originalX == null) { - animationRecord.originalX = endLabel.x; - animationRecord.originalY = endLabel.y; - } - var points = data.getLayout("points"); - var seriesModel = data.hostModel; - var connectNulls = seriesModel.get("connectNulls"); - var precision = endLabelModel.get("precision"); - var distance = endLabelModel.get("distance") || 0; - var baseAxis = coordSys.getBaseAxis(); - var isHorizontal = baseAxis.isHorizontal(); - var isBaseInversed = baseAxis.inverse; - var clipShape = clipRect.shape; - var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y; - var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1); - var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1); - var dim = isHorizontal ? "x" : "y"; - var dataIndexRange = getIndexRange(points, xOrY, dim); - var indices = dataIndexRange.range; - var diff = indices[1] - indices[0]; - var value = void 0; - if (diff >= 1) { - if (diff > 1 && !connectNulls) { - var pt = getPointAtIndex(points, indices[0]); - endLabel.attr({ - x: pt[0] + distanceX, - y: pt[1] + distanceY - }); - valueAnimation && (value = seriesModel.getRawValue(indices[0])); - } else { - var pt = polyline.getPointOn(xOrY, dim); - pt && endLabel.attr({ - x: pt[0] + distanceX, - y: pt[1] + distanceY - }); - var startValue = seriesModel.getRawValue(indices[0]); - var endValue = seriesModel.getRawValue(indices[1]); - valueAnimation && (value = interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t)); - } - animationRecord.lastFrameIndex = indices[0]; - } else { - var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0; - var pt = getPointAtIndex(points, idx); - valueAnimation && (value = seriesModel.getRawValue(idx)); - endLabel.attr({ - x: pt[0] + distanceX, - y: pt[1] + distanceY - }); - } - if (valueAnimation) { - labelInner(endLabel).setLabelText(value); - } - } - }; - LineView2.prototype._doUpdateAnimation = function(data, stackedOnPoints, coordSys, api, step, valueOrigin, connectNulls) { - var polyline = this._polyline; - var polygon = this._polygon; - var seriesModel = data.hostModel; - var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin); - var current = diff.current; - var stackedOnCurrent = diff.stackedOnCurrent; - var next = diff.next; - var stackedOnNext = diff.stackedOnNext; - if (step) { - current = turnPointsIntoStep(diff.current, coordSys, step, connectNulls); - stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step, connectNulls); - next = turnPointsIntoStep(diff.next, coordSys, step, connectNulls); - stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step, connectNulls); - } - if (getBoundingDiff(current, next) > 3e3 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3e3) { - polyline.stopAnimation(); - polyline.setShape({ - points: next - }); - if (polygon) { - polygon.stopAnimation(); - polygon.setShape({ - points: next, - stackedOnPoints: stackedOnNext - }); - } - return; - } - polyline.shape.__points = diff.current; - polyline.shape.points = current; - var target = { - shape: { - points: next - } - }; - if (diff.current !== current) { - target.shape.__points = diff.next; - } - polyline.stopAnimation(); - updateProps(polyline, target, seriesModel); - if (polygon) { - polygon.setShape({ - // Reuse the points with polyline. - points: current, - stackedOnPoints: stackedOnCurrent - }); - polygon.stopAnimation(); - updateProps(polygon, { - shape: { - stackedOnPoints: stackedOnNext - } - }, seriesModel); - if (polyline.shape.points !== polygon.shape.points) { - polygon.shape.points = polyline.shape.points; - } - } - var updatedDataInfo = []; - var diffStatus = diff.status; - for (var i = 0; i < diffStatus.length; i++) { - var cmd = diffStatus[i].cmd; - if (cmd === "=") { - var el = data.getItemGraphicEl(diffStatus[i].idx1); - if (el) { - updatedDataInfo.push({ - el, - ptIdx: i - // Index of points - }); - } - } - } - if (polyline.animators && polyline.animators.length) { - polyline.animators[0].during(function() { - polygon && polygon.dirtyShape(); - var points = polyline.shape.__points; - for (var i2 = 0; i2 < updatedDataInfo.length; i2++) { - var el2 = updatedDataInfo[i2].el; - var offset = updatedDataInfo[i2].ptIdx * 2; - el2.x = points[offset]; - el2.y = points[offset + 1]; - el2.markRedraw(); - } - }); - } - }; - LineView2.prototype.remove = function(ecModel) { - var group = this.group; - var oldData = this._data; - this._lineGroup.removeAll(); - this._symbolDraw.remove(true); - oldData && oldData.eachItemGraphicEl(function(el, idx) { - if (el.__temp) { - group.remove(el); - oldData.setItemGraphicEl(idx, null); - } - }); - this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null; - }; - LineView2.type = "line"; - return LineView2; - }(ChartView) -); -const LineView$1 = LineView; -function pointsLayout(seriesType, forceStoreInTypedArray) { - return { - seriesType, - plan: createRenderPlanner(), - reset: function(seriesModel) { - var data = seriesModel.getData(); - var coordSys = seriesModel.coordinateSystem; - var pipelineContext = seriesModel.pipelineContext; - var useTypedArray = forceStoreInTypedArray || pipelineContext.large; - if (!coordSys) { - return; - } - var dims = map(coordSys.dimensions, function(dim) { - return data.mapDimension(dim); - }).slice(0, 2); - var dimLen = dims.length; - var stackResultDim = data.getCalculationInfo("stackResultDimension"); - if (isDimensionStacked(data, dims[0])) { - dims[0] = stackResultDim; - } - if (isDimensionStacked(data, dims[1])) { - dims[1] = stackResultDim; - } - var store = data.getStore(); - var dimIdx0 = data.getDimensionIndex(dims[0]); - var dimIdx1 = data.getDimensionIndex(dims[1]); - return dimLen && { - progress: function(params, data2) { - var segCount = params.end - params.start; - var points = useTypedArray && createFloat32Array(segCount * dimLen); - var tmpIn = []; - var tmpOut = []; - for (var i = params.start, offset = 0; i < params.end; i++) { - var point = void 0; - if (dimLen === 1) { - var x = store.get(dimIdx0, i); - point = coordSys.dataToPoint(x, null, tmpOut); - } else { - tmpIn[0] = store.get(dimIdx0, i); - tmpIn[1] = store.get(dimIdx1, i); - point = coordSys.dataToPoint(tmpIn, null, tmpOut); - } - if (useTypedArray) { - points[offset++] = point[0]; - points[offset++] = point[1]; - } else { - data2.setItemLayout(i, point.slice()); - } - } - useTypedArray && data2.setLayout("points", points); - } - }; - } - }; -} -var samplers = { - average: function(frame) { - var sum2 = 0; - var count = 0; - for (var i = 0; i < frame.length; i++) { - if (!isNaN(frame[i])) { - sum2 += frame[i]; - count++; - } - } - return count === 0 ? NaN : sum2 / count; - }, - sum: function(frame) { - var sum2 = 0; - for (var i = 0; i < frame.length; i++) { - sum2 += frame[i] || 0; - } - return sum2; - }, - max: function(frame) { - var max = -Infinity; - for (var i = 0; i < frame.length; i++) { - frame[i] > max && (max = frame[i]); - } - return isFinite(max) ? max : NaN; - }, - min: function(frame) { - var min = Infinity; - for (var i = 0; i < frame.length; i++) { - frame[i] < min && (min = frame[i]); - } - return isFinite(min) ? min : NaN; - }, - // TODO - // Median - nearest: function(frame) { - return frame[0]; - } -}; -var indexSampler = function(frame) { - return Math.round(frame.length / 2); -}; -function dataSample(seriesType) { - return { - seriesType, - // FIXME:TS never used, so comment it - // modifyOutputEnd: true, - reset: function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var sampling = seriesModel.get("sampling"); - var coordSys = seriesModel.coordinateSystem; - var count = data.count(); - if (count > 10 && coordSys.type === "cartesian2d" && sampling) { - var baseAxis = coordSys.getBaseAxis(); - var valueAxis = coordSys.getOtherAxis(baseAxis); - var extent = baseAxis.getExtent(); - var dpr = api.getDevicePixelRatio(); - var size = Math.abs(extent[1] - extent[0]) * (dpr || 1); - var rate = Math.round(count / size); - if (isFinite(rate) && rate > 1) { - if (sampling === "lttb") { - seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate)); - } - var sampler = void 0; - if (isString(sampling)) { - sampler = samplers[sampling]; - } else if (isFunction(sampling)) { - sampler = sampling; - } - if (sampler) { - seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler)); - } - } - } - } - }; -} -function install$l(registers) { - registers.registerChartView(LineView$1); - registers.registerSeriesModel(LineSeries); - registers.registerLayout(pointsLayout("line", true)); - registers.registerVisual({ - seriesType: "line", - reset: function(seriesModel) { - var data = seriesModel.getData(); - var lineStyle = seriesModel.getModel("lineStyle").getLineStyle(); - if (lineStyle && !lineStyle.stroke) { - lineStyle.stroke = data.getVisual("style").fill; - } - data.setVisual("legendLineStyle", lineStyle); - } - }); - registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample("line")); -} -var BaseBarSeriesModel = ( - /** @class */ - function(_super) { - __extends(BaseBarSeriesModel2, _super); - function BaseBarSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = BaseBarSeriesModel2.type; - return _this; - } - BaseBarSeriesModel2.prototype.getInitialData = function(option, ecModel) { - return createSeriesData(null, this, { - useEncodeDefaulter: true - }); - }; - BaseBarSeriesModel2.prototype.getMarkerPosition = function(value, dims, startingAtTick) { - var coordSys = this.coordinateSystem; - if (coordSys && coordSys.clampData) { - var clampData_1 = coordSys.clampData(value); - var pt_1 = coordSys.dataToPoint(clampData_1); - if (startingAtTick) { - each$2(coordSys.getAxes(), function(axis, idx) { - if (axis.type === "category" && dims != null) { - var tickCoords = axis.getTicksCoords(); - var targetTickId = clampData_1[idx]; - var isEnd = dims[idx] === "x1" || dims[idx] === "y1"; - if (isEnd) { - targetTickId += 1; - } - if (tickCoords.length < 2) { - return; - } else if (tickCoords.length === 2) { - pt_1[idx] = axis.toGlobalCoord(axis.getExtent()[isEnd ? 1 : 0]); - return; - } - var leftCoord = void 0; - var coord = void 0; - var stepTickValue = 1; - for (var i = 0; i < tickCoords.length; i++) { - var tickCoord = tickCoords[i].coord; - var tickValue = i === tickCoords.length - 1 ? tickCoords[i - 1].tickValue + stepTickValue : tickCoords[i].tickValue; - if (tickValue === targetTickId) { - coord = tickCoord; - break; - } else if (tickValue < targetTickId) { - leftCoord = tickCoord; - } else if (leftCoord != null && tickValue > targetTickId) { - coord = (tickCoord + leftCoord) / 2; - break; - } - if (i === 1) { - stepTickValue = tickValue - tickCoords[0].tickValue; - } - } - if (coord == null) { - if (!leftCoord) { - coord = tickCoords[0].coord; - } else if (leftCoord) { - coord = tickCoords[tickCoords.length - 1].coord; - } - } - pt_1[idx] = axis.toGlobalCoord(coord); - } - }); - } else { - var data = this.getData(); - var offset = data.getLayout("offset"); - var size = data.getLayout("size"); - var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1; - pt_1[offsetIndex] += offset + size / 2; - } - return pt_1; - } - return [NaN, NaN]; - }; - BaseBarSeriesModel2.type = "series.__base_bar__"; - BaseBarSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - coordinateSystem: "cartesian2d", - legendHoverLink: true, - // stack: null - // Cartesian coordinate system - // xAxisIndex: 0, - // yAxisIndex: 0, - barMinHeight: 0, - barMinAngle: 0, - // cursor: null, - large: false, - largeThreshold: 400, - progressive: 3e3, - progressiveChunkMode: "mod" - }; - return BaseBarSeriesModel2; - }(SeriesModel) -); -SeriesModel.registerClass(BaseBarSeriesModel); -const BaseBarSeriesModel$1 = BaseBarSeriesModel; -var BarSeriesModel = ( - /** @class */ - function(_super) { - __extends(BarSeriesModel2, _super); - function BarSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = BarSeriesModel2.type; - return _this; - } - BarSeriesModel2.prototype.getInitialData = function() { - return createSeriesData(null, this, { - useEncodeDefaulter: true, - createInvertedIndices: !!this.get("realtimeSort", true) || null - }); - }; - BarSeriesModel2.prototype.getProgressive = function() { - return this.get("large") ? this.get("progressive") : false; - }; - BarSeriesModel2.prototype.getProgressiveThreshold = function() { - var progressiveThreshold = this.get("progressiveThreshold"); - var largeThreshold = this.get("largeThreshold"); - if (largeThreshold > progressiveThreshold) { - progressiveThreshold = largeThreshold; - } - return progressiveThreshold; - }; - BarSeriesModel2.prototype.brushSelector = function(dataIndex, data, selectors) { - return selectors.rect(data.getItemLayout(dataIndex)); - }; - BarSeriesModel2.type = "series.bar"; - BarSeriesModel2.dependencies = ["grid", "polar"]; - BarSeriesModel2.defaultOption = inheritDefaultOption(BaseBarSeriesModel$1.defaultOption, { - // If clipped - // Only available on cartesian2d - clip: true, - roundCap: false, - showBackground: false, - backgroundStyle: { - color: "rgba(180, 180, 180, 0.2)", - borderColor: null, - borderWidth: 0, - borderType: "solid", - borderRadius: 0, - shadowBlur: 0, - shadowColor: null, - shadowOffsetX: 0, - shadowOffsetY: 0, - opacity: 1 - }, - select: { - itemStyle: { - borderColor: "#212121" - } - }, - realtimeSort: false - }); - return BarSeriesModel2; - }(BaseBarSeriesModel$1) -); -const BarSeries = BarSeriesModel; -var SausageShape = ( - /** @class */ - function() { - function SausageShape2() { - this.cx = 0; - this.cy = 0; - this.r0 = 0; - this.r = 0; - this.startAngle = 0; - this.endAngle = Math.PI * 2; - this.clockwise = true; - } - return SausageShape2; - }() -); -var SausagePath = ( - /** @class */ - function(_super) { - __extends(SausagePath2, _super); - function SausagePath2(opts) { - var _this = _super.call(this, opts) || this; - _this.type = "sausage"; - return _this; - } - SausagePath2.prototype.getDefaultShape = function() { - return new SausageShape(); - }; - SausagePath2.prototype.buildPath = function(ctx, shape) { - var cx = shape.cx; - var cy = shape.cy; - var r0 = Math.max(shape.r0 || 0, 0); - var r = Math.max(shape.r, 0); - var dr = (r - r0) * 0.5; - var rCenter = r0 + dr; - var startAngle = shape.startAngle; - var endAngle = shape.endAngle; - var clockwise = shape.clockwise; - var PI22 = Math.PI * 2; - var lessThanCircle = clockwise ? endAngle - startAngle < PI22 : startAngle - endAngle < PI22; - if (!lessThanCircle) { - startAngle = endAngle - (clockwise ? PI22 : -PI22); - } - var unitStartX = Math.cos(startAngle); - var unitStartY = Math.sin(startAngle); - var unitEndX = Math.cos(endAngle); - var unitEndY = Math.sin(endAngle); - if (lessThanCircle) { - ctx.moveTo(unitStartX * r0 + cx, unitStartY * r0 + cy); - ctx.arc(unitStartX * rCenter + cx, unitStartY * rCenter + cy, dr, -Math.PI + startAngle, startAngle, !clockwise); - } else { - ctx.moveTo(unitStartX * r + cx, unitStartY * r + cy); - } - ctx.arc(cx, cy, r, startAngle, endAngle, !clockwise); - ctx.arc(unitEndX * rCenter + cx, unitEndY * rCenter + cy, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise); - if (r0 !== 0) { - ctx.arc(cx, cy, r0, endAngle, startAngle, clockwise); - } - }; - return SausagePath2; - }(Path) -); -const Sausage = SausagePath; -function createSectorCalculateTextPosition(positionMapping, opts) { - opts = opts || {}; - var isRoundCap = opts.isRoundCap; - return function(out, opts2, boundingRect) { - var textPosition = opts2.position; - if (!textPosition || textPosition instanceof Array) { - return calculateTextPosition(out, opts2, boundingRect); - } - var mappedSectorPosition = positionMapping(textPosition); - var distance = opts2.distance != null ? opts2.distance : 5; - var sector = this.shape; - var cx = sector.cx; - var cy = sector.cy; - var r = sector.r; - var r0 = sector.r0; - var middleR = (r + r0) / 2; - var startAngle = sector.startAngle; - var endAngle = sector.endAngle; - var middleAngle = (startAngle + endAngle) / 2; - var extraDist = isRoundCap ? Math.abs(r - r0) / 2 : 0; - var mathCos = Math.cos; - var mathSin = Math.sin; - var x = cx + r * mathCos(startAngle); - var y = cy + r * mathSin(startAngle); - var textAlign = "left"; - var textVerticalAlign = "top"; - switch (mappedSectorPosition) { - case "startArc": - x = cx + (r0 - distance) * mathCos(middleAngle); - y = cy + (r0 - distance) * mathSin(middleAngle); - textAlign = "center"; - textVerticalAlign = "top"; - break; - case "insideStartArc": - x = cx + (r0 + distance) * mathCos(middleAngle); - y = cy + (r0 + distance) * mathSin(middleAngle); - textAlign = "center"; - textVerticalAlign = "bottom"; - break; - case "startAngle": - x = cx + middleR * mathCos(startAngle) + adjustAngleDistanceX(startAngle, distance + extraDist, false); - y = cy + middleR * mathSin(startAngle) + adjustAngleDistanceY(startAngle, distance + extraDist, false); - textAlign = "right"; - textVerticalAlign = "middle"; - break; - case "insideStartAngle": - x = cx + middleR * mathCos(startAngle) + adjustAngleDistanceX(startAngle, -distance + extraDist, false); - y = cy + middleR * mathSin(startAngle) + adjustAngleDistanceY(startAngle, -distance + extraDist, false); - textAlign = "left"; - textVerticalAlign = "middle"; - break; - case "middle": - x = cx + middleR * mathCos(middleAngle); - y = cy + middleR * mathSin(middleAngle); - textAlign = "center"; - textVerticalAlign = "middle"; - break; - case "endArc": - x = cx + (r + distance) * mathCos(middleAngle); - y = cy + (r + distance) * mathSin(middleAngle); - textAlign = "center"; - textVerticalAlign = "bottom"; - break; - case "insideEndArc": - x = cx + (r - distance) * mathCos(middleAngle); - y = cy + (r - distance) * mathSin(middleAngle); - textAlign = "center"; - textVerticalAlign = "top"; - break; - case "endAngle": - x = cx + middleR * mathCos(endAngle) + adjustAngleDistanceX(endAngle, distance + extraDist, true); - y = cy + middleR * mathSin(endAngle) + adjustAngleDistanceY(endAngle, distance + extraDist, true); - textAlign = "left"; - textVerticalAlign = "middle"; - break; - case "insideEndAngle": - x = cx + middleR * mathCos(endAngle) + adjustAngleDistanceX(endAngle, -distance + extraDist, true); - y = cy + middleR * mathSin(endAngle) + adjustAngleDistanceY(endAngle, -distance + extraDist, true); - textAlign = "right"; - textVerticalAlign = "middle"; - break; - default: - return calculateTextPosition(out, opts2, boundingRect); - } - out = out || {}; - out.x = x; - out.y = y; - out.align = textAlign; - out.verticalAlign = textVerticalAlign; - return out; - }; -} -function setSectorTextRotation(sector, textPosition, positionMapping, rotateType) { - if (isNumber(rotateType)) { - sector.setTextConfig({ - rotation: rotateType - }); - return; - } else if (isArray(textPosition)) { - sector.setTextConfig({ - rotation: 0 - }); - return; - } - var shape = sector.shape; - var startAngle = shape.clockwise ? shape.startAngle : shape.endAngle; - var endAngle = shape.clockwise ? shape.endAngle : shape.startAngle; - var middleAngle = (startAngle + endAngle) / 2; - var anchorAngle; - var mappedSectorPosition = positionMapping(textPosition); - switch (mappedSectorPosition) { - case "startArc": - case "insideStartArc": - case "middle": - case "insideEndArc": - case "endArc": - anchorAngle = middleAngle; - break; - case "startAngle": - case "insideStartAngle": - anchorAngle = startAngle; - break; - case "endAngle": - case "insideEndAngle": - anchorAngle = endAngle; - break; - default: - sector.setTextConfig({ - rotation: 0 - }); - return; - } - var rotate = Math.PI * 1.5 - anchorAngle; - if (mappedSectorPosition === "middle" && rotate > Math.PI / 2 && rotate < Math.PI * 1.5) { - rotate -= Math.PI; - } - sector.setTextConfig({ - rotation: rotate - }); -} -function adjustAngleDistanceX(angle, distance, isEnd) { - return distance * Math.sin(angle) * (isEnd ? -1 : 1); -} -function adjustAngleDistanceY(angle, distance, isEnd) { - return distance * Math.cos(angle) * (isEnd ? 1 : -1); -} -function getSectorCornerRadius(model, shape, zeroIfNull) { - var cornerRadius = model.get("borderRadius"); - if (cornerRadius == null) { - return zeroIfNull ? { - cornerRadius: 0 - } : null; - } - if (!isArray(cornerRadius)) { - cornerRadius = [cornerRadius, cornerRadius, cornerRadius, cornerRadius]; - } - var dr = Math.abs(shape.r || 0 - shape.r0 || 0); - return { - cornerRadius: map(cornerRadius, function(cr) { - return parsePercent(cr, dr); - }) - }; -} -var mathMax$1 = Math.max; -var mathMin$1 = Math.min; -function getClipArea(coord, data) { - var coordSysClipArea = coord.getArea && coord.getArea(); - if (isCoordinateSystemType(coord, "cartesian2d")) { - var baseAxis = coord.getBaseAxis(); - if (baseAxis.type !== "category" || !baseAxis.onBand) { - var expandWidth = data.getLayout("bandWidth"); - if (baseAxis.isHorizontal()) { - coordSysClipArea.x -= expandWidth; - coordSysClipArea.width += expandWidth * 2; - } else { - coordSysClipArea.y -= expandWidth; - coordSysClipArea.height += expandWidth * 2; - } - } - } - return coordSysClipArea; -} -var BarView = ( - /** @class */ - function(_super) { - __extends(BarView2, _super); - function BarView2() { - var _this = _super.call(this) || this; - _this.type = BarView2.type; - _this._isFirstFrame = true; - return _this; - } - BarView2.prototype.render = function(seriesModel, ecModel, api, payload) { - this._model = seriesModel; - this._removeOnRenderedListener(api); - this._updateDrawMode(seriesModel); - var coordinateSystemType = seriesModel.get("coordinateSystem"); - if (coordinateSystemType === "cartesian2d" || coordinateSystemType === "polar") { - this._progressiveEls = null; - this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload); - } - }; - BarView2.prototype.incrementalPrepareRender = function(seriesModel) { - this._clear(); - this._updateDrawMode(seriesModel); - this._updateLargeClip(seriesModel); - }; - BarView2.prototype.incrementalRender = function(params, seriesModel) { - this._progressiveEls = []; - this._incrementalRenderLarge(params, seriesModel); - }; - BarView2.prototype.eachRendered = function(cb) { - traverseElements(this._progressiveEls || this.group, cb); - }; - BarView2.prototype._updateDrawMode = function(seriesModel) { - var isLargeDraw = seriesModel.pipelineContext.large; - if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) { - this._isLargeDraw = isLargeDraw; - this._clear(); - } - }; - BarView2.prototype._renderNormal = function(seriesModel, ecModel, api, payload) { - var group = this.group; - var data = seriesModel.getData(); - var oldData = this._data; - var coord = seriesModel.coordinateSystem; - var baseAxis = coord.getBaseAxis(); - var isHorizontalOrRadial; - if (coord.type === "cartesian2d") { - isHorizontalOrRadial = baseAxis.isHorizontal(); - } else if (coord.type === "polar") { - isHorizontalOrRadial = baseAxis.dim === "angle"; - } - var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null; - var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord); - if (realtimeSortCfg) { - this._enableRealtimeSort(realtimeSortCfg, data, api); - } - var needsClip = seriesModel.get("clip", true) || realtimeSortCfg; - var coordSysClipArea = getClipArea(coord, data); - group.removeClipPath(); - var roundCap = seriesModel.get("roundCap", true); - var drawBackground = seriesModel.get("showBackground", true); - var backgroundModel = seriesModel.getModel("backgroundStyle"); - var barBorderRadius = backgroundModel.get("borderRadius") || 0; - var bgEls = []; - var oldBgEls = this._backgroundEls; - var isInitSort = payload && payload.isInitSort; - var isChangeOrder = payload && payload.type === "changeAxisOrder"; - function createBackground(dataIndex) { - var bgLayout = getLayout[coord.type](data, dataIndex); - var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout); - bgEl.useStyle(backgroundModel.getItemStyle()); - if (coord.type === "cartesian2d") { - bgEl.setShape("r", barBorderRadius); - } else { - bgEl.setShape("cornerRadius", barBorderRadius); - } - bgEls[dataIndex] = bgEl; - return bgEl; - } - data.diff(oldData).add(function(dataIndex) { - var itemModel = data.getItemModel(dataIndex); - var layout2 = getLayout[coord.type](data, dataIndex, itemModel); - if (drawBackground) { - createBackground(dataIndex); - } - if (!data.hasValue(dataIndex) || !isValidLayout[coord.type](layout2)) { - return; - } - var isClipped = false; - if (needsClip) { - isClipped = clip[coord.type](coordSysClipArea, layout2); - } - var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout2, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap); - if (realtimeSortCfg) { - el.forceLabelAnimation = true; - } - updateStyle(el, data, dataIndex, itemModel, layout2, seriesModel, isHorizontalOrRadial, coord.type === "polar"); - if (isInitSort) { - el.attr({ - shape: layout2 - }); - } else if (realtimeSortCfg) { - updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout2, dataIndex, isHorizontalOrRadial, false, false); - } else { - initProps(el, { - shape: layout2 - }, seriesModel, dataIndex); - } - data.setItemGraphicEl(dataIndex, el); - group.add(el); - el.ignore = isClipped; - }).update(function(newIndex, oldIndex) { - var itemModel = data.getItemModel(newIndex); - var layout2 = getLayout[coord.type](data, newIndex, itemModel); - if (drawBackground) { - var bgEl = void 0; - if (oldBgEls.length === 0) { - bgEl = createBackground(oldIndex); - } else { - bgEl = oldBgEls[oldIndex]; - bgEl.useStyle(backgroundModel.getItemStyle()); - if (coord.type === "cartesian2d") { - bgEl.setShape("r", barBorderRadius); - } else { - bgEl.setShape("cornerRadius", barBorderRadius); - } - bgEls[newIndex] = bgEl; - } - var bgLayout = getLayout[coord.type](data, newIndex); - var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord); - updateProps(bgEl, { - shape - }, animationModel, newIndex); - } - var el = oldData.getItemGraphicEl(oldIndex); - if (!data.hasValue(newIndex) || !isValidLayout[coord.type](layout2)) { - group.remove(el); - return; - } - var isClipped = false; - if (needsClip) { - isClipped = clip[coord.type](coordSysClipArea, layout2); - if (isClipped) { - group.remove(el); - } - } - if (!el) { - el = elementCreator[coord.type](seriesModel, data, newIndex, layout2, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap); - } else { - saveOldStyle(el); - } - if (realtimeSortCfg) { - el.forceLabelAnimation = true; - } - if (isChangeOrder) { - var textEl = el.getTextContent(); - if (textEl) { - var labelInnerStore = labelInner(textEl); - if (labelInnerStore.prevValue != null) { - labelInnerStore.prevValue = labelInnerStore.value; - } - } - } else { - updateStyle(el, data, newIndex, itemModel, layout2, seriesModel, isHorizontalOrRadial, coord.type === "polar"); - } - if (isInitSort) { - el.attr({ - shape: layout2 - }); - } else if (realtimeSortCfg) { - updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout2, newIndex, isHorizontalOrRadial, true, isChangeOrder); - } else { - updateProps(el, { - shape: layout2 - }, seriesModel, newIndex, null); - } - data.setItemGraphicEl(newIndex, el); - el.ignore = isClipped; - group.add(el); - }).remove(function(dataIndex) { - var el = oldData.getItemGraphicEl(dataIndex); - el && removeElementWithFadeOut(el, seriesModel, dataIndex); - }).execute(); - var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group$1()); - bgGroup.removeAll(); - for (var i = 0; i < bgEls.length; ++i) { - bgGroup.add(bgEls[i]); - } - group.add(bgGroup); - this._backgroundEls = bgEls; - this._data = data; - }; - BarView2.prototype._renderLarge = function(seriesModel, ecModel, api) { - this._clear(); - createLarge$1(seriesModel, this.group); - this._updateLargeClip(seriesModel); - }; - BarView2.prototype._incrementalRenderLarge = function(params, seriesModel) { - this._removeBackground(); - createLarge$1(seriesModel, this.group, this._progressiveEls, true); - }; - BarView2.prototype._updateLargeClip = function(seriesModel) { - var clipPath = seriesModel.get("clip", true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel); - var group = this.group; - if (clipPath) { - group.setClipPath(clipPath); - } else { - group.removeClipPath(); - } - }; - BarView2.prototype._enableRealtimeSort = function(realtimeSortCfg, data, api) { - var _this = this; - if (!data.count()) { - return; - } - var baseAxis = realtimeSortCfg.baseAxis; - if (this._isFirstFrame) { - this._dispatchInitSort(data, realtimeSortCfg, api); - this._isFirstFrame = false; - } else { - var orderMapping_1 = function(idx) { - var el = data.getItemGraphicEl(idx); - var shape = el && el.shape; - return shape && // The result should be consistent with the initial sort by data value. - // Do not support the case that both positive and negative exist. - Math.abs(baseAxis.isHorizontal() ? shape.height : shape.width) || 0; - }; - this._onRendered = function() { - _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api); - }; - api.getZr().on("rendered", this._onRendered); - } - }; - BarView2.prototype._dataSort = function(data, baseAxis, orderMapping) { - var info = []; - data.each(data.mapDimension(baseAxis.dim), function(ordinalNumber, dataIdx) { - var mappedValue = orderMapping(dataIdx); - mappedValue = mappedValue == null ? NaN : mappedValue; - info.push({ - dataIndex: dataIdx, - mappedValue, - ordinalNumber - }); - }); - info.sort(function(a, b) { - return b.mappedValue - a.mappedValue; - }); - return { - ordinalNumbers: map(info, function(item) { - return item.ordinalNumber; - }) - }; - }; - BarView2.prototype._isOrderChangedWithinSameData = function(data, orderMapping, baseAxis) { - var scale2 = baseAxis.scale; - var ordinalDataDim = data.mapDimension(baseAxis.dim); - var lastValue = Number.MAX_VALUE; - for (var tickNum = 0, len2 = scale2.getOrdinalMeta().categories.length; tickNum < len2; ++tickNum) { - var rawIdx = data.rawIndexOf(ordinalDataDim, scale2.getRawOrdinalNumber(tickNum)); - var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx)); - if (value > lastValue) { - return true; - } - lastValue = value; - } - return false; - }; - BarView2.prototype._isOrderDifferentInView = function(orderInfo, baseAxis) { - var scale2 = baseAxis.scale; - var extent = scale2.getExtent(); - var tickNum = Math.max(0, extent[0]); - var tickMax = Math.min(extent[1], scale2.getOrdinalMeta().categories.length - 1); - for (; tickNum <= tickMax; ++tickNum) { - if (orderInfo.ordinalNumbers[tickNum] !== scale2.getRawOrdinalNumber(tickNum)) { - return true; - } - } - }; - BarView2.prototype._updateSortWithinSameData = function(data, orderMapping, baseAxis, api) { - if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) { - return; - } - var sortInfo = this._dataSort(data, baseAxis, orderMapping); - if (this._isOrderDifferentInView(sortInfo, baseAxis)) { - this._removeOnRenderedListener(api); - api.dispatchAction({ - type: "changeAxisOrder", - componentType: baseAxis.dim + "Axis", - axisId: baseAxis.index, - sortInfo - }); - } - }; - BarView2.prototype._dispatchInitSort = function(data, realtimeSortCfg, api) { - var baseAxis = realtimeSortCfg.baseAxis; - var sortResult = this._dataSort(data, baseAxis, function(dataIdx) { - return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx); - }); - api.dispatchAction({ - type: "changeAxisOrder", - componentType: baseAxis.dim + "Axis", - isInitSort: true, - axisId: baseAxis.index, - sortInfo: sortResult - }); - }; - BarView2.prototype.remove = function(ecModel, api) { - this._clear(this._model); - this._removeOnRenderedListener(api); - }; - BarView2.prototype.dispose = function(ecModel, api) { - this._removeOnRenderedListener(api); - }; - BarView2.prototype._removeOnRenderedListener = function(api) { - if (this._onRendered) { - api.getZr().off("rendered", this._onRendered); - this._onRendered = null; - } - }; - BarView2.prototype._clear = function(model) { - var group = this.group; - var data = this._data; - if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) { - this._removeBackground(); - this._backgroundEls = []; - data.eachItemGraphicEl(function(el) { - removeElementWithFadeOut(el, model, getECData(el).dataIndex); - }); - } else { - group.removeAll(); - } - this._data = null; - this._isFirstFrame = true; - }; - BarView2.prototype._removeBackground = function() { - this.group.remove(this._backgroundGroup); - this._backgroundGroup = null; - }; - BarView2.type = "bar"; - return BarView2; - }(ChartView) -); -var clip = { - cartesian2d: function(coordSysBoundingRect, layout2) { - var signWidth = layout2.width < 0 ? -1 : 1; - var signHeight = layout2.height < 0 ? -1 : 1; - if (signWidth < 0) { - layout2.x += layout2.width; - layout2.width = -layout2.width; - } - if (signHeight < 0) { - layout2.y += layout2.height; - layout2.height = -layout2.height; - } - var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width; - var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height; - var x = mathMax$1(layout2.x, coordSysBoundingRect.x); - var x2 = mathMin$1(layout2.x + layout2.width, coordSysX2); - var y = mathMax$1(layout2.y, coordSysBoundingRect.y); - var y2 = mathMin$1(layout2.y + layout2.height, coordSysY2); - var xClipped = x2 < x; - var yClipped = y2 < y; - layout2.x = xClipped && x > coordSysX2 ? x2 : x; - layout2.y = yClipped && y > coordSysY2 ? y2 : y; - layout2.width = xClipped ? 0 : x2 - x; - layout2.height = yClipped ? 0 : y2 - y; - if (signWidth < 0) { - layout2.x += layout2.width; - layout2.width = -layout2.width; - } - if (signHeight < 0) { - layout2.y += layout2.height; - layout2.height = -layout2.height; - } - return xClipped || yClipped; - }, - polar: function(coordSysClipArea, layout2) { - var signR = layout2.r0 <= layout2.r ? 1 : -1; - if (signR < 0) { - var tmp = layout2.r; - layout2.r = layout2.r0; - layout2.r0 = tmp; - } - var r = mathMin$1(layout2.r, coordSysClipArea.r); - var r0 = mathMax$1(layout2.r0, coordSysClipArea.r0); - layout2.r = r; - layout2.r0 = r0; - var clipped = r - r0 < 0; - if (signR < 0) { - var tmp = layout2.r; - layout2.r = layout2.r0; - layout2.r0 = tmp; - } - return clipped; - } -}; -var elementCreator = { - cartesian2d: function(seriesModel, data, newIndex, layout2, isHorizontal, animationModel, axisModel, isUpdate, roundCap) { - var rect = new Rect$1({ - shape: extend({}, layout2), - z2: 1 - }); - rect.__dataIndex = newIndex; - rect.name = "item"; - if (animationModel) { - var rectShape = rect.shape; - var animateProperty = isHorizontal ? "height" : "width"; - rectShape[animateProperty] = 0; - } - return rect; - }, - polar: function(seriesModel, data, newIndex, layout2, isRadial, animationModel, axisModel, isUpdate, roundCap) { - var ShapeClass = !isRadial && roundCap ? Sausage : Sector; - var sector = new ShapeClass({ - shape: layout2, - z2: 1 - }); - sector.name = "item"; - var positionMap = createPolarPositionMapping(isRadial); - sector.calculateTextPosition = createSectorCalculateTextPosition(positionMap, { - isRoundCap: ShapeClass === Sausage - }); - if (animationModel) { - var sectorShape = sector.shape; - var animateProperty = isRadial ? "r" : "endAngle"; - var animateTarget = {}; - sectorShape[animateProperty] = isRadial ? layout2.r0 : layout2.startAngle; - animateTarget[animateProperty] = layout2[animateProperty]; - (isUpdate ? updateProps : initProps)(sector, { - shape: animateTarget - // __value: typeof dataValue === 'string' ? parseInt(dataValue, 10) : dataValue - }, animationModel); - } - return sector; - } -}; -function shouldRealtimeSort(seriesModel, coordSys) { - var realtimeSortOption = seriesModel.get("realtimeSort", true); - var baseAxis = coordSys.getBaseAxis(); - if (realtimeSortOption && baseAxis.type === "category" && coordSys.type === "cartesian2d") { - return { - baseAxis, - otherAxis: coordSys.getOtherAxis(baseAxis) - }; - } -} -function updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout2, newIndex, isHorizontal, isUpdate, isChangeOrder) { - var seriesTarget; - var axisTarget; - if (isHorizontal) { - axisTarget = { - x: layout2.x, - width: layout2.width - }; - seriesTarget = { - y: layout2.y, - height: layout2.height - }; - } else { - axisTarget = { - y: layout2.y, - height: layout2.height - }; - seriesTarget = { - x: layout2.x, - width: layout2.width - }; - } - if (!isChangeOrder) { - (isUpdate ? updateProps : initProps)(el, { - shape: seriesTarget - }, seriesAnimationModel, newIndex, null); - } - var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null; - (isUpdate ? updateProps : initProps)(el, { - shape: axisTarget - }, axisAnimationModel, newIndex); -} -function checkPropertiesNotValid(obj, props) { - for (var i = 0; i < props.length; i++) { - if (!isFinite(obj[props[i]])) { - return true; - } - } - return false; -} -var rectPropties = ["x", "y", "width", "height"]; -var polarPropties = ["cx", "cy", "r", "startAngle", "endAngle"]; -var isValidLayout = { - cartesian2d: function(layout2) { - return !checkPropertiesNotValid(layout2, rectPropties); - }, - polar: function(layout2) { - return !checkPropertiesNotValid(layout2, polarPropties); - } -}; -var getLayout = { - // itemModel is only used to get borderWidth, which is not needed - // when calculating bar background layout. - cartesian2d: function(data, dataIndex, itemModel) { - var layout2 = data.getItemLayout(dataIndex); - var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout2) : 0; - var signX = layout2.width > 0 ? 1 : -1; - var signY = layout2.height > 0 ? 1 : -1; - return { - x: layout2.x + signX * fixedLineWidth / 2, - y: layout2.y + signY * fixedLineWidth / 2, - width: layout2.width - signX * fixedLineWidth, - height: layout2.height - signY * fixedLineWidth - }; - }, - polar: function(data, dataIndex, itemModel) { - var layout2 = data.getItemLayout(dataIndex); - return { - cx: layout2.cx, - cy: layout2.cy, - r0: layout2.r0, - r: layout2.r, - startAngle: layout2.startAngle, - endAngle: layout2.endAngle, - clockwise: layout2.clockwise - }; - } -}; -function isZeroOnPolar(layout2) { - return layout2.startAngle != null && layout2.endAngle != null && layout2.startAngle === layout2.endAngle; -} -function createPolarPositionMapping(isRadial) { - return function(isRadial2) { - var arcOrAngle = isRadial2 ? "Arc" : "Angle"; - return function(position2) { - switch (position2) { - case "start": - case "insideStart": - case "end": - case "insideEnd": - return position2 + arcOrAngle; - default: - return position2; - } - }; - }(isRadial); -} -function updateStyle(el, data, dataIndex, itemModel, layout2, seriesModel, isHorizontalOrRadial, isPolar) { - var style = data.getItemVisual(dataIndex, "style"); - if (!isPolar) { - var borderRadius = itemModel.get(["itemStyle", "borderRadius"]) || 0; - el.setShape("r", borderRadius); - } else if (!seriesModel.get("roundCap")) { - var sectorShape = el.shape; - var cornerRadius = getSectorCornerRadius(itemModel.getModel("itemStyle"), sectorShape, true); - extend(sectorShape, cornerRadius); - el.setShape(sectorShape); - } - el.useStyle(style); - var cursorStyle = itemModel.getShallow("cursor"); - cursorStyle && el.attr("cursor", cursorStyle); - var labelPositionOutside = isPolar ? isHorizontalOrRadial ? layout2.r >= layout2.r0 ? "endArc" : "startArc" : layout2.endAngle >= layout2.startAngle ? "endAngle" : "startAngle" : isHorizontalOrRadial ? layout2.height >= 0 ? "bottom" : "top" : layout2.width >= 0 ? "right" : "left"; - var labelStatesModels = getLabelStatesModels(itemModel); - setLabelStyle(el, labelStatesModels, { - labelFetcher: seriesModel, - labelDataIndex: dataIndex, - defaultText: getDefaultLabel(seriesModel.getData(), dataIndex), - inheritColor: style.fill, - defaultOpacity: style.opacity, - defaultOutsidePosition: labelPositionOutside - }); - var label = el.getTextContent(); - if (isPolar && label) { - var position2 = itemModel.get(["label", "position"]); - el.textConfig.inside = position2 === "middle" ? true : null; - setSectorTextRotation(el, position2 === "outside" ? labelPositionOutside : position2, createPolarPositionMapping(isHorizontalOrRadial), itemModel.get(["label", "rotate"])); - } - setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function(value) { - return getDefaultInterpolatedLabel(data, value); - }); - var emphasisModel = itemModel.getModel(["emphasis"]); - toggleHoverEmphasis(el, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - setStatesStylesFromModel(el, itemModel); - if (isZeroOnPolar(layout2)) { - el.style.fill = "none"; - el.style.stroke = "none"; - each$2(el.states, function(state) { - if (state.style) { - state.style.fill = state.style.stroke = "none"; - } - }); - } -} -function getLineWidth(itemModel, rawLayout) { - var borderColor = itemModel.get(["itemStyle", "borderColor"]); - if (!borderColor || borderColor === "none") { - return 0; - } - var lineWidth = itemModel.get(["itemStyle", "borderWidth"]) || 0; - var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width); - var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height); - return Math.min(lineWidth, width, height); -} -var LagePathShape = ( - /** @class */ - function() { - function LagePathShape2() { - } - return LagePathShape2; - }() -); -var LargePath = ( - /** @class */ - function(_super) { - __extends(LargePath2, _super); - function LargePath2(opts) { - var _this = _super.call(this, opts) || this; - _this.type = "largeBar"; - return _this; - } - LargePath2.prototype.getDefaultShape = function() { - return new LagePathShape(); - }; - LargePath2.prototype.buildPath = function(ctx, shape) { - var points = shape.points; - var baseDimIdx = this.baseDimIdx; - var valueDimIdx = 1 - this.baseDimIdx; - var startPoint = []; - var size = []; - var barWidth = this.barWidth; - for (var i = 0; i < points.length; i += 3) { - size[baseDimIdx] = barWidth; - size[valueDimIdx] = points[i + 2]; - startPoint[baseDimIdx] = points[i + baseDimIdx]; - startPoint[valueDimIdx] = points[i + valueDimIdx]; - ctx.rect(startPoint[0], startPoint[1], size[0], size[1]); - } - }; - return LargePath2; - }(Path) -); -function createLarge$1(seriesModel, group, progressiveEls, incremental) { - var data = seriesModel.getData(); - var baseDimIdx = data.getLayout("valueAxisHorizontal") ? 1 : 0; - var largeDataIndices = data.getLayout("largeDataIndices"); - var barWidth = data.getLayout("size"); - var backgroundModel = seriesModel.getModel("backgroundStyle"); - var bgPoints = data.getLayout("largeBackgroundPoints"); - if (bgPoints) { - var bgEl = new LargePath({ - shape: { - points: bgPoints - }, - incremental: !!incremental, - silent: true, - z2: 0 - }); - bgEl.baseDimIdx = baseDimIdx; - bgEl.largeDataIndices = largeDataIndices; - bgEl.barWidth = barWidth; - bgEl.useStyle(backgroundModel.getItemStyle()); - group.add(bgEl); - progressiveEls && progressiveEls.push(bgEl); - } - var el = new LargePath({ - shape: { - points: data.getLayout("largePoints") - }, - incremental: !!incremental, - ignoreCoarsePointer: true, - z2: 1 - }); - el.baseDimIdx = baseDimIdx; - el.largeDataIndices = largeDataIndices; - el.barWidth = barWidth; - group.add(el); - el.useStyle(data.getVisual("style")); - getECData(el).seriesIndex = seriesModel.seriesIndex; - if (!seriesModel.get("silent")) { - el.on("mousedown", largePathUpdateDataIndex); - el.on("mousemove", largePathUpdateDataIndex); - } - progressiveEls && progressiveEls.push(el); -} -var largePathUpdateDataIndex = throttle(function(event) { - var largePath = this; - var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY); - getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null; -}, 30, false); -function largePathFindDataIndex(largePath, x, y) { - var baseDimIdx = largePath.baseDimIdx; - var valueDimIdx = 1 - baseDimIdx; - var points = largePath.shape.points; - var largeDataIndices = largePath.largeDataIndices; - var startPoint = []; - var size = []; - var barWidth = largePath.barWidth; - for (var i = 0, len2 = points.length / 3; i < len2; i++) { - var ii = i * 3; - size[baseDimIdx] = barWidth; - size[valueDimIdx] = points[ii + 2]; - startPoint[baseDimIdx] = points[ii + baseDimIdx]; - startPoint[valueDimIdx] = points[ii + valueDimIdx]; - if (size[valueDimIdx] < 0) { - startPoint[valueDimIdx] += size[valueDimIdx]; - size[valueDimIdx] = -size[valueDimIdx]; - } - if (x >= startPoint[0] && x <= startPoint[0] + size[0] && y >= startPoint[1] && y <= startPoint[1] + size[1]) { - return largeDataIndices[i]; - } - } - return -1; -} -function createBackgroundShape(isHorizontalOrRadial, layout2, coord) { - if (isCoordinateSystemType(coord, "cartesian2d")) { - var rectShape = layout2; - var coordLayout = coord.getArea(); - return { - x: isHorizontalOrRadial ? rectShape.x : coordLayout.x, - y: isHorizontalOrRadial ? coordLayout.y : rectShape.y, - width: isHorizontalOrRadial ? rectShape.width : coordLayout.width, - height: isHorizontalOrRadial ? coordLayout.height : rectShape.height - }; - } else { - var coordLayout = coord.getArea(); - var sectorShape = layout2; - return { - cx: coordLayout.cx, - cy: coordLayout.cy, - r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0, - r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r, - startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0, - endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2 - }; - } -} -function createBackgroundEl(coord, isHorizontalOrRadial, layout2) { - var ElementClz = coord.type === "polar" ? Sector : Rect$1; - return new ElementClz({ - shape: createBackgroundShape(isHorizontalOrRadial, layout2, coord), - silent: true, - z2: 0 - }); -} -const BarView$1 = BarView; -function install$k(registers) { - registers.registerChartView(BarView$1); - registers.registerSeriesModel(BarSeries); - registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, curry(layout, "bar")); - registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, createProgressiveLayout("bar")); - registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample("bar")); - registers.registerAction({ - type: "changeAxisOrder", - event: "changeAxisOrder", - update: "update" - }, function(payload, ecModel) { - var componentType = payload.componentType || "series"; - ecModel.eachComponent({ - mainType: componentType, - query: payload - }, function(componentModel) { - if (payload.sortInfo) { - componentModel.axis.setCategorySortInfo(payload.sortInfo); - } - }); - }); -} -var PI2 = Math.PI * 2; -var RADIAN$2 = Math.PI / 180; -function getViewRect$4(seriesModel, api) { - return getLayoutRect(seriesModel.getBoxLayoutParams(), { - width: api.getWidth(), - height: api.getHeight() - }); -} -function getBasicPieLayout(seriesModel, api) { - var viewRect = getViewRect$4(seriesModel, api); - var center2 = seriesModel.get("center"); - var radius = seriesModel.get("radius"); - if (!isArray(radius)) { - radius = [0, radius]; - } - var width = parsePercent$1(viewRect.width, api.getWidth()); - var height = parsePercent$1(viewRect.height, api.getHeight()); - var size = Math.min(width, height); - var r0 = parsePercent$1(radius[0], size / 2); - var r = parsePercent$1(radius[1], size / 2); - var cx; - var cy; - var coordSys = seriesModel.coordinateSystem; - if (coordSys) { - var point = coordSys.dataToPoint(center2); - cx = point[0] || 0; - cy = point[1] || 0; - } else { - if (!isArray(center2)) { - center2 = [center2, center2]; - } - cx = parsePercent$1(center2[0], width) + viewRect.x; - cy = parsePercent$1(center2[1], height) + viewRect.y; - } - return { - cx, - cy, - r0, - r - }; -} -function pieLayout(seriesType, ecModel, api) { - ecModel.eachSeriesByType(seriesType, function(seriesModel) { - var data = seriesModel.getData(); - var valueDim = data.mapDimension("value"); - var viewRect = getViewRect$4(seriesModel, api); - var _a = getBasicPieLayout(seriesModel, api), cx = _a.cx, cy = _a.cy, r = _a.r, r0 = _a.r0; - var startAngle = -seriesModel.get("startAngle") * RADIAN$2; - var minAngle = seriesModel.get("minAngle") * RADIAN$2; - var validDataCount = 0; - data.each(valueDim, function(value) { - !isNaN(value) && validDataCount++; - }); - var sum2 = data.getSum(valueDim); - var unitRadian = Math.PI / (sum2 || validDataCount) * 2; - var clockwise = seriesModel.get("clockwise"); - var roseType = seriesModel.get("roseType"); - var stillShowZeroSum = seriesModel.get("stillShowZeroSum"); - var extent = data.getDataExtent(valueDim); - extent[0] = 0; - var restAngle = PI2; - var valueSumLargerThanMinAngle = 0; - var currentAngle = startAngle; - var dir3 = clockwise ? 1 : -1; - data.setLayout({ - viewRect, - r - }); - data.each(valueDim, function(value, idx) { - var angle; - if (isNaN(value)) { - data.setItemLayout(idx, { - angle: NaN, - startAngle: NaN, - endAngle: NaN, - clockwise, - cx, - cy, - r0, - r: roseType ? NaN : r - }); - return; - } - if (roseType !== "area") { - angle = sum2 === 0 && stillShowZeroSum ? unitRadian : value * unitRadian; - } else { - angle = PI2 / validDataCount; - } - if (angle < minAngle) { - angle = minAngle; - restAngle -= minAngle; - } else { - valueSumLargerThanMinAngle += value; - } - var endAngle = currentAngle + dir3 * angle; - data.setItemLayout(idx, { - angle, - startAngle: currentAngle, - endAngle, - clockwise, - cx, - cy, - r0, - r: roseType ? linearMap(value, extent, [r0, r]) : r - }); - currentAngle = endAngle; - }); - if (restAngle < PI2 && validDataCount) { - if (restAngle <= 1e-3) { - var angle_1 = PI2 / validDataCount; - data.each(valueDim, function(value, idx) { - if (!isNaN(value)) { - var layout_1 = data.getItemLayout(idx); - layout_1.angle = angle_1; - layout_1.startAngle = startAngle + dir3 * idx * angle_1; - layout_1.endAngle = startAngle + dir3 * (idx + 1) * angle_1; - } - }); - } else { - unitRadian = restAngle / valueSumLargerThanMinAngle; - currentAngle = startAngle; - data.each(valueDim, function(value, idx) { - if (!isNaN(value)) { - var layout_2 = data.getItemLayout(idx); - var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian; - layout_2.startAngle = currentAngle; - layout_2.endAngle = currentAngle + dir3 * angle; - currentAngle += dir3 * angle; - } - }); - } - } - }); -} -function dataFilter(seriesType) { - return { - seriesType, - reset: function(seriesModel, ecModel) { - var legendModels = ecModel.findComponents({ - mainType: "legend" - }); - if (!legendModels || !legendModels.length) { - return; - } - var data = seriesModel.getData(); - data.filterSelf(function(idx) { - var name = data.getName(idx); - for (var i = 0; i < legendModels.length; i++) { - if (!legendModels[i].isSelected(name)) { - return false; - } - } - return true; - }); - } - }; -} -var RADIAN$1 = Math.PI / 180; -function adjustSingleSide(list, cx, cy, r, dir3, viewWidth, viewHeight, viewLeft, viewTop, farthestX) { - if (list.length < 2) { - return; - } - function recalculateXOnSemiToAlignOnEllipseCurve(semi) { - var rB = semi.rB; - var rB2 = rB * rB; - for (var i2 = 0; i2 < semi.list.length; i2++) { - var item = semi.list[i2]; - var dy = Math.abs(item.label.y - cy); - var rA = r + item.len; - var rA2 = rA * rA; - var dx2 = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2); - var newX = cx + (dx2 + item.len2) * dir3; - var deltaX = newX - item.label.x; - var newTargetWidth = item.targetTextWidth - deltaX * dir3; - constrainTextWidth(item, newTargetWidth, true); - item.label.x = newX; - } - } - function recalculateX(items) { - var topSemi = { - list: [], - maxY: 0 - }; - var bottomSemi = { - list: [], - maxY: 0 - }; - for (var i2 = 0; i2 < items.length; i2++) { - if (items[i2].labelAlignTo !== "none") { - continue; - } - var item = items[i2]; - var semi = item.label.y > cy ? bottomSemi : topSemi; - var dy = Math.abs(item.label.y - cy); - if (dy >= semi.maxY) { - var dx2 = item.label.x - cx - item.len2 * dir3; - var rA = r + item.len; - var rB = Math.abs(dx2) < rA ? Math.sqrt(dy * dy / (1 - dx2 * dx2 / rA / rA)) : rA; - semi.rB = rB; - semi.maxY = dy; - } - semi.list.push(item); - } - recalculateXOnSemiToAlignOnEllipseCurve(topSemi); - recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi); - } - var len2 = list.length; - for (var i = 0; i < len2; i++) { - if (list[i].position === "outer" && list[i].labelAlignTo === "labelLine") { - var dx = list[i].label.x - farthestX; - list[i].linePoints[1][0] += dx; - list[i].label.x = farthestX; - } - } - if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) { - recalculateX(list); - } -} -function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) { - var leftList = []; - var rightList = []; - var leftmostX = Number.MAX_VALUE; - var rightmostX = -Number.MAX_VALUE; - for (var i = 0; i < labelLayoutList.length; i++) { - var label = labelLayoutList[i].label; - if (isPositionCenter(labelLayoutList[i])) { - continue; - } - if (label.x < cx) { - leftmostX = Math.min(leftmostX, label.x); - leftList.push(labelLayoutList[i]); - } else { - rightmostX = Math.max(rightmostX, label.x); - rightList.push(labelLayoutList[i]); - } - } - for (var i = 0; i < labelLayoutList.length; i++) { - var layout2 = labelLayoutList[i]; - if (!isPositionCenter(layout2) && layout2.linePoints) { - if (layout2.labelStyleWidth != null) { - continue; - } - var label = layout2.label; - var linePoints = layout2.linePoints; - var targetTextWidth = void 0; - if (layout2.labelAlignTo === "edge") { - if (label.x < cx) { - targetTextWidth = linePoints[2][0] - layout2.labelDistance - viewLeft - layout2.edgeDistance; - } else { - targetTextWidth = viewLeft + viewWidth - layout2.edgeDistance - linePoints[2][0] - layout2.labelDistance; - } - } else if (layout2.labelAlignTo === "labelLine") { - if (label.x < cx) { - targetTextWidth = leftmostX - viewLeft - layout2.bleedMargin; - } else { - targetTextWidth = viewLeft + viewWidth - rightmostX - layout2.bleedMargin; - } - } else { - if (label.x < cx) { - targetTextWidth = label.x - viewLeft - layout2.bleedMargin; - } else { - targetTextWidth = viewLeft + viewWidth - label.x - layout2.bleedMargin; - } - } - layout2.targetTextWidth = targetTextWidth; - constrainTextWidth(layout2, targetTextWidth); - } - } - adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX); - adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX); - for (var i = 0; i < labelLayoutList.length; i++) { - var layout2 = labelLayoutList[i]; - if (!isPositionCenter(layout2) && layout2.linePoints) { - var label = layout2.label; - var linePoints = layout2.linePoints; - var isAlignToEdge = layout2.labelAlignTo === "edge"; - var padding = label.style.padding; - var paddingH = padding ? padding[1] + padding[3] : 0; - var extraPaddingH = label.style.backgroundColor ? 0 : paddingH; - var realTextWidth = layout2.rect.width + extraPaddingH; - var dist2 = linePoints[1][0] - linePoints[2][0]; - if (isAlignToEdge) { - if (label.x < cx) { - linePoints[2][0] = viewLeft + layout2.edgeDistance + realTextWidth + layout2.labelDistance; - } else { - linePoints[2][0] = viewLeft + viewWidth - layout2.edgeDistance - realTextWidth - layout2.labelDistance; - } - } else { - if (label.x < cx) { - linePoints[2][0] = label.x + layout2.labelDistance; - } else { - linePoints[2][0] = label.x - layout2.labelDistance; - } - linePoints[1][0] = linePoints[2][0] + dist2; - } - linePoints[1][1] = linePoints[2][1] = label.y; - } - } -} -function constrainTextWidth(layout2, availableWidth, forceRecalculate) { - if (forceRecalculate === void 0) { - forceRecalculate = false; - } - if (layout2.labelStyleWidth != null) { - return; - } - var label = layout2.label; - var style = label.style; - var textRect = layout2.rect; - var bgColor = style.backgroundColor; - var padding = style.padding; - var paddingH = padding ? padding[1] + padding[3] : 0; - var overflow = style.overflow; - var oldOuterWidth = textRect.width + (bgColor ? 0 : paddingH); - if (availableWidth < oldOuterWidth || forceRecalculate) { - var oldHeight = textRect.height; - if (overflow && overflow.match("break")) { - label.setStyle("backgroundColor", null); - label.setStyle("width", availableWidth - paddingH); - var innerRect = label.getBoundingRect(); - label.setStyle("width", Math.ceil(innerRect.width)); - label.setStyle("backgroundColor", bgColor); - } else { - var availableInnerWidth = availableWidth - paddingH; - var newWidth = availableWidth < oldOuterWidth ? availableInnerWidth : ( - // Current available width is enough, but the text may have - // already been wrapped with a smaller available width. - forceRecalculate ? availableInnerWidth > layout2.unconstrainedWidth ? null : availableInnerWidth : ( - // Current available width is enough, so no need to - // constrain. - null - ) - ); - label.setStyle("width", newWidth); - } - var newRect = label.getBoundingRect(); - textRect.width = newRect.width; - var margin = (label.style.margin || 0) + 2.1; - textRect.height = newRect.height + margin; - textRect.y -= (textRect.height - oldHeight) / 2; - } -} -function isPositionCenter(sectorShape) { - return sectorShape.position === "center"; -} -function pieLabelLayout(seriesModel) { - var data = seriesModel.getData(); - var labelLayoutList = []; - var cx; - var cy; - var hasLabelRotate = false; - var minShowLabelRadian = (seriesModel.get("minShowLabelAngle") || 0) * RADIAN$1; - var viewRect = data.getLayout("viewRect"); - var r = data.getLayout("r"); - var viewWidth = viewRect.width; - var viewLeft = viewRect.x; - var viewTop = viewRect.y; - var viewHeight = viewRect.height; - function setNotShow(el) { - el.ignore = true; - } - function isLabelShown(label2) { - if (!label2.ignore) { - return true; - } - for (var key in label2.states) { - if (label2.states[key].ignore === false) { - return true; - } - } - return false; - } - data.each(function(idx) { - var sector = data.getItemGraphicEl(idx); - var sectorShape = sector.shape; - var label2 = sector.getTextContent(); - var labelLine2 = sector.getTextGuideLine(); - var itemModel = data.getItemModel(idx); - var labelModel = itemModel.getModel("label"); - var labelPosition = labelModel.get("position") || itemModel.get(["emphasis", "label", "position"]); - var labelDistance = labelModel.get("distanceToLabelLine"); - var labelAlignTo = labelModel.get("alignTo"); - var edgeDistance = parsePercent$1(labelModel.get("edgeDistance"), viewWidth); - var bleedMargin = labelModel.get("bleedMargin"); - var labelLineModel = itemModel.getModel("labelLine"); - var labelLineLen = labelLineModel.get("length"); - labelLineLen = parsePercent$1(labelLineLen, viewWidth); - var labelLineLen2 = labelLineModel.get("length2"); - labelLineLen2 = parsePercent$1(labelLineLen2, viewWidth); - if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) { - each$2(label2.states, setNotShow); - label2.ignore = true; - if (labelLine2) { - each$2(labelLine2.states, setNotShow); - labelLine2.ignore = true; - } - return; - } - if (!isLabelShown(label2)) { - return; - } - var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2; - var nx = Math.cos(midAngle); - var ny = Math.sin(midAngle); - var textX; - var textY; - var linePoints2; - var textAlign; - cx = sectorShape.cx; - cy = sectorShape.cy; - var isLabelInside = labelPosition === "inside" || labelPosition === "inner"; - if (labelPosition === "center") { - textX = sectorShape.cx; - textY = sectorShape.cy; - textAlign = "center"; - } else { - var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx; - var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy; - textX = x1 + nx * 3; - textY = y1 + ny * 3; - if (!isLabelInside) { - var x2 = x1 + nx * (labelLineLen + r - sectorShape.r); - var y2 = y1 + ny * (labelLineLen + r - sectorShape.r); - var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2; - var y3 = y2; - if (labelAlignTo === "edge") { - textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance; - } else { - textX = x3 + (nx < 0 ? -labelDistance : labelDistance); - } - textY = y3; - linePoints2 = [[x1, y1], [x2, y2], [x3, y3]]; - } - textAlign = isLabelInside ? "center" : labelAlignTo === "edge" ? nx > 0 ? "right" : "left" : nx > 0 ? "left" : "right"; - } - var PI3 = Math.PI; - var labelRotate = 0; - var rotate = labelModel.get("rotate"); - if (isNumber(rotate)) { - labelRotate = rotate * (PI3 / 180); - } else if (labelPosition === "center") { - labelRotate = 0; - } else if (rotate === "radial" || rotate === true) { - var radialAngle = nx < 0 ? -midAngle + PI3 : -midAngle; - labelRotate = radialAngle; - } else if (rotate === "tangential" && labelPosition !== "outside" && labelPosition !== "outer") { - var rad = Math.atan2(nx, ny); - if (rad < 0) { - rad = PI3 * 2 + rad; - } - var isDown = ny > 0; - if (isDown) { - rad = PI3 + rad; - } - labelRotate = rad - PI3; - } - hasLabelRotate = !!labelRotate; - label2.x = textX; - label2.y = textY; - label2.rotation = labelRotate; - label2.setStyle({ - verticalAlign: "middle" - }); - if (!isLabelInside) { - var textRect = label2.getBoundingRect().clone(); - textRect.applyTransform(label2.getComputedTransform()); - var margin = (label2.style.margin || 0) + 2.1; - textRect.y -= margin / 2; - textRect.height += margin; - labelLayoutList.push({ - label: label2, - labelLine: labelLine2, - position: labelPosition, - len: labelLineLen, - len2: labelLineLen2, - minTurnAngle: labelLineModel.get("minTurnAngle"), - maxSurfaceAngle: labelLineModel.get("maxSurfaceAngle"), - surfaceNormal: new Point(nx, ny), - linePoints: linePoints2, - textAlign, - labelDistance, - labelAlignTo, - edgeDistance, - bleedMargin, - rect: textRect, - unconstrainedWidth: textRect.width, - labelStyleWidth: label2.style.width - }); - } else { - label2.setStyle({ - align: textAlign - }); - var selectState2 = label2.states.select; - if (selectState2) { - selectState2.x += label2.x; - selectState2.y += label2.y; - } - } - sector.setTextConfig({ - inside: isLabelInside - }); - }); - if (!hasLabelRotate && seriesModel.get("avoidLabelOverlap")) { - avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop); - } - for (var i = 0; i < labelLayoutList.length; i++) { - var layout2 = labelLayoutList[i]; - var label = layout2.label; - var labelLine = layout2.labelLine; - var notShowLabel = isNaN(label.x) || isNaN(label.y); - if (label) { - label.setStyle({ - align: layout2.textAlign - }); - if (notShowLabel) { - each$2(label.states, setNotShow); - label.ignore = true; - } - var selectState = label.states.select; - if (selectState) { - selectState.x += label.x; - selectState.y += label.y; - } - } - if (labelLine) { - var linePoints = layout2.linePoints; - if (notShowLabel || !linePoints) { - each$2(labelLine.states, setNotShow); - labelLine.ignore = true; - } else { - limitTurnAngle(linePoints, layout2.minTurnAngle); - limitSurfaceAngle(linePoints, layout2.surfaceNormal, layout2.maxSurfaceAngle); - labelLine.setShape({ - points: linePoints - }); - label.__hostTarget.textGuideLineConfig = { - anchor: new Point(linePoints[0][0], linePoints[0][1]) - }; - } - } - } -} -var PiePiece = ( - /** @class */ - function(_super) { - __extends(PiePiece2, _super); - function PiePiece2(data, idx, startAngle) { - var _this = _super.call(this) || this; - _this.z2 = 2; - var text = new ZRText(); - _this.setTextContent(text); - _this.updateData(data, idx, startAngle, true); - return _this; - } - PiePiece2.prototype.updateData = function(data, idx, startAngle, firstCreate) { - var sector = this; - var seriesModel = data.hostModel; - var itemModel = data.getItemModel(idx); - var emphasisModel = itemModel.getModel("emphasis"); - var layout2 = data.getItemLayout(idx); - var sectorShape = extend(getSectorCornerRadius(itemModel.getModel("itemStyle"), layout2, true), layout2); - if (isNaN(sectorShape.startAngle)) { - sector.setShape(sectorShape); - return; - } - if (firstCreate) { - sector.setShape(sectorShape); - var animationType = seriesModel.getShallow("animationType"); - if (seriesModel.ecModel.ssr) { - initProps(sector, { - scaleX: 0, - scaleY: 0 - }, seriesModel, { - dataIndex: idx, - isFrom: true - }); - sector.originX = sectorShape.cx; - sector.originY = sectorShape.cy; - } else if (animationType === "scale") { - sector.shape.r = layout2.r0; - initProps(sector, { - shape: { - r: layout2.r - } - }, seriesModel, idx); - } else { - if (startAngle != null) { - sector.setShape({ - startAngle, - endAngle: startAngle - }); - initProps(sector, { - shape: { - startAngle: layout2.startAngle, - endAngle: layout2.endAngle - } - }, seriesModel, idx); - } else { - sector.shape.endAngle = layout2.startAngle; - updateProps(sector, { - shape: { - endAngle: layout2.endAngle - } - }, seriesModel, idx); - } - } - } else { - saveOldStyle(sector); - updateProps(sector, { - shape: sectorShape - }, seriesModel, idx); - } - sector.useStyle(data.getItemVisual(idx, "style")); - setStatesStylesFromModel(sector, itemModel); - var midAngle = (layout2.startAngle + layout2.endAngle) / 2; - var offset = seriesModel.get("selectedOffset"); - var dx = Math.cos(midAngle) * offset; - var dy = Math.sin(midAngle) * offset; - var cursorStyle = itemModel.getShallow("cursor"); - cursorStyle && sector.attr("cursor", cursorStyle); - this._updateLabel(seriesModel, data, idx); - sector.ensureState("emphasis").shape = extend({ - r: layout2.r + (emphasisModel.get("scale") ? emphasisModel.get("scaleSize") || 0 : 0) - }, getSectorCornerRadius(emphasisModel.getModel("itemStyle"), layout2)); - extend(sector.ensureState("select"), { - x: dx, - y: dy, - shape: getSectorCornerRadius(itemModel.getModel(["select", "itemStyle"]), layout2) - }); - extend(sector.ensureState("blur"), { - shape: getSectorCornerRadius(itemModel.getModel(["blur", "itemStyle"]), layout2) - }); - var labelLine = sector.getTextGuideLine(); - var labelText = sector.getTextContent(); - labelLine && extend(labelLine.ensureState("select"), { - x: dx, - y: dy - }); - extend(labelText.ensureState("select"), { - x: dx, - y: dy - }); - toggleHoverEmphasis(this, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - }; - PiePiece2.prototype._updateLabel = function(seriesModel, data, idx) { - var sector = this; - var itemModel = data.getItemModel(idx); - var labelLineModel = itemModel.getModel("labelLine"); - var style = data.getItemVisual(idx, "style"); - var visualColor = style && style.fill; - var visualOpacity = style && style.opacity; - setLabelStyle(sector, getLabelStatesModels(itemModel), { - labelFetcher: data.hostModel, - labelDataIndex: idx, - inheritColor: visualColor, - defaultOpacity: visualOpacity, - defaultText: seriesModel.getFormattedLabel(idx, "normal") || data.getName(idx) - }); - var labelText = sector.getTextContent(); - sector.setTextConfig({ - // reset position, rotation - position: null, - rotation: null - }); - labelText.attr({ - z2: 10 - }); - var labelPosition = seriesModel.get(["label", "position"]); - if (labelPosition !== "outside" && labelPosition !== "outer") { - sector.removeTextGuideLine(); - } else { - var polyline = this.getTextGuideLine(); - if (!polyline) { - polyline = new Polyline$2(); - this.setTextGuideLine(polyline); - } - setLabelLineStyle(this, getLabelLineStatesModels(itemModel), { - stroke: visualColor, - opacity: retrieve3(labelLineModel.get(["lineStyle", "opacity"]), visualOpacity, 1) - }); - } - }; - return PiePiece2; - }(Sector) -); -var PieView = ( - /** @class */ - function(_super) { - __extends(PieView2, _super); - function PieView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.ignoreLabelLineUpdate = true; - return _this; - } - PieView2.prototype.render = function(seriesModel, ecModel, api, payload) { - var data = seriesModel.getData(); - var oldData = this._data; - var group = this.group; - var startAngle; - if (!oldData && data.count() > 0) { - var shape = data.getItemLayout(0); - for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) { - shape = data.getItemLayout(s); - } - if (shape) { - startAngle = shape.startAngle; - } - } - if (this._emptyCircleSector) { - group.remove(this._emptyCircleSector); - } - if (data.count() === 0 && seriesModel.get("showEmptyCircle")) { - var sector = new Sector({ - shape: getBasicPieLayout(seriesModel, api) - }); - sector.useStyle(seriesModel.getModel("emptyCircleStyle").getItemStyle()); - this._emptyCircleSector = sector; - group.add(sector); - } - data.diff(oldData).add(function(idx) { - var piePiece = new PiePiece(data, idx, startAngle); - data.setItemGraphicEl(idx, piePiece); - group.add(piePiece); - }).update(function(newIdx, oldIdx) { - var piePiece = oldData.getItemGraphicEl(oldIdx); - piePiece.updateData(data, newIdx, startAngle); - piePiece.off("click"); - group.add(piePiece); - data.setItemGraphicEl(newIdx, piePiece); - }).remove(function(idx) { - var piePiece = oldData.getItemGraphicEl(idx); - removeElementWithFadeOut(piePiece, seriesModel, idx); - }).execute(); - pieLabelLayout(seriesModel); - if (seriesModel.get("animationTypeUpdate") !== "expansion") { - this._data = data; - } - }; - PieView2.prototype.dispose = function() { - }; - PieView2.prototype.containPoint = function(point, seriesModel) { - var data = seriesModel.getData(); - var itemLayout = data.getItemLayout(0); - if (itemLayout) { - var dx = point[0] - itemLayout.cx; - var dy = point[1] - itemLayout.cy; - var radius = Math.sqrt(dx * dx + dy * dy); - return radius <= itemLayout.r && radius >= itemLayout.r0; - } - }; - PieView2.type = "pie"; - return PieView2; - }(ChartView) -); -const PieView$1 = PieView; -function createSeriesDataSimply(seriesModel, opt, nameList) { - opt = isArray(opt) && { - coordDimensions: opt - } || extend({ - encodeDefine: seriesModel.getEncode() - }, opt); - var source = seriesModel.getSource(); - var dimensions = prepareSeriesDataSchema(source, opt).dimensions; - var list = new SeriesData(dimensions, seriesModel); - list.initData(source, nameList); - return list; -} -var LegendVisualProvider = ( - /** @class */ - function() { - function LegendVisualProvider2(getDataWithEncodedVisual, getRawData) { - this._getDataWithEncodedVisual = getDataWithEncodedVisual; - this._getRawData = getRawData; - } - LegendVisualProvider2.prototype.getAllNames = function() { - var rawData = this._getRawData(); - return rawData.mapArray(rawData.getName); - }; - LegendVisualProvider2.prototype.containName = function(name) { - var rawData = this._getRawData(); - return rawData.indexOfName(name) >= 0; - }; - LegendVisualProvider2.prototype.indexOfName = function(name) { - var dataWithEncodedVisual = this._getDataWithEncodedVisual(); - return dataWithEncodedVisual.indexOfName(name); - }; - LegendVisualProvider2.prototype.getItemVisual = function(dataIndex, key) { - var dataWithEncodedVisual = this._getDataWithEncodedVisual(); - return dataWithEncodedVisual.getItemVisual(dataIndex, key); - }; - return LegendVisualProvider2; - }() -); -const LegendVisualProvider$1 = LegendVisualProvider; -var innerData = makeInner(); -var PieSeriesModel = ( - /** @class */ - function(_super) { - __extends(PieSeriesModel2, _super); - function PieSeriesModel2() { - return _super !== null && _super.apply(this, arguments) || this; - } - PieSeriesModel2.prototype.init = function(option) { - _super.prototype.init.apply(this, arguments); - this.legendVisualProvider = new LegendVisualProvider$1(bind(this.getData, this), bind(this.getRawData, this)); - this._defaultLabelLine(option); - }; - PieSeriesModel2.prototype.mergeOption = function() { - _super.prototype.mergeOption.apply(this, arguments); - }; - PieSeriesModel2.prototype.getInitialData = function() { - return createSeriesDataSimply(this, { - coordDimensions: ["value"], - encodeDefaulter: curry(makeSeriesEncodeForNameBased, this) - }); - }; - PieSeriesModel2.prototype.getDataParams = function(dataIndex) { - var data = this.getData(); - var dataInner = innerData(data); - var seats = dataInner.seats; - if (!seats) { - var valueList_1 = []; - data.each(data.mapDimension("value"), function(value) { - valueList_1.push(value); - }); - seats = dataInner.seats = getPercentSeats(valueList_1, data.hostModel.get("percentPrecision")); - } - var params = _super.prototype.getDataParams.call(this, dataIndex); - params.percent = seats[dataIndex] || 0; - params.$vars.push("percent"); - return params; - }; - PieSeriesModel2.prototype._defaultLabelLine = function(option) { - defaultEmphasis(option, "labelLine", ["show"]); - var labelLineNormalOpt = option.labelLine; - var labelLineEmphasisOpt = option.emphasis.labelLine; - labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show; - labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show; - }; - PieSeriesModel2.type = "series.pie"; - PieSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - legendHoverLink: true, - colorBy: "data", - // 默认全局居中 - center: ["50%", "50%"], - radius: [0, "75%"], - // 默认顺时针 - clockwise: true, - startAngle: 90, - // 最小角度改为0 - minAngle: 0, - // If the angle of a sector less than `minShowLabelAngle`, - // the label will not be displayed. - minShowLabelAngle: 0, - // 选中时扇区偏移量 - selectedOffset: 10, - // 选择模式,默认关闭,可选single,multiple - // selectedMode: false, - // 南丁格尔玫瑰图模式,'radius'(半径) | 'area'(面积) - // roseType: null, - percentPrecision: 2, - // If still show when all data zero. - stillShowZeroSum: true, - // cursor: null, - left: 0, - top: 0, - right: 0, - bottom: 0, - width: null, - height: null, - label: { - // color: 'inherit', - // If rotate around circle - rotate: 0, - show: true, - overflow: "truncate", - // 'outer', 'inside', 'center' - position: "outer", - // 'none', 'labelLine', 'edge'. Works only when position is 'outer' - alignTo: "none", - // Closest distance between label and chart edge. - // Works only position is 'outer' and alignTo is 'edge'. - edgeDistance: "25%", - // Works only position is 'outer' and alignTo is not 'edge'. - bleedMargin: 10, - // Distance between text and label line. - distanceToLabelLine: 5 - // formatter: 标签文本格式器,同 tooltip.formatter,不支持异步回调 - // 默认使用全局文本样式,详见 textStyle - // distance: 当position为inner时有效,为label位置到圆心的距离与圆半径(环状图为内外半径和)的比例系数 - }, - // Enabled when label.normal.position is 'outer' - labelLine: { - show: true, - // 引导线两段中的第一段长度 - length: 15, - // 引导线两段中的第二段长度 - length2: 15, - smooth: false, - minTurnAngle: 90, - maxSurfaceAngle: 90, - lineStyle: { - // color: 各异, - width: 1, - type: "solid" - } - }, - itemStyle: { - borderWidth: 1, - borderJoin: "round" - }, - showEmptyCircle: true, - emptyCircleStyle: { - color: "lightgray", - opacity: 1 - }, - labelLayout: { - // Hide the overlapped label. - hideOverlap: true - }, - emphasis: { - scale: true, - scaleSize: 5 - }, - // If use strategy to avoid label overlapping - avoidLabelOverlap: true, - // Animation type. Valid values: expansion, scale - animationType: "expansion", - animationDuration: 1e3, - // Animation type when update. Valid values: transition, expansion - animationTypeUpdate: "transition", - animationEasingUpdate: "cubicInOut", - animationDurationUpdate: 500, - animationEasing: "cubicInOut" - }; - return PieSeriesModel2; - }(SeriesModel) -); -const PieSeriesModel$1 = PieSeriesModel; -function negativeDataFilter(seriesType) { - return { - seriesType, - reset: function(seriesModel, ecModel) { - var data = seriesModel.getData(); - data.filterSelf(function(idx) { - var valueDim = data.mapDimension("value"); - var curValue = data.get(valueDim, idx); - if (isNumber(curValue) && !isNaN(curValue) && curValue < 0) { - return false; - } - return true; - }); - } - }; -} -function install$j(registers) { - registers.registerChartView(PieView$1); - registers.registerSeriesModel(PieSeriesModel$1); - createLegacyDataSelectAction("pie", registers.registerAction); - registers.registerLayout(curry(pieLayout, "pie")); - registers.registerProcessor(dataFilter("pie")); - registers.registerProcessor(negativeDataFilter("pie")); -} -var ScatterSeriesModel = ( - /** @class */ - function(_super) { - __extends(ScatterSeriesModel2, _super); - function ScatterSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ScatterSeriesModel2.type; - _this.hasSymbolVisual = true; - return _this; - } - ScatterSeriesModel2.prototype.getInitialData = function(option, ecModel) { - return createSeriesData(null, this, { - useEncodeDefaulter: true - }); - }; - ScatterSeriesModel2.prototype.getProgressive = function() { - var progressive = this.option.progressive; - if (progressive == null) { - return this.option.large ? 5e3 : this.get("progressive"); - } - return progressive; - }; - ScatterSeriesModel2.prototype.getProgressiveThreshold = function() { - var progressiveThreshold = this.option.progressiveThreshold; - if (progressiveThreshold == null) { - return this.option.large ? 1e4 : this.get("progressiveThreshold"); - } - return progressiveThreshold; - }; - ScatterSeriesModel2.prototype.brushSelector = function(dataIndex, data, selectors) { - return selectors.point(data.getItemLayout(dataIndex)); - }; - ScatterSeriesModel2.prototype.getZLevelKey = function() { - return this.getData().count() > this.getProgressiveThreshold() ? this.id : ""; - }; - ScatterSeriesModel2.type = "series.scatter"; - ScatterSeriesModel2.dependencies = ["grid", "polar", "geo", "singleAxis", "calendar"]; - ScatterSeriesModel2.defaultOption = { - coordinateSystem: "cartesian2d", - // zlevel: 0, - z: 2, - legendHoverLink: true, - symbolSize: 10, - // symbolRotate: null, // 图形旋转控制 - large: false, - // Available when large is true - largeThreshold: 2e3, - // cursor: null, - itemStyle: { - opacity: 0.8 - // color: 各异 - }, - emphasis: { - scale: true - }, - // If clip the overflow graphics - // Works on cartesian / polar series - clip: true, - select: { - itemStyle: { - borderColor: "#212121" - } - }, - universalTransition: { - divideShape: "clone" - } - // progressive: null - }; - return ScatterSeriesModel2; - }(SeriesModel) -); -const ScatterSeriesModel$1 = ScatterSeriesModel; -var BOOST_SIZE_THRESHOLD = 4; -var LargeSymbolPathShape = ( - /** @class */ - function() { - function LargeSymbolPathShape2() { - } - return LargeSymbolPathShape2; - }() -); -var LargeSymbolPath = ( - /** @class */ - function(_super) { - __extends(LargeSymbolPath2, _super); - function LargeSymbolPath2(opts) { - var _this = _super.call(this, opts) || this; - _this._off = 0; - _this.hoverDataIdx = -1; - return _this; - } - LargeSymbolPath2.prototype.getDefaultShape = function() { - return new LargeSymbolPathShape(); - }; - LargeSymbolPath2.prototype.reset = function() { - this.notClear = false; - this._off = 0; - }; - LargeSymbolPath2.prototype.buildPath = function(path, shape) { - var points = shape.points; - var size = shape.size; - var symbolProxy = this.symbolProxy; - var symbolProxyShape = symbolProxy.shape; - var ctx = path.getContext ? path.getContext() : path; - var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD; - var softClipShape = this.softClipShape; - var i; - if (canBoost) { - this._ctx = ctx; - return; - } - this._ctx = null; - for (i = this._off; i < points.length; ) { - var x = points[i++]; - var y = points[i++]; - if (isNaN(x) || isNaN(y)) { - continue; - } - if (softClipShape && !softClipShape.contain(x, y)) { - continue; - } - symbolProxyShape.x = x - size[0] / 2; - symbolProxyShape.y = y - size[1] / 2; - symbolProxyShape.width = size[0]; - symbolProxyShape.height = size[1]; - symbolProxy.buildPath(path, symbolProxyShape, true); - } - if (this.incremental) { - this._off = i; - this.notClear = true; - } - }; - LargeSymbolPath2.prototype.afterBrush = function() { - var shape = this.shape; - var points = shape.points; - var size = shape.size; - var ctx = this._ctx; - var softClipShape = this.softClipShape; - var i; - if (!ctx) { - return; - } - for (i = this._off; i < points.length; ) { - var x = points[i++]; - var y = points[i++]; - if (isNaN(x) || isNaN(y)) { - continue; - } - if (softClipShape && !softClipShape.contain(x, y)) { - continue; - } - ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]); - } - if (this.incremental) { - this._off = i; - this.notClear = true; - } - }; - LargeSymbolPath2.prototype.findDataIndex = function(x, y) { - var shape = this.shape; - var points = shape.points; - var size = shape.size; - var w = Math.max(size[0], 4); - var h = Math.max(size[1], 4); - for (var idx = points.length / 2 - 1; idx >= 0; idx--) { - var i = idx * 2; - var x0 = points[i] - w / 2; - var y0 = points[i + 1] - h / 2; - if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) { - return idx; - } - } - return -1; - }; - LargeSymbolPath2.prototype.contain = function(x, y) { - var localPos = this.transformCoordToLocal(x, y); - var rect = this.getBoundingRect(); - x = localPos[0]; - y = localPos[1]; - if (rect.contain(x, y)) { - var dataIdx = this.hoverDataIdx = this.findDataIndex(x, y); - return dataIdx >= 0; - } - this.hoverDataIdx = -1; - return false; - }; - LargeSymbolPath2.prototype.getBoundingRect = function() { - var rect = this._rect; - if (!rect) { - var shape = this.shape; - var points = shape.points; - var size = shape.size; - var w = size[0]; - var h = size[1]; - var minX = Infinity; - var minY = Infinity; - var maxX = -Infinity; - var maxY = -Infinity; - for (var i = 0; i < points.length; ) { - var x = points[i++]; - var y = points[i++]; - minX = Math.min(x, minX); - maxX = Math.max(x, maxX); - minY = Math.min(y, minY); - maxY = Math.max(y, maxY); - } - rect = this._rect = new BoundingRect(minX - w / 2, minY - h / 2, maxX - minX + w, maxY - minY + h); - } - return rect; - }; - return LargeSymbolPath2; - }(Path) -); -var LargeSymbolDraw = ( - /** @class */ - function() { - function LargeSymbolDraw2() { - this.group = new Group$1(); - } - LargeSymbolDraw2.prototype.updateData = function(data, opt) { - this._clear(); - var symbolEl = this._create(); - symbolEl.setShape({ - points: data.getLayout("points") - }); - this._setCommon(symbolEl, data, opt); - }; - LargeSymbolDraw2.prototype.updateLayout = function(data) { - var points = data.getLayout("points"); - this.group.eachChild(function(child) { - if (child.startIndex != null) { - var len2 = (child.endIndex - child.startIndex) * 2; - var byteOffset = child.startIndex * 4 * 2; - points = new Float32Array(points.buffer, byteOffset, len2); - } - child.setShape("points", points); - child.reset(); - }); - }; - LargeSymbolDraw2.prototype.incrementalPrepareUpdate = function(data) { - this._clear(); - }; - LargeSymbolDraw2.prototype.incrementalUpdate = function(taskParams, data, opt) { - var lastAdded = this._newAdded[0]; - var points = data.getLayout("points"); - var oldPoints = lastAdded && lastAdded.shape.points; - if (oldPoints && oldPoints.length < 2e4) { - var oldLen = oldPoints.length; - var newPoints = new Float32Array(oldLen + points.length); - newPoints.set(oldPoints); - newPoints.set(points, oldLen); - lastAdded.endIndex = taskParams.end; - lastAdded.setShape({ - points: newPoints - }); - } else { - this._newAdded = []; - var symbolEl = this._create(); - symbolEl.startIndex = taskParams.start; - symbolEl.endIndex = taskParams.end; - symbolEl.incremental = true; - symbolEl.setShape({ - points - }); - this._setCommon(symbolEl, data, opt); - } - }; - LargeSymbolDraw2.prototype.eachRendered = function(cb) { - this._newAdded[0] && cb(this._newAdded[0]); - }; - LargeSymbolDraw2.prototype._create = function() { - var symbolEl = new LargeSymbolPath({ - cursor: "default" - }); - symbolEl.ignoreCoarsePointer = true; - this.group.add(symbolEl); - this._newAdded.push(symbolEl); - return symbolEl; - }; - LargeSymbolDraw2.prototype._setCommon = function(symbolEl, data, opt) { - var hostModel = data.hostModel; - opt = opt || {}; - var size = data.getVisual("symbolSize"); - symbolEl.setShape("size", size instanceof Array ? size : [size, size]); - symbolEl.softClipShape = opt.clipShape || null; - symbolEl.symbolProxy = createSymbol(data.getVisual("symbol"), 0, 0, 0, 0); - symbolEl.setColor = symbolEl.symbolProxy.setColor; - var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD; - symbolEl.useStyle( - // Draw shadow when doing fillRect is extremely slow. - hostModel.getModel("itemStyle").getItemStyle(extrudeShadow ? ["color", "shadowBlur", "shadowColor"] : ["color"]) - ); - var globalStyle = data.getVisual("style"); - var visualColor = globalStyle && globalStyle.fill; - if (visualColor) { - symbolEl.setColor(visualColor); - } - var ecData = getECData(symbolEl); - ecData.seriesIndex = hostModel.seriesIndex; - symbolEl.on("mousemove", function(e) { - ecData.dataIndex = null; - var dataIndex = symbolEl.hoverDataIdx; - if (dataIndex >= 0) { - ecData.dataIndex = dataIndex + (symbolEl.startIndex || 0); - } - }); - }; - LargeSymbolDraw2.prototype.remove = function() { - this._clear(); - }; - LargeSymbolDraw2.prototype._clear = function() { - this._newAdded = []; - this.group.removeAll(); - }; - return LargeSymbolDraw2; - }() -); -const LargeSymbolDraw$1 = LargeSymbolDraw; -var ScatterView = ( - /** @class */ - function(_super) { - __extends(ScatterView2, _super); - function ScatterView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ScatterView2.type; - return _this; - } - ScatterView2.prototype.render = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var symbolDraw = this._updateSymbolDraw(data, seriesModel); - symbolDraw.updateData(data, { - // TODO - // If this parameter should be a shape or a bounding volume - // shape will be more general. - // But bounding volume like bounding rect will be much faster in the contain calculation - clipShape: this._getClipShape(seriesModel) - }); - this._finished = true; - }; - ScatterView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var symbolDraw = this._updateSymbolDraw(data, seriesModel); - symbolDraw.incrementalPrepareUpdate(data); - this._finished = false; - }; - ScatterView2.prototype.incrementalRender = function(taskParams, seriesModel, ecModel) { - this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), { - clipShape: this._getClipShape(seriesModel) - }); - this._finished = taskParams.end === seriesModel.getData().count(); - }; - ScatterView2.prototype.updateTransform = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - this.group.dirty(); - if (!this._finished || data.count() > 1e4) { - return { - update: true - }; - } else { - var res = pointsLayout("").reset(seriesModel, ecModel, api); - if (res.progress) { - res.progress({ - start: 0, - end: data.count(), - count: data.count() - }, data); - } - this._symbolDraw.updateLayout(data); - } - }; - ScatterView2.prototype.eachRendered = function(cb) { - this._symbolDraw && this._symbolDraw.eachRendered(cb); - }; - ScatterView2.prototype._getClipShape = function(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - var clipArea = coordSys && coordSys.getArea && coordSys.getArea(); - return seriesModel.get("clip", true) ? clipArea : null; - }; - ScatterView2.prototype._updateSymbolDraw = function(data, seriesModel) { - var symbolDraw = this._symbolDraw; - var pipelineContext = seriesModel.pipelineContext; - var isLargeDraw = pipelineContext.large; - if (!symbolDraw || isLargeDraw !== this._isLargeDraw) { - symbolDraw && symbolDraw.remove(); - symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw$1() : new SymbolDraw(); - this._isLargeDraw = isLargeDraw; - this.group.removeAll(); - } - this.group.add(symbolDraw.group); - return symbolDraw; - }; - ScatterView2.prototype.remove = function(ecModel, api) { - this._symbolDraw && this._symbolDraw.remove(true); - this._symbolDraw = null; - }; - ScatterView2.prototype.dispose = function() { - }; - ScatterView2.type = "scatter"; - return ScatterView2; - }(ChartView) -); -const ScatterView$1 = ScatterView; -function install$i(registers) { - use(install$m); - registers.registerSeriesModel(ScatterSeriesModel$1); - registers.registerChartView(ScatterView$1); - registers.registerLayout(pointsLayout("scatter")); -} -function radarLayout(ecModel) { - ecModel.eachSeriesByType("radar", function(seriesModel) { - var data = seriesModel.getData(); - var points = []; - var coordSys = seriesModel.coordinateSystem; - if (!coordSys) { - return; - } - var axes = coordSys.getIndicatorAxes(); - each$2(axes, function(axis, axisIndex) { - data.each(data.mapDimension(axes[axisIndex].dim), function(val, dataIndex) { - points[dataIndex] = points[dataIndex] || []; - var point = coordSys.dataToPoint(val, axisIndex); - points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys); - }); - }); - data.each(function(idx) { - var firstPoint = find(points[idx], function(point) { - return isValidPoint(point); - }) || getValueMissingPoint(coordSys); - points[idx].push(firstPoint.slice()); - data.setItemLayout(idx, points[idx]); - }); - }); -} -function isValidPoint(point) { - return !isNaN(point[0]) && !isNaN(point[1]); -} -function getValueMissingPoint(coordSys) { - return [coordSys.cx, coordSys.cy]; -} -function radarBackwardCompat(option) { - var polarOptArr = option.polar; - if (polarOptArr) { - if (!isArray(polarOptArr)) { - polarOptArr = [polarOptArr]; - } - var polarNotRadar_1 = []; - each$2(polarOptArr, function(polarOpt, idx) { - if (polarOpt.indicator) { - if (polarOpt.type && !polarOpt.shape) { - polarOpt.shape = polarOpt.type; - } - option.radar = option.radar || []; - if (!isArray(option.radar)) { - option.radar = [option.radar]; - } - option.radar.push(polarOpt); - } else { - polarNotRadar_1.push(polarOpt); - } - }); - option.polar = polarNotRadar_1; - } - each$2(option.series, function(seriesOpt) { - if (seriesOpt && seriesOpt.type === "radar" && seriesOpt.polarIndex) { - seriesOpt.radarIndex = seriesOpt.polarIndex; - } - }); -} -var RadarView = ( - /** @class */ - function(_super) { - __extends(RadarView2, _super); - function RadarView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = RadarView2.type; - return _this; - } - RadarView2.prototype.render = function(seriesModel, ecModel, api) { - var polar = seriesModel.coordinateSystem; - var group = this.group; - var data = seriesModel.getData(); - var oldData = this._data; - function createSymbol$1(data2, idx) { - var symbolType = data2.getItemVisual(idx, "symbol") || "circle"; - if (symbolType === "none") { - return; - } - var symbolSize = normalizeSymbolSize(data2.getItemVisual(idx, "symbolSize")); - var symbolPath = createSymbol(symbolType, -1, -1, 2, 2); - var symbolRotate = data2.getItemVisual(idx, "symbolRotate") || 0; - symbolPath.attr({ - style: { - strokeNoScale: true - }, - z2: 100, - scaleX: symbolSize[0] / 2, - scaleY: symbolSize[1] / 2, - rotation: symbolRotate * Math.PI / 180 || 0 - }); - return symbolPath; - } - function updateSymbols(oldPoints, newPoints, symbolGroup, data2, idx, isInit) { - symbolGroup.removeAll(); - for (var i = 0; i < newPoints.length - 1; i++) { - var symbolPath = createSymbol$1(data2, idx); - if (symbolPath) { - symbolPath.__dimIdx = i; - if (oldPoints[i]) { - symbolPath.setPosition(oldPoints[i]); - graphic[isInit ? "initProps" : "updateProps"](symbolPath, { - x: newPoints[i][0], - y: newPoints[i][1] - }, seriesModel, idx); - } else { - symbolPath.setPosition(newPoints[i]); - } - symbolGroup.add(symbolPath); - } - } - } - function getInitialPoints(points) { - return map(points, function(pt) { - return [polar.cx, polar.cy]; - }); - } - data.diff(oldData).add(function(idx) { - var points = data.getItemLayout(idx); - if (!points) { - return; - } - var polygon = new Polygon(); - var polyline = new Polyline$2(); - var target = { - shape: { - points - } - }; - polygon.shape.points = getInitialPoints(points); - polyline.shape.points = getInitialPoints(points); - initProps(polygon, target, seriesModel, idx); - initProps(polyline, target, seriesModel, idx); - var itemGroup = new Group$1(); - var symbolGroup = new Group$1(); - itemGroup.add(polyline); - itemGroup.add(polygon); - itemGroup.add(symbolGroup); - updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true); - data.setItemGraphicEl(idx, itemGroup); - }).update(function(newIdx, oldIdx) { - var itemGroup = oldData.getItemGraphicEl(oldIdx); - var polyline = itemGroup.childAt(0); - var polygon = itemGroup.childAt(1); - var symbolGroup = itemGroup.childAt(2); - var target = { - shape: { - points: data.getItemLayout(newIdx) - } - }; - if (!target.shape.points) { - return; - } - updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false); - saveOldStyle(polygon); - saveOldStyle(polyline); - updateProps(polyline, target, seriesModel); - updateProps(polygon, target, seriesModel); - data.setItemGraphicEl(newIdx, itemGroup); - }).remove(function(idx) { - group.remove(oldData.getItemGraphicEl(idx)); - }).execute(); - data.eachItemGraphicEl(function(itemGroup, idx) { - var itemModel = data.getItemModel(idx); - var polyline = itemGroup.childAt(0); - var polygon = itemGroup.childAt(1); - var symbolGroup = itemGroup.childAt(2); - var itemStyle = data.getItemVisual(idx, "style"); - var color = itemStyle.fill; - group.add(itemGroup); - polyline.useStyle(defaults(itemModel.getModel("lineStyle").getLineStyle(), { - fill: "none", - stroke: color - })); - setStatesStylesFromModel(polyline, itemModel, "lineStyle"); - setStatesStylesFromModel(polygon, itemModel, "areaStyle"); - var areaStyleModel = itemModel.getModel("areaStyle"); - var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty(); - polygon.ignore = polygonIgnore; - each$2(["emphasis", "select", "blur"], function(stateName) { - var stateModel = itemModel.getModel([stateName, "areaStyle"]); - var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty(); - polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore; - }); - polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), { - fill: color, - opacity: 0.7, - decal: itemStyle.decal - })); - var emphasisModel = itemModel.getModel("emphasis"); - var itemHoverStyle = emphasisModel.getModel("itemStyle").getItemStyle(); - symbolGroup.eachChild(function(symbolPath) { - if (symbolPath instanceof ZRImage) { - var pathStyle = symbolPath.style; - symbolPath.useStyle(extend({ - // TODO other properties like x, y ? - image: pathStyle.image, - x: pathStyle.x, - y: pathStyle.y, - width: pathStyle.width, - height: pathStyle.height - }, itemStyle)); - } else { - symbolPath.useStyle(itemStyle); - symbolPath.setColor(color); - symbolPath.style.strokeNoScale = true; - } - var pathEmphasisState = symbolPath.ensureState("emphasis"); - pathEmphasisState.style = clone(itemHoverStyle); - var defaultText = data.getStore().get(data.getDimensionIndex(symbolPath.__dimIdx), idx); - (defaultText == null || isNaN(defaultText)) && (defaultText = ""); - setLabelStyle(symbolPath, getLabelStatesModels(itemModel), { - labelFetcher: data.hostModel, - labelDataIndex: idx, - labelDimIndex: symbolPath.__dimIdx, - defaultText, - inheritColor: color, - defaultOpacity: itemStyle.opacity - }); - }); - toggleHoverEmphasis(itemGroup, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - }); - this._data = data; - }; - RadarView2.prototype.remove = function() { - this.group.removeAll(); - this._data = null; - }; - RadarView2.type = "radar"; - return RadarView2; - }(ChartView) -); -const RadarView$1 = RadarView; -var RadarSeriesModel = ( - /** @class */ - function(_super) { - __extends(RadarSeriesModel2, _super); - function RadarSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = RadarSeriesModel2.type; - _this.hasSymbolVisual = true; - return _this; - } - RadarSeriesModel2.prototype.init = function(option) { - _super.prototype.init.apply(this, arguments); - this.legendVisualProvider = new LegendVisualProvider$1(bind(this.getData, this), bind(this.getRawData, this)); - }; - RadarSeriesModel2.prototype.getInitialData = function(option, ecModel) { - return createSeriesDataSimply(this, { - generateCoord: "indicator_", - generateCoordCount: Infinity - }); - }; - RadarSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - var data = this.getData(); - var coordSys = this.coordinateSystem; - var indicatorAxes = coordSys.getIndicatorAxes(); - var name = this.getData().getName(dataIndex); - var nameToDisplay = name === "" ? this.name : name; - var markerColor = retrieveVisualColorForTooltipMarker(this, dataIndex); - return createTooltipMarkup("section", { - header: nameToDisplay, - sortBlocks: true, - blocks: map(indicatorAxes, function(axis) { - var val = data.get(data.mapDimension(axis.dim), dataIndex); - return createTooltipMarkup("nameValue", { - markerType: "subItem", - markerColor, - name: axis.name, - value: val, - sortParam: val - }); - }) - }); - }; - RadarSeriesModel2.prototype.getTooltipPosition = function(dataIndex) { - if (dataIndex != null) { - var data_1 = this.getData(); - var coordSys = this.coordinateSystem; - var values = data_1.getValues(map(coordSys.dimensions, function(dim) { - return data_1.mapDimension(dim); - }), dataIndex); - for (var i = 0, len2 = values.length; i < len2; i++) { - if (!isNaN(values[i])) { - var indicatorAxes = coordSys.getIndicatorAxes(); - return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i); - } - } - } - }; - RadarSeriesModel2.type = "series.radar"; - RadarSeriesModel2.dependencies = ["radar"]; - RadarSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - colorBy: "data", - coordinateSystem: "radar", - legendHoverLink: true, - radarIndex: 0, - lineStyle: { - width: 2, - type: "solid", - join: "round" - }, - label: { - position: "top" - }, - // areaStyle: { - // }, - // itemStyle: {} - symbolSize: 8 - // symbolRotate: null - }; - return RadarSeriesModel2; - }(SeriesModel) -); -const RadarSeriesModel$1 = RadarSeriesModel; -function install$h(registers) { - use(install$n); - registers.registerChartView(RadarView$1); - registers.registerSeriesModel(RadarSeriesModel$1); - registers.registerLayout(radarLayout); - registers.registerProcessor(dataFilter("radar")); - registers.registerPreprocessor(radarBackwardCompat); -} -var MapView = ( - /** @class */ - function(_super) { - __extends(MapView2, _super); - function MapView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = MapView2.type; - return _this; - } - MapView2.prototype.render = function(mapModel, ecModel, api, payload) { - if (payload && payload.type === "mapToggleSelect" && payload.from === this.uid) { - return; - } - var group = this.group; - group.removeAll(); - if (mapModel.getHostGeoModel()) { - return; - } - if (this._mapDraw && payload && payload.type === "geoRoam") { - this._mapDraw.resetForLabelLayout(); - } - if (!(payload && payload.type === "geoRoam" && payload.componentType === "series" && payload.seriesId === mapModel.id)) { - if (mapModel.needsDrawMap) { - var mapDraw = this._mapDraw || new MapDraw(api); - group.add(mapDraw.group); - mapDraw.draw(mapModel, ecModel, api, this, payload); - this._mapDraw = mapDraw; - } else { - this._mapDraw && this._mapDraw.remove(); - this._mapDraw = null; - } - } else { - var mapDraw = this._mapDraw; - mapDraw && group.add(mapDraw.group); - } - mapModel.get("showLegendSymbol") && ecModel.getComponent("legend") && this._renderSymbols(mapModel, ecModel, api); - }; - MapView2.prototype.remove = function() { - this._mapDraw && this._mapDraw.remove(); - this._mapDraw = null; - this.group.removeAll(); - }; - MapView2.prototype.dispose = function() { - this._mapDraw && this._mapDraw.remove(); - this._mapDraw = null; - }; - MapView2.prototype._renderSymbols = function(mapModel, ecModel, api) { - var originalData = mapModel.originalData; - var group = this.group; - originalData.each(originalData.mapDimension("value"), function(value, originalDataIndex) { - if (isNaN(value)) { - return; - } - var layout2 = originalData.getItemLayout(originalDataIndex); - if (!layout2 || !layout2.point) { - return; - } - var point = layout2.point; - var offset = layout2.offset; - var circle = new Circle({ - style: { - // Because the special of map draw. - // Which needs statistic of multiple series and draw on one map. - // And each series also need a symbol with legend color - // - // Layout and visual are put one the different data - // TODO - fill: mapModel.getData().getVisual("style").fill - }, - shape: { - cx: point[0] + offset * 9, - cy: point[1], - r: 3 - }, - silent: true, - // Do not overlap the first series, on which labels are displayed. - z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0) - }); - if (!offset) { - var fullData = mapModel.mainSeries.getData(); - var name_1 = originalData.getName(originalDataIndex); - var fullIndex_1 = fullData.indexOfName(name_1); - var itemModel = originalData.getItemModel(originalDataIndex); - var labelModel = itemModel.getModel("label"); - var regionGroup = fullData.getItemGraphicEl(fullIndex_1); - setLabelStyle(circle, getLabelStatesModels(itemModel), { - labelFetcher: { - getFormattedLabel: function(idx, state) { - return mapModel.getFormattedLabel(fullIndex_1, state); - } - }, - defaultText: name_1 - }); - circle.disableLabelAnimation = true; - if (!labelModel.get("position")) { - circle.setTextConfig({ - position: "bottom" - }); - } - regionGroup.onHoverStateChange = function(toState) { - setStatesFlag(circle, toState); - }; - } - group.add(circle); - }); - }; - MapView2.type = "map"; - return MapView2; - }(ChartView) -); -const MapView$1 = MapView; -var MapSeries = ( - /** @class */ - function(_super) { - __extends(MapSeries2, _super); - function MapSeries2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = MapSeries2.type; - _this.needsDrawMap = false; - _this.seriesGroup = []; - _this.getTooltipPosition = function(dataIndex) { - if (dataIndex != null) { - var name_1 = this.getData().getName(dataIndex); - var geo = this.coordinateSystem; - var region = geo.getRegion(name_1); - return region && geo.dataToPoint(region.getCenter()); - } - }; - return _this; - } - MapSeries2.prototype.getInitialData = function(option) { - var data = createSeriesDataSimply(this, { - coordDimensions: ["value"], - encodeDefaulter: curry(makeSeriesEncodeForNameBased, this) - }); - var dataNameMap = createHashMap(); - var toAppendNames = []; - for (var i = 0, len2 = data.count(); i < len2; i++) { - var name_2 = data.getName(i); - dataNameMap.set(name_2, true); - } - var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty); - each$2(geoSource.regions, function(region) { - var name = region.name; - if (!dataNameMap.get(name)) { - toAppendNames.push(name); - } - }); - data.appendValues([], toAppendNames); - return data; - }; - MapSeries2.prototype.getHostGeoModel = function() { - var geoIndex = this.option.geoIndex; - return geoIndex != null ? this.ecModel.getComponent("geo", geoIndex) : null; - }; - MapSeries2.prototype.getMapType = function() { - return (this.getHostGeoModel() || this).option.map; - }; - MapSeries2.prototype.getRawValue = function(dataIndex) { - var data = this.getData(); - return data.get(data.mapDimension("value"), dataIndex); - }; - MapSeries2.prototype.getRegionModel = function(regionName) { - var data = this.getData(); - return data.getItemModel(data.indexOfName(regionName)); - }; - MapSeries2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - var data = this.getData(); - var value = this.getRawValue(dataIndex); - var name = data.getName(dataIndex); - var seriesGroup = this.seriesGroup; - var seriesNames = []; - for (var i = 0; i < seriesGroup.length; i++) { - var otherIndex = seriesGroup[i].originalData.indexOfName(name); - var valueDim = data.mapDimension("value"); - if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) { - seriesNames.push(seriesGroup[i].name); - } - } - return createTooltipMarkup("section", { - header: seriesNames.join(", "), - noHeader: !seriesNames.length, - blocks: [createTooltipMarkup("nameValue", { - name, - value - })] - }); - }; - MapSeries2.prototype.setZoom = function(zoom) { - this.option.zoom = zoom; - }; - MapSeries2.prototype.setCenter = function(center2) { - this.option.center = center2; - }; - MapSeries2.prototype.getLegendIcon = function(opt) { - var iconType = opt.icon || "roundRect"; - var icon = createSymbol(iconType, 0, 0, opt.itemWidth, opt.itemHeight, opt.itemStyle.fill); - icon.setStyle(opt.itemStyle); - icon.style.stroke = "none"; - if (iconType.indexOf("empty") > -1) { - icon.style.stroke = icon.style.fill; - icon.style.fill = "#fff"; - icon.style.lineWidth = 2; - } - return icon; - }; - MapSeries2.type = "series.map"; - MapSeries2.dependencies = ["geo"]; - MapSeries2.layoutMode = "box"; - MapSeries2.defaultOption = { - // 一级层叠 - // zlevel: 0, - // 二级层叠 - z: 2, - coordinateSystem: "geo", - // map should be explicitly specified since ec3. - map: "", - // If `geoIndex` is not specified, a exclusive geo will be - // created. Otherwise use the specified geo component, and - // `map` and `mapType` are ignored. - // geoIndex: 0, - // 'center' | 'left' | 'right' | 'x%' | {number} - left: "center", - // 'center' | 'top' | 'bottom' | 'x%' | {number} - top: "center", - // right - // bottom - // width: - // height - // Aspect is width / height. Inited to be geoJson bbox aspect - // This parameter is used for scale this aspect - // Default value: - // for geoSVG source: 1, - // for geoJSON source: 0.75. - aspectScale: null, - // Layout with center and size - // If you want to put map in a fixed size box with right aspect ratio - // This two properties may be more convenient. - // layoutCenter: [50%, 50%] - // layoutSize: 100 - showLegendSymbol: true, - // Define left-top, right-bottom coords to control view - // For example, [ [180, 90], [-180, -90] ], - // higher priority than center and zoom - boundingCoords: null, - // Default on center of map - center: null, - zoom: 1, - scaleLimit: null, - selectedMode: true, - label: { - show: false, - color: "#000" - }, - // scaleLimit: null, - itemStyle: { - borderWidth: 0.5, - borderColor: "#444", - areaColor: "#eee" - }, - emphasis: { - label: { - show: true, - color: "rgb(100,0,0)" - }, - itemStyle: { - areaColor: "rgba(255,215,0,0.8)" - } - }, - select: { - label: { - show: true, - color: "rgb(100,0,0)" - }, - itemStyle: { - color: "rgba(255,215,0,0.8)" - } - }, - nameProperty: "name" - }; - return MapSeries2; - }(SeriesModel) -); -const MapSeries$1 = MapSeries; -function dataStatistics(datas, statisticType) { - var dataNameMap = {}; - each$2(datas, function(data) { - data.each(data.mapDimension("value"), function(value, idx) { - var mapKey = "ec-" + data.getName(idx); - dataNameMap[mapKey] = dataNameMap[mapKey] || []; - if (!isNaN(value)) { - dataNameMap[mapKey].push(value); - } - }); - }); - return datas[0].map(datas[0].mapDimension("value"), function(value, idx) { - var mapKey = "ec-" + datas[0].getName(idx); - var sum2 = 0; - var min = Infinity; - var max = -Infinity; - var len2 = dataNameMap[mapKey].length; - for (var i = 0; i < len2; i++) { - min = Math.min(min, dataNameMap[mapKey][i]); - max = Math.max(max, dataNameMap[mapKey][i]); - sum2 += dataNameMap[mapKey][i]; - } - var result; - if (statisticType === "min") { - result = min; - } else if (statisticType === "max") { - result = max; - } else if (statisticType === "average") { - result = sum2 / len2; - } else { - result = sum2; - } - return len2 === 0 ? NaN : result; - }); -} -function mapDataStatistic(ecModel) { - var seriesGroups = {}; - ecModel.eachSeriesByType("map", function(seriesModel) { - var hostGeoModel = seriesModel.getHostGeoModel(); - var key = hostGeoModel ? "o" + hostGeoModel.id : "i" + seriesModel.getMapType(); - (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel); - }); - each$2(seriesGroups, function(seriesList, key) { - var data = dataStatistics(map(seriesList, function(seriesModel) { - return seriesModel.getData(); - }), seriesList[0].get("mapValueCalculation")); - for (var i = 0; i < seriesList.length; i++) { - seriesList[i].originalData = seriesList[i].getData(); - } - for (var i = 0; i < seriesList.length; i++) { - seriesList[i].seriesGroup = seriesList; - seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel(); - seriesList[i].setData(data.cloneShallow()); - seriesList[i].mainSeries = seriesList[0]; - } - }); -} -function mapSymbolLayout(ecModel) { - var processedMapType = {}; - ecModel.eachSeriesByType("map", function(mapSeries) { - var mapType = mapSeries.getMapType(); - if (mapSeries.getHostGeoModel() || processedMapType[mapType]) { - return; - } - var mapSymbolOffsets = {}; - each$2(mapSeries.seriesGroup, function(subMapSeries) { - var geo = subMapSeries.coordinateSystem; - var data2 = subMapSeries.originalData; - if (subMapSeries.get("showLegendSymbol") && ecModel.getComponent("legend")) { - data2.each(data2.mapDimension("value"), function(value, idx) { - var name = data2.getName(idx); - var region = geo.getRegion(name); - if (!region || isNaN(value)) { - return; - } - var offset = mapSymbolOffsets[name] || 0; - var point = geo.dataToPoint(region.getCenter()); - mapSymbolOffsets[name] = offset + 1; - data2.setItemLayout(idx, { - point, - offset - }); - }); - } - }); - var data = mapSeries.getData(); - data.each(function(idx) { - var name = data.getName(idx); - var layout2 = data.getItemLayout(idx) || {}; - layout2.showLabel = !mapSymbolOffsets[name]; - data.setItemLayout(idx, layout2); - }); - processedMapType[mapType] = true; - }); -} -function install$g(registers) { - use(install$o); - registers.registerChartView(MapView$1); - registers.registerSeriesModel(MapSeries$1); - registers.registerLayout(mapSymbolLayout); - registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic); - createLegacyDataSelectAction("map", registers.registerAction); -} -function init(inRoot) { - var root = inRoot; - root.hierNode = { - defaultAncestor: null, - ancestor: root, - prelim: 0, - modifier: 0, - change: 0, - shift: 0, - i: 0, - thread: null - }; - var nodes = [root]; - var node; - var children; - while (node = nodes.pop()) { - children = node.children; - if (node.isExpand && children.length) { - var n = children.length; - for (var i = n - 1; i >= 0; i--) { - var child = children[i]; - child.hierNode = { - defaultAncestor: null, - ancestor: child, - prelim: 0, - modifier: 0, - change: 0, - shift: 0, - i, - thread: null - }; - nodes.push(child); - } - } - } -} -function firstWalk(node, separation2) { - var children = node.isExpand ? node.children : []; - var siblings = node.parentNode.children; - var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null; - if (children.length) { - executeShifts(node); - var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2; - if (subtreeW) { - node.hierNode.prelim = subtreeW.hierNode.prelim + separation2(node, subtreeW); - node.hierNode.modifier = node.hierNode.prelim - midPoint; - } else { - node.hierNode.prelim = midPoint; - } - } else if (subtreeW) { - node.hierNode.prelim = subtreeW.hierNode.prelim + separation2(node, subtreeW); - } - node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation2); -} -function secondWalk(node) { - var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier; - node.setLayout({ - x: nodeX - }, true); - node.hierNode.modifier += node.parentNode.hierNode.modifier; -} -function separation(cb) { - return arguments.length ? cb : defaultSeparation; -} -function radialCoordinate(rad, r) { - rad -= Math.PI / 2; - return { - x: r * Math.cos(rad), - y: r * Math.sin(rad) - }; -} -function getViewRect$3(seriesModel, api) { - return getLayoutRect(seriesModel.getBoxLayoutParams(), { - width: api.getWidth(), - height: api.getHeight() - }); -} -function executeShifts(node) { - var children = node.children; - var n = children.length; - var shift = 0; - var change = 0; - while (--n >= 0) { - var child = children[n]; - child.hierNode.prelim += shift; - child.hierNode.modifier += shift; - change += child.hierNode.change; - shift += child.hierNode.shift + change; - } -} -function apportion(subtreeV, subtreeW, ancestor, separation2) { - if (subtreeW) { - var nodeOutRight = subtreeV; - var nodeInRight = subtreeV; - var nodeOutLeft = nodeInRight.parentNode.children[0]; - var nodeInLeft = subtreeW; - var sumOutRight = nodeOutRight.hierNode.modifier; - var sumInRight = nodeInRight.hierNode.modifier; - var sumOutLeft = nodeOutLeft.hierNode.modifier; - var sumInLeft = nodeInLeft.hierNode.modifier; - while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) { - nodeOutRight = nextRight(nodeOutRight); - nodeOutLeft = nextLeft(nodeOutLeft); - nodeOutRight.hierNode.ancestor = subtreeV; - var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation2(nodeInLeft, nodeInRight); - if (shift > 0) { - moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift); - sumInRight += shift; - sumOutRight += shift; - } - sumInLeft += nodeInLeft.hierNode.modifier; - sumInRight += nodeInRight.hierNode.modifier; - sumOutRight += nodeOutRight.hierNode.modifier; - sumOutLeft += nodeOutLeft.hierNode.modifier; - } - if (nodeInLeft && !nextRight(nodeOutRight)) { - nodeOutRight.hierNode.thread = nodeInLeft; - nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight; - } - if (nodeInRight && !nextLeft(nodeOutLeft)) { - nodeOutLeft.hierNode.thread = nodeInRight; - nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft; - ancestor = subtreeV; - } - } - return ancestor; -} -function nextRight(node) { - var children = node.children; - return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread; -} -function nextLeft(node) { - var children = node.children; - return children.length && node.isExpand ? children[0] : node.hierNode.thread; -} -function nextAncestor(nodeInLeft, node, ancestor) { - return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor; -} -function moveSubtree(wl, wr, shift) { - var change = shift / (wr.hierNode.i - wl.hierNode.i); - wr.hierNode.change -= change; - wr.hierNode.shift += shift; - wr.hierNode.modifier += shift; - wr.hierNode.prelim += shift; - wl.hierNode.change += change; -} -function defaultSeparation(node1, node2) { - return node1.parentNode === node2.parentNode ? 1 : 2; -} -var TreeEdgeShape = ( - /** @class */ - function() { - function TreeEdgeShape2() { - this.parentPoint = []; - this.childPoints = []; - } - return TreeEdgeShape2; - }() -); -var TreePath = ( - /** @class */ - function(_super) { - __extends(TreePath2, _super); - function TreePath2(opts) { - return _super.call(this, opts) || this; - } - TreePath2.prototype.getDefaultStyle = function() { - return { - stroke: "#000", - fill: null - }; - }; - TreePath2.prototype.getDefaultShape = function() { - return new TreeEdgeShape(); - }; - TreePath2.prototype.buildPath = function(ctx, shape) { - var childPoints = shape.childPoints; - var childLen = childPoints.length; - var parentPoint = shape.parentPoint; - var firstChildPos = childPoints[0]; - var lastChildPos = childPoints[childLen - 1]; - if (childLen === 1) { - ctx.moveTo(parentPoint[0], parentPoint[1]); - ctx.lineTo(firstChildPos[0], firstChildPos[1]); - return; - } - var orient = shape.orient; - var forkDim = orient === "TB" || orient === "BT" ? 0 : 1; - var otherDim = 1 - forkDim; - var forkPosition = parsePercent$1(shape.forkPosition, 1); - var tmpPoint = []; - tmpPoint[forkDim] = parentPoint[forkDim]; - tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition; - ctx.moveTo(parentPoint[0], parentPoint[1]); - ctx.lineTo(tmpPoint[0], tmpPoint[1]); - ctx.moveTo(firstChildPos[0], firstChildPos[1]); - tmpPoint[forkDim] = firstChildPos[forkDim]; - ctx.lineTo(tmpPoint[0], tmpPoint[1]); - tmpPoint[forkDim] = lastChildPos[forkDim]; - ctx.lineTo(tmpPoint[0], tmpPoint[1]); - ctx.lineTo(lastChildPos[0], lastChildPos[1]); - for (var i = 1; i < childLen - 1; i++) { - var point = childPoints[i]; - ctx.moveTo(point[0], point[1]); - tmpPoint[forkDim] = point[forkDim]; - ctx.lineTo(tmpPoint[0], tmpPoint[1]); - } - }; - return TreePath2; - }(Path) -); -var TreeView = ( - /** @class */ - function(_super) { - __extends(TreeView2, _super); - function TreeView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = TreeView2.type; - _this._mainGroup = new Group$1(); - return _this; - } - TreeView2.prototype.init = function(ecModel, api) { - this._controller = new RoamController(api.getZr()); - this._controllerHost = { - target: this.group - }; - this.group.add(this._mainGroup); - }; - TreeView2.prototype.render = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var layoutInfo = seriesModel.layoutInfo; - var group = this._mainGroup; - var layout2 = seriesModel.get("layout"); - if (layout2 === "radial") { - group.x = layoutInfo.x + layoutInfo.width / 2; - group.y = layoutInfo.y + layoutInfo.height / 2; - } else { - group.x = layoutInfo.x; - group.y = layoutInfo.y; - } - this._updateViewCoordSys(seriesModel, api); - this._updateController(seriesModel, ecModel, api); - var oldData = this._data; - data.diff(oldData).add(function(newIdx) { - if (symbolNeedsDraw(data, newIdx)) { - updateNode(data, newIdx, null, group, seriesModel); - } - }).update(function(newIdx, oldIdx) { - var symbolEl = oldData.getItemGraphicEl(oldIdx); - if (!symbolNeedsDraw(data, newIdx)) { - symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel); - return; - } - updateNode(data, newIdx, symbolEl, group, seriesModel); - }).remove(function(oldIdx) { - var symbolEl = oldData.getItemGraphicEl(oldIdx); - if (symbolEl) { - removeNode(oldData, oldIdx, symbolEl, group, seriesModel); - } - }).execute(); - this._nodeScaleRatio = seriesModel.get("nodeScaleRatio"); - this._updateNodeAndLinkScale(seriesModel); - if (seriesModel.get("expandAndCollapse") === true) { - data.eachItemGraphicEl(function(el, dataIndex) { - el.off("click").on("click", function() { - api.dispatchAction({ - type: "treeExpandAndCollapse", - seriesId: seriesModel.id, - dataIndex - }); - }); - }); - } - this._data = data; - }; - TreeView2.prototype._updateViewCoordSys = function(seriesModel, api) { - var data = seriesModel.getData(); - var points = []; - data.each(function(idx) { - var layout2 = data.getItemLayout(idx); - if (layout2 && !isNaN(layout2.x) && !isNaN(layout2.y)) { - points.push([+layout2.x, +layout2.y]); - } - }); - var min = []; - var max = []; - fromPoints(points, min, max); - var oldMin = this._min; - var oldMax = this._max; - if (max[0] - min[0] === 0) { - min[0] = oldMin ? oldMin[0] : min[0] - 1; - max[0] = oldMax ? oldMax[0] : max[0] + 1; - } - if (max[1] - min[1] === 0) { - min[1] = oldMin ? oldMin[1] : min[1] - 1; - max[1] = oldMax ? oldMax[1] : max[1] + 1; - } - var viewCoordSys = seriesModel.coordinateSystem = new View(); - viewCoordSys.zoomLimit = seriesModel.get("scaleLimit"); - viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]); - viewCoordSys.setCenter(seriesModel.get("center"), api); - viewCoordSys.setZoom(seriesModel.get("zoom")); - this.group.attr({ - x: viewCoordSys.x, - y: viewCoordSys.y, - scaleX: viewCoordSys.scaleX, - scaleY: viewCoordSys.scaleY - }); - this._min = min; - this._max = max; - }; - TreeView2.prototype._updateController = function(seriesModel, ecModel, api) { - var _this = this; - var controller = this._controller; - var controllerHost = this._controllerHost; - var group = this.group; - controller.setPointerChecker(function(e, x, y) { - var rect = group.getBoundingRect(); - rect.applyTransform(group.transform); - return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel); - }); - controller.enable(seriesModel.get("roam")); - controllerHost.zoomLimit = seriesModel.get("scaleLimit"); - controllerHost.zoom = seriesModel.coordinateSystem.getZoom(); - controller.off("pan").off("zoom").on("pan", function(e) { - updateViewOnPan(controllerHost, e.dx, e.dy); - api.dispatchAction({ - seriesId: seriesModel.id, - type: "treeRoam", - dx: e.dx, - dy: e.dy - }); - }).on("zoom", function(e) { - updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY); - api.dispatchAction({ - seriesId: seriesModel.id, - type: "treeRoam", - zoom: e.scale, - originX: e.originX, - originY: e.originY - }); - _this._updateNodeAndLinkScale(seriesModel); - api.updateLabelLayout(); - }); - }; - TreeView2.prototype._updateNodeAndLinkScale = function(seriesModel) { - var data = seriesModel.getData(); - var nodeScale = this._getNodeGlobalScale(seriesModel); - data.eachItemGraphicEl(function(el, idx) { - el.setSymbolScale(nodeScale); - }); - }; - TreeView2.prototype._getNodeGlobalScale = function(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - if (coordSys.type !== "view") { - return 1; - } - var nodeScaleRatio = this._nodeScaleRatio; - var groupZoom = coordSys.scaleX || 1; - var roamZoom = coordSys.getZoom(); - var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1; - return nodeScale / groupZoom; - }; - TreeView2.prototype.dispose = function() { - this._controller && this._controller.dispose(); - this._controllerHost = null; - }; - TreeView2.prototype.remove = function() { - this._mainGroup.removeAll(); - this._data = null; - }; - TreeView2.type = "tree"; - return TreeView2; - }(ChartView) -); -function symbolNeedsDraw(data, dataIndex) { - var layout2 = data.getItemLayout(dataIndex); - return layout2 && !isNaN(layout2.x) && !isNaN(layout2.y); -} -function updateNode(data, dataIndex, symbolEl, group, seriesModel) { - var isInit = !symbolEl; - var node = data.tree.getNodeByDataIndex(dataIndex); - var itemModel = node.getModel(); - var visualColor = node.getVisual("style").fill; - var symbolInnerColor = node.isExpand === false && node.children.length !== 0 ? visualColor : "#fff"; - var virtualRoot = data.tree.root; - var source = node.parentNode === virtualRoot ? node : node.parentNode || node; - var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex); - var sourceLayout = source.getLayout(); - var sourceOldLayout = sourceSymbolEl ? { - x: sourceSymbolEl.__oldX, - y: sourceSymbolEl.__oldY, - rawX: sourceSymbolEl.__radialOldRawX, - rawY: sourceSymbolEl.__radialOldRawY - } : sourceLayout; - var targetLayout = node.getLayout(); - if (isInit) { - symbolEl = new SymbolClz(data, dataIndex, null, { - symbolInnerColor, - useNameLabel: true - }); - symbolEl.x = sourceOldLayout.x; - symbolEl.y = sourceOldLayout.y; - } else { - symbolEl.updateData(data, dataIndex, null, { - symbolInnerColor, - useNameLabel: true - }); - } - symbolEl.__radialOldRawX = symbolEl.__radialRawX; - symbolEl.__radialOldRawY = symbolEl.__radialRawY; - symbolEl.__radialRawX = targetLayout.rawX; - symbolEl.__radialRawY = targetLayout.rawY; - group.add(symbolEl); - data.setItemGraphicEl(dataIndex, symbolEl); - symbolEl.__oldX = symbolEl.x; - symbolEl.__oldY = symbolEl.y; - updateProps(symbolEl, { - x: targetLayout.x, - y: targetLayout.y - }, seriesModel); - var symbolPath = symbolEl.getSymbolPath(); - if (seriesModel.get("layout") === "radial") { - var realRoot = virtualRoot.children[0]; - var rootLayout = realRoot.getLayout(); - var length_1 = realRoot.children.length; - var rad = void 0; - var isLeft = void 0; - if (targetLayout.x === rootLayout.x && node.isExpand === true && realRoot.children.length) { - var center2 = { - x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2, - y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2 - }; - rad = Math.atan2(center2.y - rootLayout.y, center2.x - rootLayout.x); - if (rad < 0) { - rad = Math.PI * 2 + rad; - } - isLeft = center2.x < rootLayout.x; - if (isLeft) { - rad = rad - Math.PI; - } - } else { - rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x); - if (rad < 0) { - rad = Math.PI * 2 + rad; - } - if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) { - isLeft = targetLayout.x < rootLayout.x; - if (isLeft) { - rad = rad - Math.PI; - } - } else { - isLeft = targetLayout.x > rootLayout.x; - if (!isLeft) { - rad = rad - Math.PI; - } - } - } - var textPosition = isLeft ? "left" : "right"; - var normalLabelModel = itemModel.getModel("label"); - var rotate = normalLabelModel.get("rotate"); - var labelRotateRadian = rotate * (Math.PI / 180); - var textContent = symbolPath.getTextContent(); - if (textContent) { - symbolPath.setTextConfig({ - position: normalLabelModel.get("position") || textPosition, - rotation: rotate == null ? -rad : labelRotateRadian, - origin: "center" - }); - textContent.setStyle("verticalAlign", "middle"); - } - } - var focus = itemModel.get(["emphasis", "focus"]); - var focusDataIndices = focus === "relative" ? concatArray(node.getAncestorsIndices(), node.getDescendantIndices()) : focus === "ancestor" ? node.getAncestorsIndices() : focus === "descendant" ? node.getDescendantIndices() : null; - if (focusDataIndices) { - getECData(symbolEl).focus = focusDataIndices; - } - drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group); - if (symbolEl.__edge) { - symbolEl.onHoverStateChange = function(toState) { - if (toState !== "blur") { - var parentEl = node.parentNode && data.getItemGraphicEl(node.parentNode.dataIndex); - if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) { - setStatesFlag(symbolEl.__edge, toState); - } - } - }; - } -} -function drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) { - var itemModel = node.getModel(); - var edgeShape = seriesModel.get("edgeShape"); - var layout2 = seriesModel.get("layout"); - var orient = seriesModel.getOrient(); - var curvature = seriesModel.get(["lineStyle", "curveness"]); - var edgeForkPosition = seriesModel.get("edgeForkPosition"); - var lineStyle = itemModel.getModel("lineStyle").getLineStyle(); - var edge = symbolEl.__edge; - if (edgeShape === "curve") { - if (node.parentNode && node.parentNode !== virtualRoot) { - if (!edge) { - edge = symbolEl.__edge = new BezierCurve({ - shape: getEdgeShape(layout2, orient, curvature, sourceOldLayout, sourceOldLayout) - }); - } - updateProps(edge, { - shape: getEdgeShape(layout2, orient, curvature, sourceLayout, targetLayout) - }, seriesModel); - } - } else if (edgeShape === "polyline") { - if (layout2 === "orthogonal") { - if (node !== virtualRoot && node.children && node.children.length !== 0 && node.isExpand === true) { - var children = node.children; - var childPoints = []; - for (var i = 0; i < children.length; i++) { - var childLayout = children[i].getLayout(); - childPoints.push([childLayout.x, childLayout.y]); - } - if (!edge) { - edge = symbolEl.__edge = new TreePath({ - shape: { - parentPoint: [targetLayout.x, targetLayout.y], - childPoints: [[targetLayout.x, targetLayout.y]], - orient, - forkPosition: edgeForkPosition - } - }); - } - updateProps(edge, { - shape: { - parentPoint: [targetLayout.x, targetLayout.y], - childPoints - } - }, seriesModel); - } - } - } - if (edge && !(edgeShape === "polyline" && !node.isExpand)) { - edge.useStyle(defaults({ - strokeNoScale: true, - fill: null - }, lineStyle)); - setStatesStylesFromModel(edge, itemModel, "lineStyle"); - setDefaultStateProxy(edge); - group.add(edge); - } -} -function removeNodeEdge(node, data, group, seriesModel, removeAnimationOpt) { - var virtualRoot = data.tree.root; - var _a = getSourceNode(virtualRoot, node), source = _a.source, sourceLayout = _a.sourceLayout; - var symbolEl = data.getItemGraphicEl(node.dataIndex); - if (!symbolEl) { - return; - } - var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex); - var sourceEdge = sourceSymbolEl.__edge; - var edge = symbolEl.__edge || (source.isExpand === false || source.children.length === 1 ? sourceEdge : void 0); - var edgeShape = seriesModel.get("edgeShape"); - var layoutOpt = seriesModel.get("layout"); - var orient = seriesModel.get("orient"); - var curvature = seriesModel.get(["lineStyle", "curveness"]); - if (edge) { - if (edgeShape === "curve") { - removeElement(edge, { - shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout), - style: { - opacity: 0 - } - }, seriesModel, { - cb: function() { - group.remove(edge); - }, - removeOpt: removeAnimationOpt - }); - } else if (edgeShape === "polyline" && seriesModel.get("layout") === "orthogonal") { - removeElement(edge, { - shape: { - parentPoint: [sourceLayout.x, sourceLayout.y], - childPoints: [[sourceLayout.x, sourceLayout.y]] - }, - style: { - opacity: 0 - } - }, seriesModel, { - cb: function() { - group.remove(edge); - }, - removeOpt: removeAnimationOpt - }); - } - } -} -function getSourceNode(virtualRoot, node) { - var source = node.parentNode === virtualRoot ? node : node.parentNode || node; - var sourceLayout; - while (sourceLayout = source.getLayout(), sourceLayout == null) { - source = source.parentNode === virtualRoot ? source : source.parentNode || source; - } - return { - source, - sourceLayout - }; -} -function removeNode(data, dataIndex, symbolEl, group, seriesModel) { - var node = data.tree.getNodeByDataIndex(dataIndex); - var virtualRoot = data.tree.root; - var sourceLayout = getSourceNode(virtualRoot, node).sourceLayout; - var removeAnimationOpt = { - duration: seriesModel.get("animationDurationUpdate"), - easing: seriesModel.get("animationEasingUpdate") - }; - removeElement(symbolEl, { - x: sourceLayout.x + 1, - y: sourceLayout.y + 1 - }, seriesModel, { - cb: function() { - group.remove(symbolEl); - data.setItemGraphicEl(dataIndex, null); - }, - removeOpt: removeAnimationOpt - }); - symbolEl.fadeOut(null, data.hostModel, { - fadeLabel: true, - animation: removeAnimationOpt - }); - node.children.forEach(function(childNode) { - removeNodeEdge(childNode, data, group, seriesModel, removeAnimationOpt); - }); - removeNodeEdge(node, data, group, seriesModel, removeAnimationOpt); -} -function getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) { - var cpx1; - var cpy1; - var cpx2; - var cpy2; - var x1; - var x2; - var y1; - var y2; - if (layoutOpt === "radial") { - x1 = sourceLayout.rawX; - y1 = sourceLayout.rawY; - x2 = targetLayout.rawX; - y2 = targetLayout.rawY; - var radialCoor1 = radialCoordinate(x1, y1); - var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature); - var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature); - var radialCoor4 = radialCoordinate(x2, y2); - return { - x1: radialCoor1.x || 0, - y1: radialCoor1.y || 0, - x2: radialCoor4.x || 0, - y2: radialCoor4.y || 0, - cpx1: radialCoor2.x || 0, - cpy1: radialCoor2.y || 0, - cpx2: radialCoor3.x || 0, - cpy2: radialCoor3.y || 0 - }; - } else { - x1 = sourceLayout.x; - y1 = sourceLayout.y; - x2 = targetLayout.x; - y2 = targetLayout.y; - if (orient === "LR" || orient === "RL") { - cpx1 = x1 + (x2 - x1) * curvature; - cpy1 = y1; - cpx2 = x2 + (x1 - x2) * curvature; - cpy2 = y2; - } - if (orient === "TB" || orient === "BT") { - cpx1 = x1; - cpy1 = y1 + (y2 - y1) * curvature; - cpx2 = x2; - cpy2 = y2 + (y1 - y2) * curvature; - } - } - return { - x1, - y1, - x2, - y2, - cpx1, - cpy1, - cpx2, - cpy2 - }; -} -const TreeView$1 = TreeView; -var inner$2 = makeInner(); -function linkSeriesData(opt) { - var mainData = opt.mainData; - var datas = opt.datas; - if (!datas) { - datas = { - main: mainData - }; - opt.datasAttr = { - main: "data" - }; - } - opt.datas = opt.mainData = null; - linkAll(mainData, datas, opt); - each$2(datas, function(data) { - each$2(mainData.TRANSFERABLE_METHODS, function(methodName) { - data.wrapMethod(methodName, curry(transferInjection, opt)); - }); - }); - mainData.wrapMethod("cloneShallow", curry(cloneShallowInjection, opt)); - each$2(mainData.CHANGABLE_METHODS, function(methodName) { - mainData.wrapMethod(methodName, curry(changeInjection, opt)); - }); - assert(datas[mainData.dataType] === mainData); -} -function transferInjection(opt, res) { - if (isMainData(this)) { - var datas = extend({}, inner$2(this).datas); - datas[this.dataType] = res; - linkAll(res, datas, opt); - } else { - linkSingle(res, this.dataType, inner$2(this).mainData, opt); - } - return res; -} -function changeInjection(opt, res) { - opt.struct && opt.struct.update(); - return res; -} -function cloneShallowInjection(opt, res) { - each$2(inner$2(res).datas, function(data, dataType) { - data !== res && linkSingle(data.cloneShallow(), dataType, res, opt); - }); - return res; -} -function getLinkedData(dataType) { - var mainData = inner$2(this).mainData; - return dataType == null || mainData == null ? mainData : inner$2(mainData).datas[dataType]; -} -function getLinkedDataAll() { - var mainData = inner$2(this).mainData; - return mainData == null ? [{ - data: mainData - }] : map(keys(inner$2(mainData).datas), function(type) { - return { - type, - data: inner$2(mainData).datas[type] - }; - }); -} -function isMainData(data) { - return inner$2(data).mainData === data; -} -function linkAll(mainData, datas, opt) { - inner$2(mainData).datas = {}; - each$2(datas, function(data, dataType) { - linkSingle(data, dataType, mainData, opt); - }); -} -function linkSingle(data, dataType, mainData, opt) { - inner$2(mainData).datas[dataType] = data; - inner$2(data).mainData = mainData; - data.dataType = dataType; - if (opt.struct) { - data[opt.structAttr] = opt.struct; - opt.struct[opt.datasAttr[dataType]] = data; - } - data.getLinkedData = getLinkedData; - data.getLinkedDataAll = getLinkedDataAll; -} -var TreeNode = ( - /** @class */ - function() { - function TreeNode2(name, hostTree) { - this.depth = 0; - this.height = 0; - this.dataIndex = -1; - this.children = []; - this.viewChildren = []; - this.isExpand = false; - this.name = name || ""; - this.hostTree = hostTree; - } - TreeNode2.prototype.isRemoved = function() { - return this.dataIndex < 0; - }; - TreeNode2.prototype.eachNode = function(options, cb, context) { - if (isFunction(options)) { - context = cb; - cb = options; - options = null; - } - options = options || {}; - if (isString(options)) { - options = { - order: options - }; - } - var order = options.order || "preorder"; - var children = this[options.attr || "children"]; - var suppressVisitSub; - order === "preorder" && (suppressVisitSub = cb.call(context, this)); - for (var i = 0; !suppressVisitSub && i < children.length; i++) { - children[i].eachNode(options, cb, context); - } - order === "postorder" && cb.call(context, this); - }; - TreeNode2.prototype.updateDepthAndHeight = function(depth) { - var height = 0; - this.depth = depth; - for (var i = 0; i < this.children.length; i++) { - var child = this.children[i]; - child.updateDepthAndHeight(depth + 1); - if (child.height > height) { - height = child.height; - } - } - this.height = height + 1; - }; - TreeNode2.prototype.getNodeById = function(id) { - if (this.getId() === id) { - return this; - } - for (var i = 0, children = this.children, len2 = children.length; i < len2; i++) { - var res = children[i].getNodeById(id); - if (res) { - return res; - } - } - }; - TreeNode2.prototype.contains = function(node) { - if (node === this) { - return true; - } - for (var i = 0, children = this.children, len2 = children.length; i < len2; i++) { - var res = children[i].contains(node); - if (res) { - return res; - } - } - }; - TreeNode2.prototype.getAncestors = function(includeSelf) { - var ancestors = []; - var node = includeSelf ? this : this.parentNode; - while (node) { - ancestors.push(node); - node = node.parentNode; - } - ancestors.reverse(); - return ancestors; - }; - TreeNode2.prototype.getAncestorsIndices = function() { - var indices = []; - var currNode = this; - while (currNode) { - indices.push(currNode.dataIndex); - currNode = currNode.parentNode; - } - indices.reverse(); - return indices; - }; - TreeNode2.prototype.getDescendantIndices = function() { - var indices = []; - this.eachNode(function(childNode) { - indices.push(childNode.dataIndex); - }); - return indices; - }; - TreeNode2.prototype.getValue = function(dimension) { - var data = this.hostTree.data; - return data.getStore().get(data.getDimensionIndex(dimension || "value"), this.dataIndex); - }; - TreeNode2.prototype.setLayout = function(layout2, merge) { - this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout2, merge); - }; - TreeNode2.prototype.getLayout = function() { - return this.hostTree.data.getItemLayout(this.dataIndex); - }; - TreeNode2.prototype.getModel = function(path) { - if (this.dataIndex < 0) { - return; - } - var hostTree = this.hostTree; - var itemModel = hostTree.data.getItemModel(this.dataIndex); - return itemModel.getModel(path); - }; - TreeNode2.prototype.getLevelModel = function() { - return (this.hostTree.levelModels || [])[this.depth]; - }; - TreeNode2.prototype.setVisual = function(key, value) { - this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value); - }; - TreeNode2.prototype.getVisual = function(key) { - return this.hostTree.data.getItemVisual(this.dataIndex, key); - }; - TreeNode2.prototype.getRawIndex = function() { - return this.hostTree.data.getRawIndex(this.dataIndex); - }; - TreeNode2.prototype.getId = function() { - return this.hostTree.data.getId(this.dataIndex); - }; - TreeNode2.prototype.getChildIndex = function() { - if (this.parentNode) { - var children = this.parentNode.children; - for (var i = 0; i < children.length; ++i) { - if (children[i] === this) { - return i; - } - } - return -1; - } - return -1; - }; - TreeNode2.prototype.isAncestorOf = function(node) { - var parent = node.parentNode; - while (parent) { - if (parent === this) { - return true; - } - parent = parent.parentNode; - } - return false; - }; - TreeNode2.prototype.isDescendantOf = function(node) { - return node !== this && node.isAncestorOf(this); - }; - return TreeNode2; - }() -); -var Tree = ( - /** @class */ - function() { - function Tree2(hostModel) { - this.type = "tree"; - this._nodes = []; - this.hostModel = hostModel; - } - Tree2.prototype.eachNode = function(options, cb, context) { - this.root.eachNode(options, cb, context); - }; - Tree2.prototype.getNodeByDataIndex = function(dataIndex) { - var rawIndex = this.data.getRawIndex(dataIndex); - return this._nodes[rawIndex]; - }; - Tree2.prototype.getNodeById = function(name) { - return this.root.getNodeById(name); - }; - Tree2.prototype.update = function() { - var data = this.data; - var nodes = this._nodes; - for (var i = 0, len2 = nodes.length; i < len2; i++) { - nodes[i].dataIndex = -1; - } - for (var i = 0, len2 = data.count(); i < len2; i++) { - nodes[data.getRawIndex(i)].dataIndex = i; - } - }; - Tree2.prototype.clearLayouts = function() { - this.data.clearItemLayouts(); - }; - Tree2.createTree = function(dataRoot, hostModel, beforeLink) { - var tree = new Tree2(hostModel); - var listData = []; - var dimMax = 1; - buildHierarchy(dataRoot); - function buildHierarchy(dataNode, parentNode) { - var value = dataNode.value; - dimMax = Math.max(dimMax, isArray(value) ? value.length : 1); - listData.push(dataNode); - var node = new TreeNode(convertOptionIdName(dataNode.name, ""), tree); - parentNode ? addChild(node, parentNode) : tree.root = node; - tree._nodes.push(node); - var children = dataNode.children; - if (children) { - for (var i = 0; i < children.length; i++) { - buildHierarchy(children[i], node); - } - } - } - tree.root.updateDepthAndHeight(0); - var dimensions = prepareSeriesDataSchema(listData, { - coordDimensions: ["value"], - dimensionsCount: dimMax - }).dimensions; - var list = new SeriesData(dimensions, hostModel); - list.initData(listData); - beforeLink && beforeLink(list); - linkSeriesData({ - mainData: list, - struct: tree, - structAttr: "tree" - }); - tree.update(); - return tree; - }; - return Tree2; - }() -); -function addChild(child, node) { - var children = node.children; - if (child.parentNode === node) { - return; - } - children.push(child); - child.parentNode = node; -} -const Tree$1 = Tree; -function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) { - if (payload && indexOf(validPayloadTypes, payload.type) >= 0) { - var root = seriesModel.getData().tree.root; - var targetNode = payload.targetNode; - if (isString(targetNode)) { - targetNode = root.getNodeById(targetNode); - } - if (targetNode && root.contains(targetNode)) { - return { - node: targetNode - }; - } - var targetNodeId = payload.targetNodeId; - if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) { - return { - node: targetNode - }; - } - } -} -function getPathToRoot(node) { - var path = []; - while (node) { - node = node.parentNode; - node && path.push(node); - } - return path.reverse(); -} -function aboveViewRoot(viewRoot, node) { - var viewPath = getPathToRoot(viewRoot); - return indexOf(viewPath, node) >= 0; -} -function wrapTreePathInfo(node, seriesModel) { - var treePathInfo = []; - while (node) { - var nodeDataIndex = node.dataIndex; - treePathInfo.push({ - name: node.name, - dataIndex: nodeDataIndex, - value: seriesModel.getRawValue(nodeDataIndex) - }); - node = node.parentNode; - } - treePathInfo.reverse(); - return treePathInfo; -} -var TreeSeriesModel = ( - /** @class */ - function(_super) { - __extends(TreeSeriesModel2, _super); - function TreeSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.hasSymbolVisual = true; - _this.ignoreStyleOnData = true; - return _this; - } - TreeSeriesModel2.prototype.getInitialData = function(option) { - var root = { - name: option.name, - children: option.data - }; - var leaves = option.leaves || {}; - var leavesModel = new Model(leaves, this, this.ecModel); - var tree = Tree$1.createTree(root, this, beforeLink); - function beforeLink(nodeData) { - nodeData.wrapMethod("getItemModel", function(model, idx) { - var node = tree.getNodeByDataIndex(idx); - if (!(node && node.children.length && node.isExpand)) { - model.parentModel = leavesModel; - } - return model; - }); - } - var treeDepth = 0; - tree.eachNode("preorder", function(node) { - if (node.depth > treeDepth) { - treeDepth = node.depth; - } - }); - var expandAndCollapse = option.expandAndCollapse; - var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth; - tree.root.eachNode("preorder", function(node) { - var item = node.hostTree.data.getRawDataItem(node.dataIndex); - node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth; - }); - return tree.data; - }; - TreeSeriesModel2.prototype.getOrient = function() { - var orient = this.get("orient"); - if (orient === "horizontal") { - orient = "LR"; - } else if (orient === "vertical") { - orient = "TB"; - } - return orient; - }; - TreeSeriesModel2.prototype.setZoom = function(zoom) { - this.option.zoom = zoom; - }; - TreeSeriesModel2.prototype.setCenter = function(center2) { - this.option.center = center2; - }; - TreeSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - var tree = this.getData().tree; - var realRoot = tree.root.children[0]; - var node = tree.getNodeByDataIndex(dataIndex); - var value = node.getValue(); - var name = node.name; - while (node && node !== realRoot) { - name = node.parentNode.name + "." + name; - node = node.parentNode; - } - return createTooltipMarkup("nameValue", { - name, - value, - noValue: isNaN(value) || value == null - }); - }; - TreeSeriesModel2.prototype.getDataParams = function(dataIndex) { - var params = _super.prototype.getDataParams.apply(this, arguments); - var node = this.getData().tree.getNodeByDataIndex(dataIndex); - params.treeAncestors = wrapTreePathInfo(node, this); - params.collapsed = !node.isExpand; - return params; - }; - TreeSeriesModel2.type = "series.tree"; - TreeSeriesModel2.layoutMode = "box"; - TreeSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - coordinateSystem: "view", - // the position of the whole view - left: "12%", - top: "12%", - right: "12%", - bottom: "12%", - // the layout of the tree, two value can be selected, 'orthogonal' or 'radial' - layout: "orthogonal", - // value can be 'polyline' - edgeShape: "curve", - edgeForkPosition: "50%", - // true | false | 'move' | 'scale', see module:component/helper/RoamController. - roam: false, - // Symbol size scale ratio in roam - nodeScaleRatio: 0.4, - // Default on center of graph - center: null, - zoom: 1, - orient: "LR", - symbol: "emptyCircle", - symbolSize: 7, - expandAndCollapse: true, - initialTreeDepth: 2, - lineStyle: { - color: "#ccc", - width: 1.5, - curveness: 0.5 - }, - itemStyle: { - color: "lightsteelblue", - // borderColor: '#c23531', - borderWidth: 1.5 - }, - label: { - show: true - }, - animationEasing: "linear", - animationDuration: 700, - animationDurationUpdate: 500 - }; - return TreeSeriesModel2; - }(SeriesModel) -); -const TreeSeriesModel$1 = TreeSeriesModel; -function eachAfter(root, callback, separation2) { - var nodes = [root]; - var next = []; - var node; - while (node = nodes.pop()) { - next.push(node); - if (node.isExpand) { - var children = node.children; - if (children.length) { - for (var i = 0; i < children.length; i++) { - nodes.push(children[i]); - } - } - } - } - while (node = next.pop()) { - callback(node, separation2); - } -} -function eachBefore(root, callback) { - var nodes = [root]; - var node; - while (node = nodes.pop()) { - callback(node); - if (node.isExpand) { - var children = node.children; - if (children.length) { - for (var i = children.length - 1; i >= 0; i--) { - nodes.push(children[i]); - } - } - } - } -} -function treeLayout(ecModel, api) { - ecModel.eachSeriesByType("tree", function(seriesModel) { - commonLayout(seriesModel, api); - }); -} -function commonLayout(seriesModel, api) { - var layoutInfo = getViewRect$3(seriesModel, api); - seriesModel.layoutInfo = layoutInfo; - var layout2 = seriesModel.get("layout"); - var width = 0; - var height = 0; - var separation$1 = null; - if (layout2 === "radial") { - width = 2 * Math.PI; - height = Math.min(layoutInfo.height, layoutInfo.width) / 2; - separation$1 = separation(function(node1, node2) { - return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth; - }); - } else { - width = layoutInfo.width; - height = layoutInfo.height; - separation$1 = separation(); - } - var virtualRoot = seriesModel.getData().tree.root; - var realRoot = virtualRoot.children[0]; - if (realRoot) { - init(virtualRoot); - eachAfter(realRoot, firstWalk, separation$1); - virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim; - eachBefore(realRoot, secondWalk); - var left_1 = realRoot; - var right_1 = realRoot; - var bottom_1 = realRoot; - eachBefore(realRoot, function(node) { - var x = node.getLayout().x; - if (x < left_1.getLayout().x) { - left_1 = node; - } - if (x > right_1.getLayout().x) { - right_1 = node; - } - if (node.depth > bottom_1.depth) { - bottom_1 = node; - } - }); - var delta = left_1 === right_1 ? 1 : separation$1(left_1, right_1) / 2; - var tx_1 = delta - left_1.getLayout().x; - var kx_1 = 0; - var ky_1 = 0; - var coorX_1 = 0; - var coorY_1 = 0; - if (layout2 === "radial") { - kx_1 = width / (right_1.getLayout().x + delta + tx_1); - ky_1 = height / (bottom_1.depth - 1 || 1); - eachBefore(realRoot, function(node) { - coorX_1 = (node.getLayout().x + tx_1) * kx_1; - coorY_1 = (node.depth - 1) * ky_1; - var finalCoor = radialCoordinate(coorX_1, coorY_1); - node.setLayout({ - x: finalCoor.x, - y: finalCoor.y, - rawX: coorX_1, - rawY: coorY_1 - }, true); - }); - } else { - var orient_1 = seriesModel.getOrient(); - if (orient_1 === "RL" || orient_1 === "LR") { - ky_1 = height / (right_1.getLayout().x + delta + tx_1); - kx_1 = width / (bottom_1.depth - 1 || 1); - eachBefore(realRoot, function(node) { - coorY_1 = (node.getLayout().x + tx_1) * ky_1; - coorX_1 = orient_1 === "LR" ? (node.depth - 1) * kx_1 : width - (node.depth - 1) * kx_1; - node.setLayout({ - x: coorX_1, - y: coorY_1 - }, true); - }); - } else if (orient_1 === "TB" || orient_1 === "BT") { - kx_1 = width / (right_1.getLayout().x + delta + tx_1); - ky_1 = height / (bottom_1.depth - 1 || 1); - eachBefore(realRoot, function(node) { - coorX_1 = (node.getLayout().x + tx_1) * kx_1; - coorY_1 = orient_1 === "TB" ? (node.depth - 1) * ky_1 : height - (node.depth - 1) * ky_1; - node.setLayout({ - x: coorX_1, - y: coorY_1 - }, true); - }); - } - } - } -} -function treeVisual(ecModel) { - ecModel.eachSeriesByType("tree", function(seriesModel) { - var data = seriesModel.getData(); - var tree = data.tree; - tree.eachNode(function(node) { - var model = node.getModel(); - var style = model.getModel("itemStyle").getItemStyle(); - var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, "style"); - extend(existsStyle, style); - }); - }); -} -function installTreeAction(registers) { - registers.registerAction({ - type: "treeExpandAndCollapse", - event: "treeExpandAndCollapse", - update: "update" - }, function(payload, ecModel) { - ecModel.eachComponent({ - mainType: "series", - subType: "tree", - query: payload - }, function(seriesModel) { - var dataIndex = payload.dataIndex; - var tree = seriesModel.getData().tree; - var node = tree.getNodeByDataIndex(dataIndex); - node.isExpand = !node.isExpand; - }); - }); - registers.registerAction({ - type: "treeRoam", - event: "treeRoam", - // Here we set 'none' instead of 'update', because roam action - // just need to update the transform matrix without having to recalculate - // the layout. So don't need to go through the whole update process, such - // as 'dataPrcocess', 'coordSystemUpdate', 'layout' and so on. - update: "none" - }, function(payload, ecModel, api) { - ecModel.eachComponent({ - mainType: "series", - subType: "tree", - query: payload - }, function(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - var res = updateCenterAndZoom(coordSys, payload, void 0, api); - seriesModel.setCenter && seriesModel.setCenter(res.center); - seriesModel.setZoom && seriesModel.setZoom(res.zoom); - }); - }); -} -function install$f(registers) { - registers.registerChartView(TreeView$1); - registers.registerSeriesModel(TreeSeriesModel$1); - registers.registerLayout(treeLayout); - registers.registerVisual(treeVisual); - installTreeAction(registers); -} -var actionTypes = ["treemapZoomToNode", "treemapRender", "treemapMove"]; -function installTreemapAction(registers) { - for (var i = 0; i < actionTypes.length; i++) { - registers.registerAction({ - type: actionTypes[i], - update: "updateView" - }, noop); - } - registers.registerAction({ - type: "treemapRootToNode", - update: "updateView" - }, function(payload, ecModel) { - ecModel.eachComponent({ - mainType: "series", - subType: "treemap", - query: payload - }, handleRootToNode); - function handleRootToNode(model, index) { - var types = ["treemapZoomToNode", "treemapRootToNode"]; - var targetInfo = retrieveTargetInfo(payload, types, model); - if (targetInfo) { - var originViewRoot = model.getViewRoot(); - if (originViewRoot) { - payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? "rollUp" : "drillDown"; - } - model.resetViewRoot(targetInfo.node); - } - } - }); -} -function enableAriaDecalForTree(seriesModel) { - var data = seriesModel.getData(); - var tree = data.tree; - var decalPaletteScope = {}; - tree.eachNode(function(node) { - var current = node; - while (current && current.depth > 1) { - current = current.parentNode; - } - var decal = getDecalFromPalette(seriesModel.ecModel, current.name || current.dataIndex + "", decalPaletteScope); - node.setVisual("decal", decal); - }); -} -var TreemapSeriesModel = ( - /** @class */ - function(_super) { - __extends(TreemapSeriesModel2, _super); - function TreemapSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = TreemapSeriesModel2.type; - _this.preventUsingHoverLayer = true; - return _this; - } - TreemapSeriesModel2.prototype.getInitialData = function(option, ecModel) { - var root = { - name: option.name, - children: option.data - }; - completeTreeValue$1(root); - var levels = option.levels || []; - var designatedVisualItemStyle = this.designatedVisualItemStyle = {}; - var designatedVisualModel = new Model({ - itemStyle: designatedVisualItemStyle - }, this, ecModel); - levels = option.levels = setDefault(levels, ecModel); - var levelModels = map(levels || [], function(levelDefine) { - return new Model(levelDefine, designatedVisualModel, ecModel); - }, this); - var tree = Tree$1.createTree(root, this, beforeLink); - function beforeLink(nodeData) { - nodeData.wrapMethod("getItemModel", function(model, idx) { - var node = tree.getNodeByDataIndex(idx); - var levelModel = node ? levelModels[node.depth] : null; - model.parentModel = levelModel || designatedVisualModel; - return model; - }); - } - return tree.data; - }; - TreemapSeriesModel2.prototype.optionUpdated = function() { - this.resetViewRoot(); - }; - TreemapSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - var data = this.getData(); - var value = this.getRawValue(dataIndex); - var name = data.getName(dataIndex); - return createTooltipMarkup("nameValue", { - name, - value - }); - }; - TreemapSeriesModel2.prototype.getDataParams = function(dataIndex) { - var params = _super.prototype.getDataParams.apply(this, arguments); - var node = this.getData().tree.getNodeByDataIndex(dataIndex); - params.treeAncestors = wrapTreePathInfo(node, this); - params.treePathInfo = params.treeAncestors; - return params; - }; - TreemapSeriesModel2.prototype.setLayoutInfo = function(layoutInfo) { - this.layoutInfo = this.layoutInfo || {}; - extend(this.layoutInfo, layoutInfo); - }; - TreemapSeriesModel2.prototype.mapIdToIndex = function(id) { - var idIndexMap = this._idIndexMap; - if (!idIndexMap) { - idIndexMap = this._idIndexMap = createHashMap(); - this._idIndexMapCount = 0; - } - var index = idIndexMap.get(id); - if (index == null) { - idIndexMap.set(id, index = this._idIndexMapCount++); - } - return index; - }; - TreemapSeriesModel2.prototype.getViewRoot = function() { - return this._viewRoot; - }; - TreemapSeriesModel2.prototype.resetViewRoot = function(viewRoot) { - viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot; - var root = this.getRawData().tree.root; - if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) { - this._viewRoot = root; - } - }; - TreemapSeriesModel2.prototype.enableAriaDecal = function() { - enableAriaDecalForTree(this); - }; - TreemapSeriesModel2.type = "series.treemap"; - TreemapSeriesModel2.layoutMode = "box"; - TreemapSeriesModel2.defaultOption = { - // Disable progressive rendering - progressive: 0, - // size: ['80%', '80%'], // deprecated, compatible with ec2. - left: "center", - top: "middle", - width: "80%", - height: "80%", - sort: true, - clipWindow: "origin", - squareRatio: 0.5 * (1 + Math.sqrt(5)), - leafDepth: null, - drillDownIcon: "▶", - // to align specialized icon. ▷▶❒❐▼✚ - zoomToNodeRatio: 0.32 * 0.32, - roam: true, - nodeClick: "zoomToNode", - animation: true, - animationDurationUpdate: 900, - animationEasing: "quinticInOut", - breadcrumb: { - show: true, - height: 22, - left: "center", - top: "bottom", - // right - // bottom - emptyItemWidth: 25, - itemStyle: { - color: "rgba(0,0,0,0.7)", - textStyle: { - color: "#fff" - } - }, - emphasis: { - itemStyle: { - color: "rgba(0,0,0,0.9)" - // '#5793f3', - } - } - }, - label: { - show: true, - // Do not use textDistance, for ellipsis rect just the same as treemap node rect. - distance: 0, - padding: 5, - position: "inside", - // formatter: null, - color: "#fff", - overflow: "truncate" - // align - // verticalAlign - }, - upperLabel: { - show: false, - position: [0, "50%"], - height: 20, - // formatter: null, - // color: '#fff', - overflow: "truncate", - // align: null, - verticalAlign: "middle" - }, - itemStyle: { - color: null, - colorAlpha: null, - colorSaturation: null, - borderWidth: 0, - gapWidth: 0, - borderColor: "#fff", - borderColorSaturation: null - // If specified, borderColor will be ineffective, and the - // border color is evaluated by color of current node and - // borderColorSaturation. - }, - emphasis: { - upperLabel: { - show: true, - position: [0, "50%"], - overflow: "truncate", - verticalAlign: "middle" - } - }, - visualDimension: 0, - visualMin: null, - visualMax: null, - color: [], - // level[n].color (if necessary). - // + Specify color list of each level. level[0].color would be global - // color list if not specified. (see method `setDefault`). - // + But set as a empty array to forbid fetch color from global palette - // when using nodeModel.get('color'), otherwise nodes on deep level - // will always has color palette set and are not able to inherit color - // from parent node. - // + TreemapSeries.color can not be set as 'none', otherwise effect - // legend color fetching (see seriesColor.js). - colorAlpha: null, - colorSaturation: null, - colorMappingBy: "index", - visibleMin: 10, - // be rendered. Only works when sort is 'asc' or 'desc'. - childrenVisibleMin: null, - // grandchildren will not show. - // Why grandchildren? If not grandchildren but children, - // some siblings show children and some not, - // the appearance may be mess and not consistent, - levels: [] - // Each item: { - // visibleMin, itemStyle, visualDimension, label - // } - }; - return TreemapSeriesModel2; - }(SeriesModel) -); -function completeTreeValue$1(dataNode) { - var sum2 = 0; - each$2(dataNode.children, function(child) { - completeTreeValue$1(child); - var childValue = child.value; - isArray(childValue) && (childValue = childValue[0]); - sum2 += childValue; - }); - var thisValue = dataNode.value; - if (isArray(thisValue)) { - thisValue = thisValue[0]; - } - if (thisValue == null || isNaN(thisValue)) { - thisValue = sum2; - } - if (thisValue < 0) { - thisValue = 0; - } - isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue; -} -function setDefault(levels, ecModel) { - var globalColorList = normalizeToArray(ecModel.get("color")); - var globalDecalList = normalizeToArray(ecModel.get(["aria", "decal", "decals"])); - if (!globalColorList) { - return; - } - levels = levels || []; - var hasColorDefine; - var hasDecalDefine; - each$2(levels, function(levelDefine) { - var model = new Model(levelDefine); - var modelColor = model.get("color"); - var modelDecal = model.get("decal"); - if (model.get(["itemStyle", "color"]) || modelColor && modelColor !== "none") { - hasColorDefine = true; - } - if (model.get(["itemStyle", "decal"]) || modelDecal && modelDecal !== "none") { - hasDecalDefine = true; - } - }); - var level0 = levels[0] || (levels[0] = {}); - if (!hasColorDefine) { - level0.color = globalColorList.slice(); - } - if (!hasDecalDefine && globalDecalList) { - level0.decal = globalDecalList.slice(); - } - return levels; -} -const TreemapSeriesModel$1 = TreemapSeriesModel; -var TEXT_PADDING = 8; -var ITEM_GAP = 8; -var ARRAY_LENGTH = 5; -var Breadcrumb = ( - /** @class */ - function() { - function Breadcrumb2(containerGroup) { - this.group = new Group$1(); - containerGroup.add(this.group); - } - Breadcrumb2.prototype.render = function(seriesModel, api, targetNode, onSelect) { - var model = seriesModel.getModel("breadcrumb"); - var thisGroup = this.group; - thisGroup.removeAll(); - if (!model.get("show") || !targetNode) { - return; - } - var normalStyleModel = model.getModel("itemStyle"); - var emphasisModel = model.getModel("emphasis"); - var textStyleModel = normalStyleModel.getModel("textStyle"); - var emphasisTextStyleModel = emphasisModel.getModel(["itemStyle", "textStyle"]); - var layoutParam = { - pos: { - left: model.get("left"), - right: model.get("right"), - top: model.get("top"), - bottom: model.get("bottom") - }, - box: { - width: api.getWidth(), - height: api.getHeight() - }, - emptyItemWidth: model.get("emptyItemWidth"), - totalWidth: 0, - renderList: [] - }; - this._prepare(targetNode, layoutParam, textStyleModel); - this._renderContent(seriesModel, layoutParam, normalStyleModel, emphasisModel, textStyleModel, emphasisTextStyleModel, onSelect); - positionElement(thisGroup, layoutParam.pos, layoutParam.box); - }; - Breadcrumb2.prototype._prepare = function(targetNode, layoutParam, textStyleModel) { - for (var node = targetNode; node; node = node.parentNode) { - var text = convertOptionIdName(node.getModel().get("name"), ""); - var textRect = textStyleModel.getTextRect(text); - var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth); - layoutParam.totalWidth += itemWidth + ITEM_GAP; - layoutParam.renderList.push({ - node, - text, - width: itemWidth - }); - } - }; - Breadcrumb2.prototype._renderContent = function(seriesModel, layoutParam, normalStyleModel, emphasisModel, textStyleModel, emphasisTextStyleModel, onSelect) { - var lastX = 0; - var emptyItemWidth = layoutParam.emptyItemWidth; - var height = seriesModel.get(["breadcrumb", "height"]); - var availableSize = getAvailableSize(layoutParam.pos, layoutParam.box); - var totalWidth = layoutParam.totalWidth; - var renderList = layoutParam.renderList; - var emphasisItemStyle = emphasisModel.getModel("itemStyle").getItemStyle(); - for (var i = renderList.length - 1; i >= 0; i--) { - var item = renderList[i]; - var itemNode = item.node; - var itemWidth = item.width; - var text = item.text; - if (totalWidth > availableSize.width) { - totalWidth -= itemWidth - emptyItemWidth; - itemWidth = emptyItemWidth; - text = null; - } - var el = new Polygon({ - shape: { - points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0) - }, - style: defaults(normalStyleModel.getItemStyle(), { - lineJoin: "bevel" - }), - textContent: new ZRText({ - style: createTextStyle(textStyleModel, { - text - }) - }), - textConfig: { - position: "inside" - }, - z2: Z2_EMPHASIS_LIFT * 1e4, - onclick: curry(onSelect, itemNode) - }); - el.disableLabelAnimation = true; - el.getTextContent().ensureState("emphasis").style = createTextStyle(emphasisTextStyleModel, { - text - }); - el.ensureState("emphasis").style = emphasisItemStyle; - toggleHoverEmphasis(el, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - this.group.add(el); - packEventData(el, seriesModel, itemNode); - lastX += itemWidth + ITEM_GAP; - } - }; - Breadcrumb2.prototype.remove = function() { - this.group.removeAll(); - }; - return Breadcrumb2; - }() -); -function makeItemPoints(x, y, itemWidth, itemHeight, head, tail) { - var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]]; - !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]); - !head && points.push([x, y + itemHeight / 2]); - return points; -} -function packEventData(el, seriesModel, itemNode) { - getECData(el).eventData = { - componentType: "series", - componentSubType: "treemap", - componentIndex: seriesModel.componentIndex, - seriesIndex: seriesModel.seriesIndex, - seriesName: seriesModel.name, - seriesType: "treemap", - selfType: "breadcrumb", - nodeData: { - dataIndex: itemNode && itemNode.dataIndex, - name: itemNode && itemNode.name - }, - treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel) - }; -} -const Breadcrumb$1 = Breadcrumb; -var AnimationWrap = ( - /** @class */ - function() { - function AnimationWrap2() { - this._storage = []; - this._elExistsMap = {}; - } - AnimationWrap2.prototype.add = function(el, target, duration, delay, easing) { - if (this._elExistsMap[el.id]) { - return false; - } - this._elExistsMap[el.id] = true; - this._storage.push({ - el, - target, - duration, - delay, - easing - }); - return true; - }; - AnimationWrap2.prototype.finished = function(callback) { - this._finishedCallback = callback; - return this; - }; - AnimationWrap2.prototype.start = function() { - var _this = this; - var count = this._storage.length; - var checkTerminate = function() { - count--; - if (count <= 0) { - _this._storage.length = 0; - _this._elExistsMap = {}; - _this._finishedCallback && _this._finishedCallback(); - } - }; - for (var i = 0, len2 = this._storage.length; i < len2; i++) { - var item = this._storage[i]; - item.el.animateTo(item.target, { - duration: item.duration, - delay: item.delay, - easing: item.easing, - setToFinal: true, - done: checkTerminate, - aborted: checkTerminate - }); - } - return this; - }; - return AnimationWrap2; - }() -); -function createWrap() { - return new AnimationWrap(); -} -var Group = Group$1; -var Rect = Rect$1; -var DRAG_THRESHOLD = 3; -var PATH_LABEL_NOAMAL = "label"; -var PATH_UPPERLABEL_NORMAL = "upperLabel"; -var Z2_BASE = Z2_EMPHASIS_LIFT * 10; -var Z2_BG = Z2_EMPHASIS_LIFT * 2; -var Z2_CONTENT = Z2_EMPHASIS_LIFT * 3; -var getStateItemStyle = makeStyleMapper([ - ["fill", "color"], - // `borderColor` and `borderWidth` has been occupied, - // so use `stroke` to indicate the stroke of the rect. - ["stroke", "strokeColor"], - ["lineWidth", "strokeWidth"], - ["shadowBlur"], - ["shadowOffsetX"], - ["shadowOffsetY"], - ["shadowColor"] - // Option decal is in `DecalObject` but style.decal is in `PatternObject`. - // So do not transfer decal directly. -]); -var getItemStyleNormal = function(model) { - var itemStyle = getStateItemStyle(model); - itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null; - return itemStyle; -}; -var inner$1 = makeInner(); -var TreemapView = ( - /** @class */ - function(_super) { - __extends(TreemapView2, _super); - function TreemapView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = TreemapView2.type; - _this._state = "ready"; - _this._storage = createStorage(); - return _this; - } - TreemapView2.prototype.render = function(seriesModel, ecModel, api, payload) { - var models = ecModel.findComponents({ - mainType: "series", - subType: "treemap", - query: payload - }); - if (indexOf(models, seriesModel) < 0) { - return; - } - this.seriesModel = seriesModel; - this.api = api; - this.ecModel = ecModel; - var types = ["treemapZoomToNode", "treemapRootToNode"]; - var targetInfo = retrieveTargetInfo(payload, types, seriesModel); - var payloadType = payload && payload.type; - var layoutInfo = seriesModel.layoutInfo; - var isInit = !this._oldTree; - var thisStorage = this._storage; - var reRoot = payloadType === "treemapRootToNode" && targetInfo && thisStorage ? { - rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()], - direction: payload.direction - } : null; - var containerGroup = this._giveContainerGroup(layoutInfo); - var hasAnimation = seriesModel.get("animation"); - var renderResult = this._doRender(containerGroup, seriesModel, reRoot); - hasAnimation && !isInit && (!payloadType || payloadType === "treemapZoomToNode" || payloadType === "treemapRootToNode") ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally(); - this._resetController(api); - this._renderBreadcrumb(seriesModel, api, targetInfo); - }; - TreemapView2.prototype._giveContainerGroup = function(layoutInfo) { - var containerGroup = this._containerGroup; - if (!containerGroup) { - containerGroup = this._containerGroup = new Group(); - this._initEvents(containerGroup); - this.group.add(containerGroup); - } - containerGroup.x = layoutInfo.x; - containerGroup.y = layoutInfo.y; - return containerGroup; - }; - TreemapView2.prototype._doRender = function(containerGroup, seriesModel, reRoot) { - var thisTree = seriesModel.getData().tree; - var oldTree = this._oldTree; - var lastsForAnimation = createStorage(); - var thisStorage = createStorage(); - var oldStorage = this._storage; - var willInvisibleEls = []; - function doRenderNode(thisNode, oldNode, parentGroup, depth) { - return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth); - } - dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0); - var willDeleteEls = clearStorage(oldStorage); - this._oldTree = thisTree; - this._storage = thisStorage; - return { - lastsForAnimation, - willDeleteEls, - renderFinally - }; - function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) { - if (sameTree) { - oldViewChildren = thisViewChildren; - each$2(thisViewChildren, function(child, index) { - !child.isRemoved() && processNode(index, index); - }); - } else { - new DataDiffer(oldViewChildren, thisViewChildren, getKey2, getKey2).add(processNode).update(processNode).remove(curry(processNode, null)).execute(); - } - function getKey2(node) { - return node.getId(); - } - function processNode(newIndex, oldIndex) { - var thisNode = newIndex != null ? thisViewChildren[newIndex] : null; - var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null; - var group = doRenderNode(thisNode, oldNode, parentGroup, depth); - group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1); - } - } - function clearStorage(storage) { - var willDeleteEls2 = createStorage(); - storage && each$2(storage, function(store, storageName) { - var delEls = willDeleteEls2[storageName]; - each$2(store, function(el) { - el && (delEls.push(el), inner$1(el).willDelete = true); - }); - }); - return willDeleteEls2; - } - function renderFinally() { - each$2(willDeleteEls, function(els) { - each$2(els, function(el) { - el.parent && el.parent.remove(el); - }); - }); - each$2(willInvisibleEls, function(el) { - el.invisible = true; - el.dirty(); - }); - } - }; - TreemapView2.prototype._doAnimation = function(containerGroup, renderResult, seriesModel, reRoot) { - var durationOption = seriesModel.get("animationDurationUpdate"); - var easingOption = seriesModel.get("animationEasing"); - var duration = (isFunction(durationOption) ? 0 : durationOption) || 0; - var easing = (isFunction(easingOption) ? null : easingOption) || "cubicOut"; - var animationWrap = createWrap(); - each$2(renderResult.willDeleteEls, function(store, storageName) { - each$2(store, function(el, rawIndex) { - if (el.invisible) { - return; - } - var parent = el.parent; - var target; - var innerStore = inner$1(parent); - if (reRoot && reRoot.direction === "drillDown") { - target = parent === reRoot.rootNodeGroup ? { - shape: { - x: 0, - y: 0, - width: innerStore.nodeWidth, - height: innerStore.nodeHeight - }, - style: { - opacity: 0 - } - } : { - style: { - opacity: 0 - } - }; - } else { - var targetX = 0; - var targetY = 0; - if (!innerStore.willDelete) { - targetX = innerStore.nodeWidth / 2; - targetY = innerStore.nodeHeight / 2; - } - target = storageName === "nodeGroup" ? { - x: targetX, - y: targetY, - style: { - opacity: 0 - } - } : { - shape: { - x: targetX, - y: targetY, - width: 0, - height: 0 - }, - style: { - opacity: 0 - } - }; - } - target && animationWrap.add(el, target, duration, 0, easing); - }); - }); - each$2(this._storage, function(store, storageName) { - each$2(store, function(el, rawIndex) { - var last = renderResult.lastsForAnimation[storageName][rawIndex]; - var target = {}; - if (!last) { - return; - } - if (el instanceof Group$1) { - if (last.oldX != null) { - target.x = el.x; - target.y = el.y; - el.x = last.oldX; - el.y = last.oldY; - } - } else { - if (last.oldShape) { - target.shape = extend({}, el.shape); - el.setShape(last.oldShape); - } - if (last.fadein) { - el.setStyle("opacity", 0); - target.style = { - opacity: 1 - }; - } else if (el.style.opacity !== 1) { - target.style = { - opacity: 1 - }; - } - } - animationWrap.add(el, target, duration, 0, easing); - }); - }, this); - this._state = "animating"; - animationWrap.finished(bind(function() { - this._state = "ready"; - renderResult.renderFinally(); - }, this)).start(); - }; - TreemapView2.prototype._resetController = function(api) { - var controller = this._controller; - if (!controller) { - controller = this._controller = new RoamController(api.getZr()); - controller.enable(this.seriesModel.get("roam")); - controller.on("pan", bind(this._onPan, this)); - controller.on("zoom", bind(this._onZoom, this)); - } - var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight()); - controller.setPointerChecker(function(e, x, y) { - return rect.contain(x, y); - }); - }; - TreemapView2.prototype._clearController = function() { - var controller = this._controller; - if (controller) { - controller.dispose(); - controller = null; - } - }; - TreemapView2.prototype._onPan = function(e) { - if (this._state !== "animating" && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) { - var root = this.seriesModel.getData().tree.root; - if (!root) { - return; - } - var rootLayout = root.getLayout(); - if (!rootLayout) { - return; - } - this.api.dispatchAction({ - type: "treemapMove", - from: this.uid, - seriesId: this.seriesModel.id, - rootRect: { - x: rootLayout.x + e.dx, - y: rootLayout.y + e.dy, - width: rootLayout.width, - height: rootLayout.height - } - }); - } - }; - TreemapView2.prototype._onZoom = function(e) { - var mouseX = e.originX; - var mouseY = e.originY; - if (this._state !== "animating") { - var root = this.seriesModel.getData().tree.root; - if (!root) { - return; - } - var rootLayout = root.getLayout(); - if (!rootLayout) { - return; - } - var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height); - var layoutInfo = this.seriesModel.layoutInfo; - mouseX -= layoutInfo.x; - mouseY -= layoutInfo.y; - var m = create(); - translate(m, m, [-mouseX, -mouseY]); - scale(m, m, [e.scale, e.scale]); - translate(m, m, [mouseX, mouseY]); - rect.applyTransform(m); - this.api.dispatchAction({ - type: "treemapRender", - from: this.uid, - seriesId: this.seriesModel.id, - rootRect: { - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height - } - }); - } - }; - TreemapView2.prototype._initEvents = function(containerGroup) { - var _this = this; - containerGroup.on("click", function(e) { - if (_this._state !== "ready") { - return; - } - var nodeClick = _this.seriesModel.get("nodeClick", true); - if (!nodeClick) { - return; - } - var targetInfo = _this.findTarget(e.offsetX, e.offsetY); - if (!targetInfo) { - return; - } - var node = targetInfo.node; - if (node.getLayout().isLeafRoot) { - _this._rootToNode(targetInfo); - } else { - if (nodeClick === "zoomToNode") { - _this._zoomToNode(targetInfo); - } else if (nodeClick === "link") { - var itemModel = node.hostTree.data.getItemModel(node.dataIndex); - var link = itemModel.get("link", true); - var linkTarget = itemModel.get("target", true) || "blank"; - link && windowOpen(link, linkTarget); - } - } - }, this); - }; - TreemapView2.prototype._renderBreadcrumb = function(seriesModel, api, targetInfo) { - var _this = this; - if (!targetInfo) { - targetInfo = seriesModel.get("leafDepth", true) != null ? { - node: seriesModel.getViewRoot() - } : this.findTarget(api.getWidth() / 2, api.getHeight() / 2); - if (!targetInfo) { - targetInfo = { - node: seriesModel.getData().tree.root - }; - } - } - (this._breadcrumb || (this._breadcrumb = new Breadcrumb$1(this.group))).render(seriesModel, api, targetInfo.node, function(node) { - if (_this._state !== "animating") { - aboveViewRoot(seriesModel.getViewRoot(), node) ? _this._rootToNode({ - node - }) : _this._zoomToNode({ - node - }); - } - }); - }; - TreemapView2.prototype.remove = function() { - this._clearController(); - this._containerGroup && this._containerGroup.removeAll(); - this._storage = createStorage(); - this._state = "ready"; - this._breadcrumb && this._breadcrumb.remove(); - }; - TreemapView2.prototype.dispose = function() { - this._clearController(); - }; - TreemapView2.prototype._zoomToNode = function(targetInfo) { - this.api.dispatchAction({ - type: "treemapZoomToNode", - from: this.uid, - seriesId: this.seriesModel.id, - targetNode: targetInfo.node - }); - }; - TreemapView2.prototype._rootToNode = function(targetInfo) { - this.api.dispatchAction({ - type: "treemapRootToNode", - from: this.uid, - seriesId: this.seriesModel.id, - targetNode: targetInfo.node - }); - }; - TreemapView2.prototype.findTarget = function(x, y) { - var targetInfo; - var viewRoot = this.seriesModel.getViewRoot(); - viewRoot.eachNode({ - attr: "viewChildren", - order: "preorder" - }, function(node) { - var bgEl = this._storage.background[node.getRawIndex()]; - if (bgEl) { - var point = bgEl.transformCoordToLocal(x, y); - var shape = bgEl.shape; - if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) { - targetInfo = { - node, - offsetX: point[0], - offsetY: point[1] - }; - } else { - return false; - } - } - }, this); - return targetInfo; - }; - TreemapView2.type = "treemap"; - return TreemapView2; - }(ChartView) -); -function createStorage() { - return { - nodeGroup: [], - background: [], - content: [] - }; -} -function renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) { - if (!thisNode) { - return; - } - var thisLayout = thisNode.getLayout(); - var data = seriesModel.getData(); - var nodeModel = thisNode.getModel(); - data.setItemGraphicEl(thisNode.dataIndex, null); - if (!thisLayout || !thisLayout.isInView) { - return; - } - var thisWidth = thisLayout.width; - var thisHeight = thisLayout.height; - var borderWidth = thisLayout.borderWidth; - var thisInvisible = thisLayout.invisible; - var thisRawIndex = thisNode.getRawIndex(); - var oldRawIndex = oldNode && oldNode.getRawIndex(); - var thisViewChildren = thisNode.viewChildren; - var upperHeight = thisLayout.upperHeight; - var isParent = thisViewChildren && thisViewChildren.length; - var itemStyleNormalModel = nodeModel.getModel("itemStyle"); - var itemStyleEmphasisModel = nodeModel.getModel(["emphasis", "itemStyle"]); - var itemStyleBlurModel = nodeModel.getModel(["blur", "itemStyle"]); - var itemStyleSelectModel = nodeModel.getModel(["select", "itemStyle"]); - var borderRadius = itemStyleNormalModel.get("borderRadius") || 0; - var group = giveGraphic("nodeGroup", Group); - if (!group) { - return; - } - parentGroup.add(group); - group.x = thisLayout.x || 0; - group.y = thisLayout.y || 0; - group.markRedraw(); - inner$1(group).nodeWidth = thisWidth; - inner$1(group).nodeHeight = thisHeight; - if (thisLayout.isAboveViewRoot) { - return group; - } - var bg = giveGraphic("background", Rect, depth, Z2_BG); - bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight); - var emphasisModel = nodeModel.getModel("emphasis"); - var focus = emphasisModel.get("focus"); - var blurScope = emphasisModel.get("blurScope"); - var isDisabled = emphasisModel.get("disabled"); - var focusOrIndices = focus === "ancestor" ? thisNode.getAncestorsIndices() : focus === "descendant" ? thisNode.getDescendantIndices() : focus; - if (isParent) { - if (isHighDownDispatcher(group)) { - setAsHighDownDispatcher(group, false); - } - if (bg) { - setAsHighDownDispatcher(bg, !isDisabled); - data.setItemGraphicEl(thisNode.dataIndex, bg); - enableHoverFocus(bg, focusOrIndices, blurScope); - } - } else { - var content = giveGraphic("content", Rect, depth, Z2_CONTENT); - content && renderContent(group, content); - bg.disableMorphing = true; - if (bg && isHighDownDispatcher(bg)) { - setAsHighDownDispatcher(bg, false); - } - setAsHighDownDispatcher(group, !isDisabled); - data.setItemGraphicEl(thisNode.dataIndex, group); - enableHoverFocus(group, focusOrIndices, blurScope); - } - return group; - function renderBackground(group2, bg2, useUpperLabel) { - var ecData = getECData(bg2); - ecData.dataIndex = thisNode.dataIndex; - ecData.seriesIndex = seriesModel.seriesIndex; - bg2.setShape({ - x: 0, - y: 0, - width: thisWidth, - height: thisHeight, - r: borderRadius - }); - if (thisInvisible) { - processInvisible(bg2); - } else { - bg2.invisible = false; - var style = thisNode.getVisual("style"); - var visualBorderColor = style.stroke; - var normalStyle = getItemStyleNormal(itemStyleNormalModel); - normalStyle.fill = visualBorderColor; - var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel); - emphasisStyle.fill = itemStyleEmphasisModel.get("borderColor"); - var blurStyle = getStateItemStyle(itemStyleBlurModel); - blurStyle.fill = itemStyleBlurModel.get("borderColor"); - var selectStyle = getStateItemStyle(itemStyleSelectModel); - selectStyle.fill = itemStyleSelectModel.get("borderColor"); - if (useUpperLabel) { - var upperLabelWidth = thisWidth - 2 * borderWidth; - prepareText( - // PENDING: convert ZRColor to ColorString for text. - bg2, - visualBorderColor, - style.opacity, - { - x: borderWidth, - y: 0, - width: upperLabelWidth, - height: upperHeight - } - ); - } else { - bg2.removeTextContent(); - } - bg2.setStyle(normalStyle); - bg2.ensureState("emphasis").style = emphasisStyle; - bg2.ensureState("blur").style = blurStyle; - bg2.ensureState("select").style = selectStyle; - setDefaultStateProxy(bg2); - } - group2.add(bg2); - } - function renderContent(group2, content2) { - var ecData = getECData(content2); - ecData.dataIndex = thisNode.dataIndex; - ecData.seriesIndex = seriesModel.seriesIndex; - var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0); - var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0); - content2.culling = true; - content2.setShape({ - x: borderWidth, - y: borderWidth, - width: contentWidth, - height: contentHeight, - r: borderRadius - }); - if (thisInvisible) { - processInvisible(content2); - } else { - content2.invisible = false; - var nodeStyle = thisNode.getVisual("style"); - var visualColor = nodeStyle.fill; - var normalStyle = getItemStyleNormal(itemStyleNormalModel); - normalStyle.fill = visualColor; - normalStyle.decal = nodeStyle.decal; - var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel); - var blurStyle = getStateItemStyle(itemStyleBlurModel); - var selectStyle = getStateItemStyle(itemStyleSelectModel); - prepareText(content2, visualColor, nodeStyle.opacity, null); - content2.setStyle(normalStyle); - content2.ensureState("emphasis").style = emphasisStyle; - content2.ensureState("blur").style = blurStyle; - content2.ensureState("select").style = selectStyle; - setDefaultStateProxy(content2); - } - group2.add(content2); - } - function processInvisible(element) { - !element.invisible && willInvisibleEls.push(element); - } - function prepareText(rectEl, visualColor, visualOpacity, upperLabelRect) { - var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL); - var defaultText = convertOptionIdName(nodeModel.get("name"), null); - var isShow = normalLabelModel.getShallow("show"); - setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), { - defaultText: isShow ? defaultText : null, - inheritColor: visualColor, - defaultOpacity: visualOpacity, - labelFetcher: seriesModel, - labelDataIndex: thisNode.dataIndex - }); - var textEl = rectEl.getTextContent(); - if (!textEl) { - return; - } - var textStyle = textEl.style; - var textPadding = normalizeCssArray(textStyle.padding || 0); - if (upperLabelRect) { - rectEl.setTextConfig({ - layoutRect: upperLabelRect - }); - textEl.disableLabelLayout = true; - } - textEl.beforeUpdate = function() { - var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0); - var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0); - if (textStyle.width !== width || textStyle.height !== height) { - textEl.setStyle({ - width, - height - }); - } - }; - textStyle.truncateMinChar = 2; - textStyle.lineOverflow = "truncate"; - addDrillDownIcon(textStyle, upperLabelRect, thisLayout); - var textEmphasisState = textEl.getState("emphasis"); - addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout); - } - function addDrillDownIcon(style, upperLabelRect, thisLayout2) { - var text = style ? style.text : null; - if (!upperLabelRect && thisLayout2.isLeafRoot && text != null) { - var iconChar = seriesModel.get("drillDownIcon", true); - style.text = iconChar ? iconChar + " " + text : text; - } - } - function giveGraphic(storageName, Ctor, depth2, z) { - var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex]; - var lasts = lastsForAnimation[storageName]; - if (element) { - oldStorage[storageName][oldRawIndex] = null; - prepareAnimationWhenHasOld(lasts, element); - } else if (!thisInvisible) { - element = new Ctor(); - if (element instanceof Displayable) { - element.z2 = calculateZ2(depth2, z); - } - prepareAnimationWhenNoOld(lasts, element); - } - return thisStorage[storageName][thisRawIndex] = element; - } - function prepareAnimationWhenHasOld(lasts, element) { - var lastCfg = lasts[thisRawIndex] = {}; - if (element instanceof Group) { - lastCfg.oldX = element.x; - lastCfg.oldY = element.y; - } else { - lastCfg.oldShape = extend({}, element.shape); - } - } - function prepareAnimationWhenNoOld(lasts, element) { - var lastCfg = lasts[thisRawIndex] = {}; - var parentNode = thisNode.parentNode; - var isGroup = element instanceof Group$1; - if (parentNode && (!reRoot || reRoot.direction === "drillDown")) { - var parentOldX = 0; - var parentOldY = 0; - var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()]; - if (!reRoot && parentOldBg && parentOldBg.oldShape) { - parentOldX = parentOldBg.oldShape.width; - parentOldY = parentOldBg.oldShape.height; - } - if (isGroup) { - lastCfg.oldX = 0; - lastCfg.oldY = parentOldY; - } else { - lastCfg.oldShape = { - x: parentOldX, - y: parentOldY, - width: 0, - height: 0 - }; - } - } - lastCfg.fadein = !isGroup; - } -} -function calculateZ2(depth, z2InLevel) { - return depth * Z2_BASE + z2InLevel; -} -const TreemapView$1 = TreemapView; -var ITEM_STYLE_NORMAL = "itemStyle"; -var inner = makeInner(); -const treemapVisual = { - seriesType: "treemap", - reset: function(seriesModel) { - var tree = seriesModel.getData().tree; - var root = tree.root; - if (root.isRemoved()) { - return; - } - travelTree( - root, - // Visual should calculate from tree root but not view root. - {}, - seriesModel.getViewRoot().getAncestors(), - seriesModel - ); - } -}; -function travelTree(node, designatedVisual, viewRootAncestors, seriesModel) { - var nodeModel = node.getModel(); - var nodeLayout = node.getLayout(); - var data = node.hostTree.data; - if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) { - return; - } - var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL); - var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel); - var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, "style"); - var borderColor = nodeItemStyleModel.get("borderColor"); - var borderColorSaturation = nodeItemStyleModel.get("borderColorSaturation"); - var thisNodeColor; - if (borderColorSaturation != null) { - thisNodeColor = calculateColor(visuals); - borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor); - } - existsStyle.stroke = borderColor; - var viewChildren = node.viewChildren; - if (!viewChildren || !viewChildren.length) { - thisNodeColor = calculateColor(visuals); - existsStyle.fill = thisNodeColor; - } else { - var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren); - each$2(viewChildren, function(child, index) { - if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) { - var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel); - travelTree(child, childVisual, viewRootAncestors, seriesModel); - } - }); - } -} -function buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) { - var visuals = extend({}, designatedVisual); - var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle; - each$2(["color", "colorAlpha", "colorSaturation"], function(visualName) { - designatedVisualItemStyle[visualName] = designatedVisual[visualName]; - var val = nodeItemStyleModel.get(visualName); - designatedVisualItemStyle[visualName] = null; - val != null && (visuals[visualName] = val); - }); - return visuals; -} -function calculateColor(visuals) { - var color = getValueVisualDefine(visuals, "color"); - if (color) { - var colorAlpha = getValueVisualDefine(visuals, "colorAlpha"); - var colorSaturation = getValueVisualDefine(visuals, "colorSaturation"); - if (colorSaturation) { - color = modifyHSL(color, null, null, colorSaturation); - } - if (colorAlpha) { - color = modifyAlpha(color, colorAlpha); - } - return color; - } -} -function calculateBorderColor(borderColorSaturation, thisNodeColor) { - return thisNodeColor != null ? modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null; -} -function getValueVisualDefine(visuals, name) { - var value = visuals[name]; - if (value != null && value !== "none") { - return value; - } -} -function buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) { - if (!viewChildren || !viewChildren.length) { - return; - } - var rangeVisual = getRangeVisual(nodeModel, "color") || visuals.color != null && visuals.color !== "none" && (getRangeVisual(nodeModel, "colorAlpha") || getRangeVisual(nodeModel, "colorSaturation")); - if (!rangeVisual) { - return; - } - var visualMin = nodeModel.get("visualMin"); - var visualMax = nodeModel.get("visualMax"); - var dataExtent = nodeLayout.dataExtent.slice(); - visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin); - visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax); - var colorMappingBy = nodeModel.get("colorMappingBy"); - var opt = { - type: rangeVisual.name, - dataExtent, - visual: rangeVisual.range - }; - if (opt.type === "color" && (colorMappingBy === "index" || colorMappingBy === "id")) { - opt.mappingMethod = "category"; - opt.loop = true; - } else { - opt.mappingMethod = "linear"; - } - var mapping = new VisualMapping(opt); - inner(mapping).drColorMappingBy = colorMappingBy; - return mapping; -} -function getRangeVisual(nodeModel, name) { - var range = nodeModel.get(name); - return isArray(range) && range.length ? { - name, - range - } : null; -} -function mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) { - var childVisuals = extend({}, visuals); - if (mapping) { - var mappingType = mapping.type; - var colorMappingBy = mappingType === "color" && inner(mapping).drColorMappingBy; - var value = colorMappingBy === "index" ? index : colorMappingBy === "id" ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get("visualDimension")); - childVisuals[mappingType] = mapping.mapValueToVisual(value); - } - return childVisuals; -} -var mathMax = Math.max; -var mathMin = Math.min; -var retrieveValue = retrieve; -var each$1 = each$2; -var PATH_BORDER_WIDTH = ["itemStyle", "borderWidth"]; -var PATH_GAP_WIDTH = ["itemStyle", "gapWidth"]; -var PATH_UPPER_LABEL_SHOW = ["upperLabel", "show"]; -var PATH_UPPER_LABEL_HEIGHT = ["upperLabel", "height"]; -const treemapLayout = { - seriesType: "treemap", - reset: function(seriesModel, ecModel, api, payload) { - var ecWidth = api.getWidth(); - var ecHeight = api.getHeight(); - var seriesOption = seriesModel.option; - var layoutInfo = getLayoutRect(seriesModel.getBoxLayoutParams(), { - width: api.getWidth(), - height: api.getHeight() - }); - var size = seriesOption.size || []; - var containerWidth = parsePercent$1(retrieveValue(layoutInfo.width, size[0]), ecWidth); - var containerHeight = parsePercent$1(retrieveValue(layoutInfo.height, size[1]), ecHeight); - var payloadType = payload && payload.type; - var types = ["treemapZoomToNode", "treemapRootToNode"]; - var targetInfo = retrieveTargetInfo(payload, types, seriesModel); - var rootRect = payloadType === "treemapRender" || payloadType === "treemapMove" ? payload.rootRect : null; - var viewRoot = seriesModel.getViewRoot(); - var viewAbovePath = getPathToRoot(viewRoot); - if (payloadType !== "treemapMove") { - var rootSize = payloadType === "treemapZoomToNode" ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight]; - var sort_1 = seriesOption.sort; - if (sort_1 && sort_1 !== "asc" && sort_1 !== "desc") { - sort_1 = "desc"; - } - var options = { - squareRatio: seriesOption.squareRatio, - sort: sort_1, - leafDepth: seriesOption.leafDepth - }; - viewRoot.hostTree.clearLayouts(); - var viewRootLayout_1 = { - x: 0, - y: 0, - width: rootSize[0], - height: rootSize[1], - area: rootSize[0] * rootSize[1] - }; - viewRoot.setLayout(viewRootLayout_1); - squarify(viewRoot, options, false, 0); - viewRootLayout_1 = viewRoot.getLayout(); - each$1(viewAbovePath, function(node, index) { - var childValue = (viewAbovePath[index + 1] || viewRoot).getValue(); - node.setLayout(extend({ - dataExtent: [childValue, childValue], - borderWidth: 0, - upperHeight: 0 - }, viewRootLayout_1)); - }); - } - var treeRoot = seriesModel.getData().tree.root; - treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true); - seriesModel.setLayoutInfo(layoutInfo); - prunning( - treeRoot, - // Transform to base element coordinate system. - new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), - viewAbovePath, - viewRoot, - 0 - ); - } -}; -function squarify(node, options, hideChildren, depth) { - var width; - var height; - if (node.isRemoved()) { - return; - } - var thisLayout = node.getLayout(); - width = thisLayout.width; - height = thisLayout.height; - var nodeModel = node.getModel(); - var borderWidth = nodeModel.get(PATH_BORDER_WIDTH); - var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2; - var upperLabelHeight = getUpperLabelHeight(nodeModel); - var upperHeight = Math.max(borderWidth, upperLabelHeight); - var layoutOffset = borderWidth - halfGapWidth; - var layoutOffsetUpper = upperHeight - halfGapWidth; - node.setLayout({ - borderWidth, - upperHeight, - upperLabelHeight - }, true); - width = mathMax(width - 2 * layoutOffset, 0); - height = mathMax(height - layoutOffset - layoutOffsetUpper, 0); - var totalArea = width * height; - var viewChildren = initChildren$1(node, nodeModel, totalArea, options, hideChildren, depth); - if (!viewChildren.length) { - return; - } - var rect = { - x: layoutOffset, - y: layoutOffsetUpper, - width, - height - }; - var rowFixedLength = mathMin(width, height); - var best = Infinity; - var row = []; - row.area = 0; - for (var i = 0, len2 = viewChildren.length; i < len2; ) { - var child = viewChildren[i]; - row.push(child); - row.area += child.getLayout().area; - var score = worst(row, rowFixedLength, options.squareRatio); - if (score <= best) { - i++; - best = score; - } else { - row.area -= row.pop().getLayout().area; - position(row, rowFixedLength, rect, halfGapWidth, false); - rowFixedLength = mathMin(rect.width, rect.height); - row.length = row.area = 0; - best = Infinity; - } - } - if (row.length) { - position(row, rowFixedLength, rect, halfGapWidth, true); - } - if (!hideChildren) { - var childrenVisibleMin = nodeModel.get("childrenVisibleMin"); - if (childrenVisibleMin != null && totalArea < childrenVisibleMin) { - hideChildren = true; - } - } - for (var i = 0, len2 = viewChildren.length; i < len2; i++) { - squarify(viewChildren[i], options, hideChildren, depth + 1); - } -} -function initChildren$1(node, nodeModel, totalArea, options, hideChildren, depth) { - var viewChildren = node.children || []; - var orderBy = options.sort; - orderBy !== "asc" && orderBy !== "desc" && (orderBy = null); - var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth; - if (hideChildren && !overLeafDepth) { - return node.viewChildren = []; - } - viewChildren = filter(viewChildren, function(child) { - return !child.isRemoved(); - }); - sort$1(viewChildren, orderBy); - var info = statistic(nodeModel, viewChildren, orderBy); - if (info.sum === 0) { - return node.viewChildren = []; - } - info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren); - if (info.sum === 0) { - return node.viewChildren = []; - } - for (var i = 0, len2 = viewChildren.length; i < len2; i++) { - var area = viewChildren[i].getValue() / info.sum * totalArea; - viewChildren[i].setLayout({ - area - }); - } - if (overLeafDepth) { - viewChildren.length && node.setLayout({ - isLeafRoot: true - }, true); - viewChildren.length = 0; - } - node.viewChildren = viewChildren; - node.setLayout({ - dataExtent: info.dataExtent - }, true); - return viewChildren; -} -function filterByThreshold(nodeModel, totalArea, sum2, orderBy, orderedChildren) { - if (!orderBy) { - return sum2; - } - var visibleMin = nodeModel.get("visibleMin"); - var len2 = orderedChildren.length; - var deletePoint = len2; - for (var i = len2 - 1; i >= 0; i--) { - var value = orderedChildren[orderBy === "asc" ? len2 - i - 1 : i].getValue(); - if (value / sum2 * totalArea < visibleMin) { - deletePoint = i; - sum2 -= value; - } - } - orderBy === "asc" ? orderedChildren.splice(0, len2 - deletePoint) : orderedChildren.splice(deletePoint, len2 - deletePoint); - return sum2; -} -function sort$1(viewChildren, orderBy) { - if (orderBy) { - viewChildren.sort(function(a, b) { - var diff = orderBy === "asc" ? a.getValue() - b.getValue() : b.getValue() - a.getValue(); - return diff === 0 ? orderBy === "asc" ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff; - }); - } - return viewChildren; -} -function statistic(nodeModel, children, orderBy) { - var sum2 = 0; - for (var i = 0, len2 = children.length; i < len2; i++) { - sum2 += children[i].getValue(); - } - var dimension = nodeModel.get("visualDimension"); - var dataExtent; - if (!children || !children.length) { - dataExtent = [NaN, NaN]; - } else if (dimension === "value" && orderBy) { - dataExtent = [children[children.length - 1].getValue(), children[0].getValue()]; - orderBy === "asc" && dataExtent.reverse(); - } else { - dataExtent = [Infinity, -Infinity]; - each$1(children, function(child) { - var value = child.getValue(dimension); - value < dataExtent[0] && (dataExtent[0] = value); - value > dataExtent[1] && (dataExtent[1] = value); - }); - } - return { - sum: sum2, - dataExtent - }; -} -function worst(row, rowFixedLength, ratio) { - var areaMax = 0; - var areaMin = Infinity; - for (var i = 0, area = void 0, len2 = row.length; i < len2; i++) { - area = row[i].getLayout().area; - if (area) { - area < areaMin && (areaMin = area); - area > areaMax && (areaMax = area); - } - } - var squareArea = row.area * row.area; - var f = rowFixedLength * rowFixedLength * ratio; - return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity; -} -function position(row, rowFixedLength, rect, halfGapWidth, flush) { - var idx0WhenH = rowFixedLength === rect.width ? 0 : 1; - var idx1WhenH = 1 - idx0WhenH; - var xy = ["x", "y"]; - var wh = ["width", "height"]; - var last = rect[xy[idx0WhenH]]; - var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0; - if (flush || rowOtherLength > rect[wh[idx1WhenH]]) { - rowOtherLength = rect[wh[idx1WhenH]]; - } - for (var i = 0, rowLen = row.length; i < rowLen; i++) { - var node = row[i]; - var nodeLayout = {}; - var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0; - var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0); - var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last; - var modWH = i === rowLen - 1 || remain < step ? remain : step; - var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0); - nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2); - nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2); - last += modWH; - node.setLayout(nodeLayout, true); - } - rect[xy[idx1WhenH]] += rowOtherLength; - rect[wh[idx1WhenH]] -= rowOtherLength; -} -function estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) { - var currNode = (targetInfo || {}).node; - var defaultSize = [containerWidth, containerHeight]; - if (!currNode || currNode === viewRoot) { - return defaultSize; - } - var parent; - var viewArea = containerWidth * containerHeight; - var area = viewArea * seriesModel.option.zoomToNodeRatio; - while (parent = currNode.parentNode) { - var sum2 = 0; - var siblings = parent.children; - for (var i = 0, len2 = siblings.length; i < len2; i++) { - sum2 += siblings[i].getValue(); - } - var currNodeValue = currNode.getValue(); - if (currNodeValue === 0) { - return defaultSize; - } - area *= sum2 / currNodeValue; - var parentModel = parent.getModel(); - var borderWidth = parentModel.get(PATH_BORDER_WIDTH); - var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel)); - area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5); - area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER); - currNode = parent; - } - area < viewArea && (area = viewArea); - var scale2 = Math.pow(area / viewArea, 0.5); - return [containerWidth * scale2, containerHeight * scale2]; -} -function calculateRootPosition(layoutInfo, rootRect, targetInfo) { - if (rootRect) { - return { - x: rootRect.x, - y: rootRect.y - }; - } - var defaultPosition = { - x: 0, - y: 0 - }; - if (!targetInfo) { - return defaultPosition; - } - var targetNode = targetInfo.node; - var layout2 = targetNode.getLayout(); - if (!layout2) { - return defaultPosition; - } - var targetCenter = [layout2.width / 2, layout2.height / 2]; - var node = targetNode; - while (node) { - var nodeLayout = node.getLayout(); - targetCenter[0] += nodeLayout.x; - targetCenter[1] += nodeLayout.y; - node = node.parentNode; - } - return { - x: layoutInfo.width / 2 - targetCenter[0], - y: layoutInfo.height / 2 - targetCenter[1] - }; -} -function prunning(node, clipRect, viewAbovePath, viewRoot, depth) { - var nodeLayout = node.getLayout(); - var nodeInViewAbovePath = viewAbovePath[depth]; - var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node; - if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) { - return; - } - node.setLayout({ - // isInView means: viewRoot sub tree + viewAbovePath - isInView: true, - // invisible only means: outside view clip so that the node can not - // see but still layout for animation preparation but not render. - invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout), - isAboveViewRoot - }, true); - var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height); - each$1(node.viewChildren || [], function(child) { - prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1); - }); -} -function getUpperLabelHeight(model) { - return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0; -} -function install$e(registers) { - registers.registerSeriesModel(TreemapSeriesModel$1); - registers.registerChartView(TreemapView$1); - registers.registerVisual(treemapVisual); - registers.registerLayout(treemapLayout); - installTreemapAction(registers); -} -function categoryFilter(ecModel) { - var legendModels = ecModel.findComponents({ - mainType: "legend" - }); - if (!legendModels || !legendModels.length) { - return; - } - ecModel.eachSeriesByType("graph", function(graphSeries) { - var categoriesData = graphSeries.getCategoriesData(); - var graph = graphSeries.getGraph(); - var data = graph.data; - var categoryNames = categoriesData.mapArray(categoriesData.getName); - data.filterSelf(function(idx) { - var model = data.getItemModel(idx); - var category = model.getShallow("category"); - if (category != null) { - if (isNumber(category)) { - category = categoryNames[category]; - } - for (var i = 0; i < legendModels.length; i++) { - if (!legendModels[i].isSelected(category)) { - return false; - } - } - } - return true; - }); - }); -} -function categoryVisual(ecModel) { - var paletteScope = {}; - ecModel.eachSeriesByType("graph", function(seriesModel) { - var categoriesData = seriesModel.getCategoriesData(); - var data = seriesModel.getData(); - var categoryNameIdxMap = {}; - categoriesData.each(function(idx) { - var name = categoriesData.getName(idx); - categoryNameIdxMap["ec-" + name] = idx; - var itemModel = categoriesData.getItemModel(idx); - var style = itemModel.getModel("itemStyle").getItemStyle(); - if (!style.fill) { - style.fill = seriesModel.getColorFromPalette(name, paletteScope); - } - categoriesData.setItemVisual(idx, "style", style); - var symbolVisualList = ["symbol", "symbolSize", "symbolKeepAspect"]; - for (var i = 0; i < symbolVisualList.length; i++) { - var symbolVisual = itemModel.getShallow(symbolVisualList[i], true); - if (symbolVisual != null) { - categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual); - } - } - }); - if (categoriesData.count()) { - data.each(function(idx) { - var model = data.getItemModel(idx); - var categoryIdx = model.getShallow("category"); - if (categoryIdx != null) { - if (isString(categoryIdx)) { - categoryIdx = categoryNameIdxMap["ec-" + categoryIdx]; - } - var categoryStyle = categoriesData.getItemVisual(categoryIdx, "style"); - var style = data.ensureUniqueItemVisual(idx, "style"); - extend(style, categoryStyle); - var visualList = ["symbol", "symbolSize", "symbolKeepAspect"]; - for (var i = 0; i < visualList.length; i++) { - data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i])); - } - } - }); - } - }); -} -function normalize$1(a) { - if (!(a instanceof Array)) { - a = [a, a]; - } - return a; -} -function graphEdgeVisual(ecModel) { - ecModel.eachSeriesByType("graph", function(seriesModel) { - var graph = seriesModel.getGraph(); - var edgeData = seriesModel.getEdgeData(); - var symbolType = normalize$1(seriesModel.get("edgeSymbol")); - var symbolSize = normalize$1(seriesModel.get("edgeSymbolSize")); - edgeData.setVisual("fromSymbol", symbolType && symbolType[0]); - edgeData.setVisual("toSymbol", symbolType && symbolType[1]); - edgeData.setVisual("fromSymbolSize", symbolSize && symbolSize[0]); - edgeData.setVisual("toSymbolSize", symbolSize && symbolSize[1]); - edgeData.setVisual("style", seriesModel.getModel("lineStyle").getLineStyle()); - edgeData.each(function(idx) { - var itemModel = edgeData.getItemModel(idx); - var edge = graph.getEdgeByIndex(idx); - var symbolType2 = normalize$1(itemModel.getShallow("symbol", true)); - var symbolSize2 = normalize$1(itemModel.getShallow("symbolSize", true)); - var style = itemModel.getModel("lineStyle").getLineStyle(); - var existsStyle = edgeData.ensureUniqueItemVisual(idx, "style"); - extend(existsStyle, style); - switch (existsStyle.stroke) { - case "source": { - var nodeStyle = edge.node1.getVisual("style"); - existsStyle.stroke = nodeStyle && nodeStyle.fill; - break; - } - case "target": { - var nodeStyle = edge.node2.getVisual("style"); - existsStyle.stroke = nodeStyle && nodeStyle.fill; - break; - } - } - symbolType2[0] && edge.setVisual("fromSymbol", symbolType2[0]); - symbolType2[1] && edge.setVisual("toSymbol", symbolType2[1]); - symbolSize2[0] && edge.setVisual("fromSymbolSize", symbolSize2[0]); - symbolSize2[1] && edge.setVisual("toSymbolSize", symbolSize2[1]); - }); - }); -} -var KEY_DELIMITER = "-->"; -var getAutoCurvenessParams = function(seriesModel) { - return seriesModel.get("autoCurveness") || null; -}; -var createCurveness = function(seriesModel, appendLength) { - var autoCurvenessParmas = getAutoCurvenessParams(seriesModel); - var length = 20; - var curvenessList = []; - if (isNumber(autoCurvenessParmas)) { - length = autoCurvenessParmas; - } else if (isArray(autoCurvenessParmas)) { - seriesModel.__curvenessList = autoCurvenessParmas; - return; - } - if (appendLength > length) { - length = appendLength; - } - var len2 = length % 2 ? length + 2 : length + 3; - curvenessList = []; - for (var i = 0; i < len2; i++) { - curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1)); - } - seriesModel.__curvenessList = curvenessList; -}; -var getKeyOfEdges = function(n1, n2, seriesModel) { - var source = [n1.id, n1.dataIndex].join("."); - var target = [n2.id, n2.dataIndex].join("."); - return [seriesModel.uid, source, target].join(KEY_DELIMITER); -}; -var getOppositeKey = function(key) { - var keys2 = key.split(KEY_DELIMITER); - return [keys2[0], keys2[2], keys2[1]].join(KEY_DELIMITER); -}; -var getEdgeFromMap = function(edge, seriesModel) { - var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel); - return seriesModel.__edgeMap[key]; -}; -var getTotalLengthBetweenNodes = function(edge, seriesModel) { - var len2 = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel); - var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel); - return len2 + lenV; -}; -var getEdgeMapLengthWithKey = function(key, seriesModel) { - var edgeMap = seriesModel.__edgeMap; - return edgeMap[key] ? edgeMap[key].length : 0; -}; -function initCurvenessList(seriesModel) { - if (!getAutoCurvenessParams(seriesModel)) { - return; - } - seriesModel.__curvenessList = []; - seriesModel.__edgeMap = {}; - createCurveness(seriesModel); -} -function createEdgeMapForCurveness(n1, n2, seriesModel, index) { - if (!getAutoCurvenessParams(seriesModel)) { - return; - } - var key = getKeyOfEdges(n1, n2, seriesModel); - var edgeMap = seriesModel.__edgeMap; - var oppositeEdges = edgeMap[getOppositeKey(key)]; - if (edgeMap[key] && !oppositeEdges) { - edgeMap[key].isForward = true; - } else if (oppositeEdges && edgeMap[key]) { - oppositeEdges.isForward = true; - edgeMap[key].isForward = false; - } - edgeMap[key] = edgeMap[key] || []; - edgeMap[key].push(index); -} -function getCurvenessForEdge(edge, seriesModel, index, needReverse) { - var autoCurvenessParams = getAutoCurvenessParams(seriesModel); - var isArrayParam = isArray(autoCurvenessParams); - if (!autoCurvenessParams) { - return null; - } - var edgeArray = getEdgeFromMap(edge, seriesModel); - if (!edgeArray) { - return null; - } - var edgeIndex = -1; - for (var i = 0; i < edgeArray.length; i++) { - if (edgeArray[i] === index) { - edgeIndex = i; - break; - } - } - var totalLen = getTotalLengthBetweenNodes(edge, seriesModel); - createCurveness(seriesModel, totalLen); - edge.lineStyle = edge.lineStyle || {}; - var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel); - var curvenessList = seriesModel.__curvenessList; - var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1; - if (!edgeArray.isForward) { - var oppositeKey = getOppositeKey(curKey); - var len2 = getEdgeMapLengthWithKey(oppositeKey, seriesModel); - var resValue = curvenessList[edgeIndex + len2 + parityCorrection]; - if (needReverse) { - if (isArrayParam) { - if (autoCurvenessParams && autoCurvenessParams[0] === 0) { - return (len2 + parityCorrection) % 2 ? resValue : -resValue; - } else { - return ((len2 % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue; - } - } else { - return (len2 + parityCorrection) % 2 ? resValue : -resValue; - } - } else { - return curvenessList[edgeIndex + len2 + parityCorrection]; - } - } else { - return curvenessList[parityCorrection + edgeIndex]; - } -} -function simpleLayout(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - if (coordSys && coordSys.type !== "view") { - return; - } - var graph = seriesModel.getGraph(); - graph.eachNode(function(node) { - var model = node.getModel(); - node.setLayout([+model.get("x"), +model.get("y")]); - }); - simpleLayoutEdge(graph, seriesModel); -} -function simpleLayoutEdge(graph, seriesModel) { - graph.eachEdge(function(edge, index) { - var curveness = retrieve3(edge.getModel().get(["lineStyle", "curveness"]), -getCurvenessForEdge(edge, seriesModel, index, true), 0); - var p1 = clone$1(edge.node1.getLayout()); - var p2 = clone$1(edge.node2.getLayout()); - var points = [p1, p2]; - if (+curveness) { - points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]); - } - edge.setLayout(points); - }); -} -function graphSimpleLayout(ecModel, api) { - ecModel.eachSeriesByType("graph", function(seriesModel) { - var layout2 = seriesModel.get("layout"); - var coordSys = seriesModel.coordinateSystem; - if (coordSys && coordSys.type !== "view") { - var data_1 = seriesModel.getData(); - var dimensions_1 = []; - each$2(coordSys.dimensions, function(coordDim) { - dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim)); - }); - for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) { - var value = []; - var hasValue = false; - for (var i = 0; i < dimensions_1.length; i++) { - var val = data_1.get(dimensions_1[i], dataIndex); - if (!isNaN(val)) { - hasValue = true; - } - value.push(val); - } - if (hasValue) { - data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value)); - } else { - data_1.setItemLayout(dataIndex, [NaN, NaN]); - } - } - simpleLayoutEdge(data_1.graph, seriesModel); - } else if (!layout2 || layout2 === "none") { - simpleLayout(seriesModel); - } - }); -} -function getNodeGlobalScale(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - if (coordSys.type !== "view") { - return 1; - } - var nodeScaleRatio = seriesModel.option.nodeScaleRatio; - var groupZoom = coordSys.scaleX; - var roamZoom = coordSys.getZoom(); - var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1; - return nodeScale / groupZoom; -} -function getSymbolSize(node) { - var symbolSize = node.getVisual("symbolSize"); - if (symbolSize instanceof Array) { - symbolSize = (symbolSize[0] + symbolSize[1]) / 2; - } - return +symbolSize; -} -var PI = Math.PI; -var _symbolRadiansHalf = []; -function circularLayout(seriesModel, basedOn, draggingNode, pointer) { - var coordSys = seriesModel.coordinateSystem; - if (coordSys && coordSys.type !== "view") { - return; - } - var rect = coordSys.getBoundingRect(); - var nodeData = seriesModel.getData(); - var graph = nodeData.graph; - var cx = rect.width / 2 + rect.x; - var cy = rect.height / 2 + rect.y; - var r = Math.min(rect.width, rect.height) / 2; - var count = nodeData.count(); - nodeData.setLayout({ - cx, - cy - }); - if (!count) { - return; - } - if (draggingNode) { - var _a = coordSys.pointToData(pointer), tempX = _a[0], tempY = _a[1]; - var v = [tempX - cx, tempY - cy]; - normalize$2(v, v); - scale$1(v, v, r); - draggingNode.setLayout([cx + v[0], cy + v[1]], true); - var circularRotateLabel = seriesModel.get(["circular", "rotateLabel"]); - rotateNodeLabel(draggingNode, circularRotateLabel, cx, cy); - } - _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count); - graph.eachEdge(function(edge, index) { - var curveness = retrieve3(edge.getModel().get(["lineStyle", "curveness"]), getCurvenessForEdge(edge, seriesModel, index), 0); - var p1 = clone$1(edge.node1.getLayout()); - var p2 = clone$1(edge.node2.getLayout()); - var cp1; - var x12 = (p1[0] + p2[0]) / 2; - var y12 = (p1[1] + p2[1]) / 2; - if (+curveness) { - curveness *= 3; - cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)]; - } - edge.setLayout([p1, p2, cp1]); - }); -} -var _layoutNodesBasedOn = { - value: function(seriesModel, graph, nodeData, r, cx, cy, count) { - var angle = 0; - var sum2 = nodeData.getSum("value"); - var unitAngle = Math.PI * 2 / (sum2 || count); - graph.eachNode(function(node) { - var value = node.getValue("value"); - var radianHalf = unitAngle * (sum2 ? value : 1) / 2; - angle += radianHalf; - node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]); - angle += radianHalf; - }); - }, - symbolSize: function(seriesModel, graph, nodeData, r, cx, cy, count) { - var sumRadian = 0; - _symbolRadiansHalf.length = count; - var nodeScale = getNodeGlobalScale(seriesModel); - graph.eachNode(function(node) { - var symbolSize = getSymbolSize(node); - isNaN(symbolSize) && (symbolSize = 2); - symbolSize < 0 && (symbolSize = 0); - symbolSize *= nodeScale; - var symbolRadianHalf = Math.asin(symbolSize / 2 / r); - isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2); - _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf; - sumRadian += symbolRadianHalf * 2; - }); - var halfRemainRadian = (2 * PI - sumRadian) / count / 2; - var angle = 0; - graph.eachNode(function(node) { - var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex]; - angle += radianHalf; - (!node.getLayout() || !node.getLayout().fixed) && node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]); - angle += radianHalf; - }); - } -}; -function rotateNodeLabel(node, circularRotateLabel, cx, cy) { - var el = node.getGraphicEl(); - if (!el) { - return; - } - var nodeModel = node.getModel(); - var labelRotate = nodeModel.get(["label", "rotate"]) || 0; - var symbolPath = el.getSymbolPath(); - if (circularRotateLabel) { - var pos = node.getLayout(); - var rad = Math.atan2(pos[1] - cy, pos[0] - cx); - if (rad < 0) { - rad = Math.PI * 2 + rad; - } - var isLeft = pos[0] < cx; - if (isLeft) { - rad = rad - Math.PI; - } - var textPosition = isLeft ? "left" : "right"; - symbolPath.setTextConfig({ - rotation: -rad, - position: textPosition, - origin: "center" - }); - var emphasisState = symbolPath.ensureState("emphasis"); - extend(emphasisState.textConfig || (emphasisState.textConfig = {}), { - position: textPosition - }); - } else { - symbolPath.setTextConfig({ - rotation: labelRotate *= Math.PI / 180 - }); - } -} -function graphCircularLayout(ecModel) { - ecModel.eachSeriesByType("graph", function(seriesModel) { - if (seriesModel.get("layout") === "circular") { - circularLayout(seriesModel, "symbolSize"); - } - }); -} -var scaleAndAdd = scaleAndAdd$1; -function forceLayout(inNodes, inEdges, opts) { - var nodes = inNodes; - var edges = inEdges; - var rect = opts.rect; - var width = rect.width; - var height = rect.height; - var center2 = [rect.x + width / 2, rect.y + height / 2]; - var gravity = opts.gravity == null ? 0.1 : opts.gravity; - for (var i = 0; i < nodes.length; i++) { - var n = nodes[i]; - if (!n.p) { - n.p = create$1(width * (Math.random() - 0.5) + center2[0], height * (Math.random() - 0.5) + center2[1]); - } - n.pp = clone$1(n.p); - n.edges = null; - } - var initialFriction = opts.friction == null ? 0.6 : opts.friction; - var friction = initialFriction; - var beforeStepCallback; - var afterStepCallback; - return { - warmUp: function() { - friction = initialFriction * 0.8; - }, - setFixed: function(idx) { - nodes[idx].fixed = true; - }, - setUnfixed: function(idx) { - nodes[idx].fixed = false; - }, - /** - * Before step hook - */ - beforeStep: function(cb) { - beforeStepCallback = cb; - }, - /** - * After step hook - */ - afterStep: function(cb) { - afterStepCallback = cb; - }, - /** - * Some formulas were originally copied from "d3.js" - * https://github.com/d3/d3/blob/b516d77fb8566b576088e73410437494717ada26/src/layout/force.js - * with some modifications made for this project. - * See the license statement at the head of this file. - */ - step: function(cb) { - beforeStepCallback && beforeStepCallback(nodes, edges); - var v12 = []; - var nLen = nodes.length; - for (var i2 = 0; i2 < edges.length; i2++) { - var e = edges[i2]; - if (e.ignoreForceLayout) { - continue; - } - var n1 = e.n1; - var n2 = e.n2; - sub(v12, n2.p, n1.p); - var d = len(v12) - e.d; - var w = n2.w / (n1.w + n2.w); - if (isNaN(w)) { - w = 0; - } - normalize$2(v12, v12); - !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction); - !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction); - } - for (var i2 = 0; i2 < nLen; i2++) { - var n3 = nodes[i2]; - if (!n3.fixed) { - sub(v12, center2, n3.p); - scaleAndAdd(n3.p, n3.p, v12, gravity * friction); - } - } - for (var i2 = 0; i2 < nLen; i2++) { - var n1 = nodes[i2]; - for (var j = i2 + 1; j < nLen; j++) { - var n2 = nodes[j]; - sub(v12, n2.p, n1.p); - var d = len(v12); - if (d === 0) { - set(v12, Math.random() - 0.5, Math.random() - 0.5); - d = 1; - } - var repFact = (n1.rep + n2.rep) / d / d; - !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact); - !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact); - } - } - var v = []; - for (var i2 = 0; i2 < nLen; i2++) { - var n3 = nodes[i2]; - if (!n3.fixed) { - sub(v, n3.p, n3.pp); - scaleAndAdd(n3.p, n3.p, v, friction); - copy(n3.pp, n3.p); - } - } - friction = friction * 0.992; - var finished = friction < 0.01; - afterStepCallback && afterStepCallback(nodes, edges, finished); - cb && cb(finished); - } - }; -} -function graphForceLayout(ecModel) { - ecModel.eachSeriesByType("graph", function(graphSeries) { - var coordSys = graphSeries.coordinateSystem; - if (coordSys && coordSys.type !== "view") { - return; - } - if (graphSeries.get("layout") === "force") { - var preservedPoints_1 = graphSeries.preservedPoints || {}; - var graph_1 = graphSeries.getGraph(); - var nodeData_1 = graph_1.data; - var edgeData = graph_1.edgeData; - var forceModel = graphSeries.getModel("force"); - var initLayout = forceModel.get("initLayout"); - if (graphSeries.preservedPoints) { - nodeData_1.each(function(idx) { - var id = nodeData_1.getId(idx); - nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]); - }); - } else if (!initLayout || initLayout === "none") { - simpleLayout(graphSeries); - } else if (initLayout === "circular") { - circularLayout(graphSeries, "value"); - } - var nodeDataExtent_1 = nodeData_1.getDataExtent("value"); - var edgeDataExtent_1 = edgeData.getDataExtent("value"); - var repulsion = forceModel.get("repulsion"); - var edgeLength = forceModel.get("edgeLength"); - var repulsionArr_1 = isArray(repulsion) ? repulsion : [repulsion, repulsion]; - var edgeLengthArr_1 = isArray(edgeLength) ? edgeLength : [edgeLength, edgeLength]; - edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]]; - var nodes_1 = nodeData_1.mapArray("value", function(value, idx) { - var point = nodeData_1.getItemLayout(idx); - var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1); - if (isNaN(rep)) { - rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2; - } - return { - w: rep, - rep, - fixed: nodeData_1.getItemModel(idx).get("fixed"), - p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point - }; - }); - var edges = edgeData.mapArray("value", function(value, idx) { - var edge = graph_1.getEdgeByIndex(idx); - var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1); - if (isNaN(d)) { - d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2; - } - var edgeModel = edge.getModel(); - var curveness = retrieve3(edge.getModel().get(["lineStyle", "curveness"]), -getCurvenessForEdge(edge, graphSeries, idx, true), 0); - return { - n1: nodes_1[edge.node1.dataIndex], - n2: nodes_1[edge.node2.dataIndex], - d, - curveness, - ignoreForceLayout: edgeModel.get("ignoreForceLayout") - }; - }); - var rect = coordSys.getBoundingRect(); - var forceInstance = forceLayout(nodes_1, edges, { - rect, - gravity: forceModel.get("gravity"), - friction: forceModel.get("friction") - }); - forceInstance.beforeStep(function(nodes, edges2) { - for (var i = 0, l = nodes.length; i < l; i++) { - if (nodes[i].fixed) { - copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout()); - } - } - }); - forceInstance.afterStep(function(nodes, edges2, stopped) { - for (var i = 0, l = nodes.length; i < l; i++) { - if (!nodes[i].fixed) { - graph_1.getNodeByIndex(i).setLayout(nodes[i].p); - } - preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p; - } - for (var i = 0, l = edges2.length; i < l; i++) { - var e = edges2[i]; - var edge = graph_1.getEdgeByIndex(i); - var p1 = e.n1.p; - var p2 = e.n2.p; - var points = edge.getLayout(); - points = points ? points.slice() : []; - points[0] = points[0] || []; - points[1] = points[1] || []; - copy(points[0], p1); - copy(points[1], p2); - if (+e.curveness) { - points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness]; - } - edge.setLayout(points); - } - }); - graphSeries.forceLayout = forceInstance; - graphSeries.preservedPoints = preservedPoints_1; - forceInstance.step(); - } else { - graphSeries.forceLayout = null; - } - }); -} -function getViewRect$2(seriesModel, api, aspect) { - var option = extend(seriesModel.getBoxLayoutParams(), { - aspect - }); - return getLayoutRect(option, { - width: api.getWidth(), - height: api.getHeight() - }); -} -function createViewCoordSys(ecModel, api) { - var viewList = []; - ecModel.eachSeriesByType("graph", function(seriesModel) { - var coordSysType = seriesModel.get("coordinateSystem"); - if (!coordSysType || coordSysType === "view") { - var data_1 = seriesModel.getData(); - var positions = data_1.mapArray(function(idx) { - var itemModel = data_1.getItemModel(idx); - return [+itemModel.get("x"), +itemModel.get("y")]; - }); - var min = []; - var max = []; - fromPoints(positions, min, max); - if (max[0] - min[0] === 0) { - max[0] += 1; - min[0] -= 1; - } - if (max[1] - min[1] === 0) { - max[1] += 1; - min[1] -= 1; - } - var aspect = (max[0] - min[0]) / (max[1] - min[1]); - var viewRect = getViewRect$2(seriesModel, api, aspect); - if (isNaN(aspect)) { - min = [viewRect.x, viewRect.y]; - max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height]; - } - var bbWidth = max[0] - min[0]; - var bbHeight = max[1] - min[1]; - var viewWidth = viewRect.width; - var viewHeight = viewRect.height; - var viewCoordSys = seriesModel.coordinateSystem = new View(); - viewCoordSys.zoomLimit = seriesModel.get("scaleLimit"); - viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight); - viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight); - viewCoordSys.setCenter(seriesModel.get("center"), api); - viewCoordSys.setZoom(seriesModel.get("zoom")); - viewList.push(viewCoordSys); - } - }); - return viewList; -} -var v1 = []; -var v2 = []; -var v3 = []; -var quadraticAt = quadraticAt$1; -var v2DistSquare = distSquare; -var mathAbs = Math.abs; -function intersectCurveCircle(curvePoints, center2, radius) { - var p0 = curvePoints[0]; - var p1 = curvePoints[1]; - var p2 = curvePoints[2]; - var d = Infinity; - var t; - var radiusSquare = radius * radius; - var interval = 0.1; - for (var _t = 0.1; _t <= 0.9; _t += 0.1) { - v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t); - v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t); - var diff = mathAbs(v2DistSquare(v1, center2) - radiusSquare); - if (diff < d) { - d = diff; - t = _t; - } - } - for (var i = 0; i < 32; i++) { - var next = t + interval; - v2[0] = quadraticAt(p0[0], p1[0], p2[0], t); - v2[1] = quadraticAt(p0[1], p1[1], p2[1], t); - v3[0] = quadraticAt(p0[0], p1[0], p2[0], next); - v3[1] = quadraticAt(p0[1], p1[1], p2[1], next); - var diff = v2DistSquare(v2, center2) - radiusSquare; - if (mathAbs(diff) < 0.01) { - break; - } - var nextDiff = v2DistSquare(v3, center2) - radiusSquare; - interval /= 2; - if (diff < 0) { - if (nextDiff >= 0) { - t = t + interval; - } else { - t = t - interval; - } - } else { - if (nextDiff >= 0) { - t = t - interval; - } else { - t = t + interval; - } - } - } - return t; -} -function adjustEdge(graph, scale2) { - var tmp0 = []; - var quadraticSubdivide$1 = quadraticSubdivide; - var pts = [[], [], []]; - var pts2 = [[], []]; - var v = []; - scale2 /= 2; - graph.eachEdge(function(edge, idx) { - var linePoints = edge.getLayout(); - var fromSymbol = edge.getVisual("fromSymbol"); - var toSymbol = edge.getVisual("toSymbol"); - if (!linePoints.__original) { - linePoints.__original = [clone$1(linePoints[0]), clone$1(linePoints[1])]; - if (linePoints[2]) { - linePoints.__original.push(clone$1(linePoints[2])); - } - } - var originalPoints = linePoints.__original; - if (linePoints[2] != null) { - copy(pts[0], originalPoints[0]); - copy(pts[1], originalPoints[2]); - copy(pts[2], originalPoints[1]); - if (fromSymbol && fromSymbol !== "none") { - var symbolSize = getSymbolSize(edge.node1); - var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale2); - quadraticSubdivide$1(pts[0][0], pts[1][0], pts[2][0], t, tmp0); - pts[0][0] = tmp0[3]; - pts[1][0] = tmp0[4]; - quadraticSubdivide$1(pts[0][1], pts[1][1], pts[2][1], t, tmp0); - pts[0][1] = tmp0[3]; - pts[1][1] = tmp0[4]; - } - if (toSymbol && toSymbol !== "none") { - var symbolSize = getSymbolSize(edge.node2); - var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale2); - quadraticSubdivide$1(pts[0][0], pts[1][0], pts[2][0], t, tmp0); - pts[1][0] = tmp0[1]; - pts[2][0] = tmp0[2]; - quadraticSubdivide$1(pts[0][1], pts[1][1], pts[2][1], t, tmp0); - pts[1][1] = tmp0[1]; - pts[2][1] = tmp0[2]; - } - copy(linePoints[0], pts[0]); - copy(linePoints[1], pts[2]); - copy(linePoints[2], pts[1]); - } else { - copy(pts2[0], originalPoints[0]); - copy(pts2[1], originalPoints[1]); - sub(v, pts2[1], pts2[0]); - normalize$2(v, v); - if (fromSymbol && fromSymbol !== "none") { - var symbolSize = getSymbolSize(edge.node1); - scaleAndAdd$1(pts2[0], pts2[0], v, symbolSize * scale2); - } - if (toSymbol && toSymbol !== "none") { - var symbolSize = getSymbolSize(edge.node2); - scaleAndAdd$1(pts2[1], pts2[1], v, -symbolSize * scale2); - } - copy(linePoints[0], pts2[0]); - copy(linePoints[1], pts2[1]); - } - }); -} -function isViewCoordSys(coordSys) { - return coordSys.type === "view"; -} -var GraphView = ( - /** @class */ - function(_super) { - __extends(GraphView2, _super); - function GraphView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = GraphView2.type; - return _this; - } - GraphView2.prototype.init = function(ecModel, api) { - var symbolDraw = new SymbolDraw(); - var lineDraw = new LineDraw(); - var group = this.group; - this._controller = new RoamController(api.getZr()); - this._controllerHost = { - target: group - }; - group.add(symbolDraw.group); - group.add(lineDraw.group); - this._symbolDraw = symbolDraw; - this._lineDraw = lineDraw; - this._firstRender = true; - }; - GraphView2.prototype.render = function(seriesModel, ecModel, api) { - var _this = this; - var coordSys = seriesModel.coordinateSystem; - this._model = seriesModel; - var symbolDraw = this._symbolDraw; - var lineDraw = this._lineDraw; - var group = this.group; - if (isViewCoordSys(coordSys)) { - var groupNewProp = { - x: coordSys.x, - y: coordSys.y, - scaleX: coordSys.scaleX, - scaleY: coordSys.scaleY - }; - if (this._firstRender) { - group.attr(groupNewProp); - } else { - updateProps(group, groupNewProp, seriesModel); - } - } - adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel)); - var data = seriesModel.getData(); - symbolDraw.updateData(data); - var edgeData = seriesModel.getEdgeData(); - lineDraw.updateData(edgeData); - this._updateNodeAndLinkScale(); - this._updateController(seriesModel, ecModel, api); - clearTimeout(this._layoutTimeout); - var forceLayout2 = seriesModel.forceLayout; - var layoutAnimation = seriesModel.get(["force", "layoutAnimation"]); - if (forceLayout2) { - this._startForceLayoutIteration(forceLayout2, layoutAnimation); - } - var layout2 = seriesModel.get("layout"); - data.graph.eachNode(function(node) { - var idx = node.dataIndex; - var el = node.getGraphicEl(); - var itemModel = node.getModel(); - if (!el) { - return; - } - el.off("drag").off("dragend"); - var draggable = itemModel.get("draggable"); - if (draggable) { - el.on("drag", function(e) { - switch (layout2) { - case "force": - forceLayout2.warmUp(); - !_this._layouting && _this._startForceLayoutIteration(forceLayout2, layoutAnimation); - forceLayout2.setFixed(idx); - data.setItemLayout(idx, [el.x, el.y]); - break; - case "circular": - data.setItemLayout(idx, [el.x, el.y]); - node.setLayout({ - fixed: true - }, true); - circularLayout(seriesModel, "symbolSize", node, [e.offsetX, e.offsetY]); - _this.updateLayout(seriesModel); - break; - case "none": - default: - data.setItemLayout(idx, [el.x, el.y]); - simpleLayoutEdge(seriesModel.getGraph(), seriesModel); - _this.updateLayout(seriesModel); - break; - } - }).on("dragend", function() { - if (forceLayout2) { - forceLayout2.setUnfixed(idx); - } - }); - } - el.setDraggable(draggable, !!itemModel.get("cursor")); - var focus = itemModel.get(["emphasis", "focus"]); - if (focus === "adjacency") { - getECData(el).focus = node.getAdjacentDataIndices(); - } - }); - data.graph.eachEdge(function(edge) { - var el = edge.getGraphicEl(); - var focus = edge.getModel().get(["emphasis", "focus"]); - if (!el) { - return; - } - if (focus === "adjacency") { - getECData(el).focus = { - edge: [edge.dataIndex], - node: [edge.node1.dataIndex, edge.node2.dataIndex] - }; - } - }); - var circularRotateLabel = seriesModel.get("layout") === "circular" && seriesModel.get(["circular", "rotateLabel"]); - var cx = data.getLayout("cx"); - var cy = data.getLayout("cy"); - data.graph.eachNode(function(node) { - rotateNodeLabel(node, circularRotateLabel, cx, cy); - }); - this._firstRender = false; - }; - GraphView2.prototype.dispose = function() { - this._controller && this._controller.dispose(); - this._controllerHost = null; - }; - GraphView2.prototype._startForceLayoutIteration = function(forceLayout2, layoutAnimation) { - var self = this; - (function step() { - forceLayout2.step(function(stopped) { - self.updateLayout(self._model); - (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step()); - }); - })(); - }; - GraphView2.prototype._updateController = function(seriesModel, ecModel, api) { - var _this = this; - var controller = this._controller; - var controllerHost = this._controllerHost; - var group = this.group; - controller.setPointerChecker(function(e, x, y) { - var rect = group.getBoundingRect(); - rect.applyTransform(group.transform); - return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel); - }); - if (!isViewCoordSys(seriesModel.coordinateSystem)) { - controller.disable(); - return; - } - controller.enable(seriesModel.get("roam")); - controllerHost.zoomLimit = seriesModel.get("scaleLimit"); - controllerHost.zoom = seriesModel.coordinateSystem.getZoom(); - controller.off("pan").off("zoom").on("pan", function(e) { - updateViewOnPan(controllerHost, e.dx, e.dy); - api.dispatchAction({ - seriesId: seriesModel.id, - type: "graphRoam", - dx: e.dx, - dy: e.dy - }); - }).on("zoom", function(e) { - updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY); - api.dispatchAction({ - seriesId: seriesModel.id, - type: "graphRoam", - zoom: e.scale, - originX: e.originX, - originY: e.originY - }); - _this._updateNodeAndLinkScale(); - adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel)); - _this._lineDraw.updateLayout(); - api.updateLabelLayout(); - }); - }; - GraphView2.prototype._updateNodeAndLinkScale = function() { - var seriesModel = this._model; - var data = seriesModel.getData(); - var nodeScale = getNodeGlobalScale(seriesModel); - data.eachItemGraphicEl(function(el, idx) { - el && el.setSymbolScale(nodeScale); - }); - }; - GraphView2.prototype.updateLayout = function(seriesModel) { - adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel)); - this._symbolDraw.updateLayout(); - this._lineDraw.updateLayout(); - }; - GraphView2.prototype.remove = function(ecModel, api) { - this._symbolDraw && this._symbolDraw.remove(); - this._lineDraw && this._lineDraw.remove(); - }; - GraphView2.type = "graph"; - return GraphView2; - }(ChartView) -); -const GraphView$1 = GraphView; -function generateNodeKey(id) { - return "_EC_" + id; -} -var Graph = ( - /** @class */ - function() { - function Graph2(directed) { - this.type = "graph"; - this.nodes = []; - this.edges = []; - this._nodesMap = {}; - this._edgesMap = {}; - this._directed = directed || false; - } - Graph2.prototype.isDirected = function() { - return this._directed; - }; - Graph2.prototype.addNode = function(id, dataIndex) { - id = id == null ? "" + dataIndex : "" + id; - var nodesMap = this._nodesMap; - if (nodesMap[generateNodeKey(id)]) { - return; - } - var node = new GraphNode(id, dataIndex); - node.hostGraph = this; - this.nodes.push(node); - nodesMap[generateNodeKey(id)] = node; - return node; - }; - Graph2.prototype.getNodeByIndex = function(dataIndex) { - var rawIdx = this.data.getRawIndex(dataIndex); - return this.nodes[rawIdx]; - }; - Graph2.prototype.getNodeById = function(id) { - return this._nodesMap[generateNodeKey(id)]; - }; - Graph2.prototype.addEdge = function(n1, n2, dataIndex) { - var nodesMap = this._nodesMap; - var edgesMap = this._edgesMap; - if (isNumber(n1)) { - n1 = this.nodes[n1]; - } - if (isNumber(n2)) { - n2 = this.nodes[n2]; - } - if (!(n1 instanceof GraphNode)) { - n1 = nodesMap[generateNodeKey(n1)]; - } - if (!(n2 instanceof GraphNode)) { - n2 = nodesMap[generateNodeKey(n2)]; - } - if (!n1 || !n2) { - return; - } - var key = n1.id + "-" + n2.id; - var edge = new GraphEdge(n1, n2, dataIndex); - edge.hostGraph = this; - if (this._directed) { - n1.outEdges.push(edge); - n2.inEdges.push(edge); - } - n1.edges.push(edge); - if (n1 !== n2) { - n2.edges.push(edge); - } - this.edges.push(edge); - edgesMap[key] = edge; - return edge; - }; - Graph2.prototype.getEdgeByIndex = function(dataIndex) { - var rawIdx = this.edgeData.getRawIndex(dataIndex); - return this.edges[rawIdx]; - }; - Graph2.prototype.getEdge = function(n1, n2) { - if (n1 instanceof GraphNode) { - n1 = n1.id; - } - if (n2 instanceof GraphNode) { - n2 = n2.id; - } - var edgesMap = this._edgesMap; - if (this._directed) { - return edgesMap[n1 + "-" + n2]; - } else { - return edgesMap[n1 + "-" + n2] || edgesMap[n2 + "-" + n1]; - } - }; - Graph2.prototype.eachNode = function(cb, context) { - var nodes = this.nodes; - var len2 = nodes.length; - for (var i = 0; i < len2; i++) { - if (nodes[i].dataIndex >= 0) { - cb.call(context, nodes[i], i); - } - } - }; - Graph2.prototype.eachEdge = function(cb, context) { - var edges = this.edges; - var len2 = edges.length; - for (var i = 0; i < len2; i++) { - if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) { - cb.call(context, edges[i], i); - } - } - }; - Graph2.prototype.breadthFirstTraverse = function(cb, startNode, direction, context) { - if (!(startNode instanceof GraphNode)) { - startNode = this._nodesMap[generateNodeKey(startNode)]; - } - if (!startNode) { - return; - } - var edgeType = direction === "out" ? "outEdges" : direction === "in" ? "inEdges" : "edges"; - for (var i = 0; i < this.nodes.length; i++) { - this.nodes[i].__visited = false; - } - if (cb.call(context, startNode, null)) { - return; - } - var queue = [startNode]; - while (queue.length) { - var currentNode = queue.shift(); - var edges = currentNode[edgeType]; - for (var i = 0; i < edges.length; i++) { - var e = edges[i]; - var otherNode = e.node1 === currentNode ? e.node2 : e.node1; - if (!otherNode.__visited) { - if (cb.call(context, otherNode, currentNode)) { - return; - } - queue.push(otherNode); - otherNode.__visited = true; - } - } - } - }; - Graph2.prototype.update = function() { - var data = this.data; - var edgeData = this.edgeData; - var nodes = this.nodes; - var edges = this.edges; - for (var i = 0, len2 = nodes.length; i < len2; i++) { - nodes[i].dataIndex = -1; - } - for (var i = 0, len2 = data.count(); i < len2; i++) { - nodes[data.getRawIndex(i)].dataIndex = i; - } - edgeData.filterSelf(function(idx) { - var edge = edges[edgeData.getRawIndex(idx)]; - return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0; - }); - for (var i = 0, len2 = edges.length; i < len2; i++) { - edges[i].dataIndex = -1; - } - for (var i = 0, len2 = edgeData.count(); i < len2; i++) { - edges[edgeData.getRawIndex(i)].dataIndex = i; - } - }; - Graph2.prototype.clone = function() { - var graph = new Graph2(this._directed); - var nodes = this.nodes; - var edges = this.edges; - for (var i = 0; i < nodes.length; i++) { - graph.addNode(nodes[i].id, nodes[i].dataIndex); - } - for (var i = 0; i < edges.length; i++) { - var e = edges[i]; - graph.addEdge(e.node1.id, e.node2.id, e.dataIndex); - } - return graph; - }; - return Graph2; - }() -); -var GraphNode = ( - /** @class */ - function() { - function GraphNode2(id, dataIndex) { - this.inEdges = []; - this.outEdges = []; - this.edges = []; - this.dataIndex = -1; - this.id = id == null ? "" : id; - this.dataIndex = dataIndex == null ? -1 : dataIndex; - } - GraphNode2.prototype.degree = function() { - return this.edges.length; - }; - GraphNode2.prototype.inDegree = function() { - return this.inEdges.length; - }; - GraphNode2.prototype.outDegree = function() { - return this.outEdges.length; - }; - GraphNode2.prototype.getModel = function(path) { - if (this.dataIndex < 0) { - return; - } - var graph = this.hostGraph; - var itemModel = graph.data.getItemModel(this.dataIndex); - return itemModel.getModel(path); - }; - GraphNode2.prototype.getAdjacentDataIndices = function() { - var dataIndices = { - edge: [], - node: [] - }; - for (var i = 0; i < this.edges.length; i++) { - var adjacentEdge = this.edges[i]; - if (adjacentEdge.dataIndex < 0) { - continue; - } - dataIndices.edge.push(adjacentEdge.dataIndex); - dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex); - } - return dataIndices; - }; - return GraphNode2; - }() -); -var GraphEdge = ( - /** @class */ - function() { - function GraphEdge2(n1, n2, dataIndex) { - this.dataIndex = -1; - this.node1 = n1; - this.node2 = n2; - this.dataIndex = dataIndex == null ? -1 : dataIndex; - } - GraphEdge2.prototype.getModel = function(path) { - if (this.dataIndex < 0) { - return; - } - var graph = this.hostGraph; - var itemModel = graph.edgeData.getItemModel(this.dataIndex); - return itemModel.getModel(path); - }; - GraphEdge2.prototype.getAdjacentDataIndices = function() { - return { - edge: [this.dataIndex], - node: [this.node1.dataIndex, this.node2.dataIndex] - }; - }; - return GraphEdge2; - }() -); -function createGraphDataProxyMixin(hostName, dataName) { - return { - /** - * @param Default 'value'. can be 'a', 'b', 'c', 'd', 'e'. - */ - getValue: function(dimension) { - var data = this[hostName][dataName]; - return data.getStore().get(data.getDimensionIndex(dimension || "value"), this.dataIndex); - }, - // TODO: TYPE stricter type. - setVisual: function(key, value) { - this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value); - }, - getVisual: function(key) { - return this[hostName][dataName].getItemVisual(this.dataIndex, key); - }, - setLayout: function(layout2, merge) { - this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout2, merge); - }, - getLayout: function() { - return this[hostName][dataName].getItemLayout(this.dataIndex); - }, - getGraphicEl: function() { - return this[hostName][dataName].getItemGraphicEl(this.dataIndex); - }, - getRawIndex: function() { - return this[hostName][dataName].getRawIndex(this.dataIndex); - } - }; -} -mixin(GraphNode, createGraphDataProxyMixin("hostGraph", "data")); -mixin(GraphEdge, createGraphDataProxyMixin("hostGraph", "edgeData")); -const Graph$1 = Graph; -function createGraphFromNodeEdge(nodes, edges, seriesModel, directed, beforeLink) { - var graph = new Graph$1(directed); - for (var i = 0; i < nodes.length; i++) { - graph.addNode(retrieve( - // Id, name, dataIndex - nodes[i].id, - nodes[i].name, - i - ), i); - } - var linkNameList = []; - var validEdges = []; - var linkCount = 0; - for (var i = 0; i < edges.length; i++) { - var link = edges[i]; - var source = link.source; - var target = link.target; - if (graph.addEdge(source, target, linkCount)) { - validEdges.push(link); - linkNameList.push(retrieve(convertOptionIdName(link.id, null), source + " > " + target)); - linkCount++; - } - } - var coordSys = seriesModel.get("coordinateSystem"); - var nodeData; - if (coordSys === "cartesian2d" || coordSys === "polar") { - nodeData = createSeriesData(nodes, seriesModel); - } else { - var coordSysCtor = CoordinateSystem.get(coordSys); - var coordDimensions = coordSysCtor ? coordSysCtor.dimensions || [] : []; - if (indexOf(coordDimensions, "value") < 0) { - coordDimensions.concat(["value"]); - } - var dimensions = prepareSeriesDataSchema(nodes, { - coordDimensions, - encodeDefine: seriesModel.getEncode() - }).dimensions; - nodeData = new SeriesData(dimensions, seriesModel); - nodeData.initData(nodes); - } - var edgeData = new SeriesData(["value"], seriesModel); - edgeData.initData(validEdges, linkNameList); - beforeLink && beforeLink(nodeData, edgeData); - linkSeriesData({ - mainData: nodeData, - struct: graph, - structAttr: "graph", - datas: { - node: nodeData, - edge: edgeData - }, - datasAttr: { - node: "data", - edge: "edgeData" - } - }); - graph.update(); - return graph; -} -var GraphSeriesModel = ( - /** @class */ - function(_super) { - __extends(GraphSeriesModel2, _super); - function GraphSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = GraphSeriesModel2.type; - _this.hasSymbolVisual = true; - return _this; - } - GraphSeriesModel2.prototype.init = function(option) { - _super.prototype.init.apply(this, arguments); - var self = this; - function getCategoriesData() { - return self._categoriesData; - } - this.legendVisualProvider = new LegendVisualProvider$1(getCategoriesData, getCategoriesData); - this.fillDataTextStyle(option.edges || option.links); - this._updateCategoriesData(); - }; - GraphSeriesModel2.prototype.mergeOption = function(option) { - _super.prototype.mergeOption.apply(this, arguments); - this.fillDataTextStyle(option.edges || option.links); - this._updateCategoriesData(); - }; - GraphSeriesModel2.prototype.mergeDefaultAndTheme = function(option) { - _super.prototype.mergeDefaultAndTheme.apply(this, arguments); - defaultEmphasis(option, "edgeLabel", ["show"]); - }; - GraphSeriesModel2.prototype.getInitialData = function(option, ecModel) { - var edges = option.edges || option.links || []; - var nodes = option.data || option.nodes || []; - var self = this; - if (nodes && edges) { - initCurvenessList(this); - var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink); - each$2(graph.edges, function(edge) { - createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex); - }, this); - return graph.data; - } - function beforeLink(nodeData, edgeData) { - nodeData.wrapMethod("getItemModel", function(model) { - var categoriesModels = self._categoriesModels; - var categoryIdx = model.getShallow("category"); - var categoryModel = categoriesModels[categoryIdx]; - if (categoryModel) { - categoryModel.parentModel = model.parentModel; - model.parentModel = categoryModel; - } - return model; - }); - var oldGetModel = Model.prototype.getModel; - function newGetModel(path, parentModel) { - var model = oldGetModel.call(this, path, parentModel); - model.resolveParentPath = resolveParentPath; - return model; - } - edgeData.wrapMethod("getItemModel", function(model) { - model.resolveParentPath = resolveParentPath; - model.getModel = newGetModel; - return model; - }); - function resolveParentPath(pathArr) { - if (pathArr && (pathArr[0] === "label" || pathArr[1] === "label")) { - var newPathArr = pathArr.slice(); - if (pathArr[0] === "label") { - newPathArr[0] = "edgeLabel"; - } else if (pathArr[1] === "label") { - newPathArr[1] = "edgeLabel"; - } - return newPathArr; - } - return pathArr; - } - } - }; - GraphSeriesModel2.prototype.getGraph = function() { - return this.getData().graph; - }; - GraphSeriesModel2.prototype.getEdgeData = function() { - return this.getGraph().edgeData; - }; - GraphSeriesModel2.prototype.getCategoriesData = function() { - return this._categoriesData; - }; - GraphSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - if (dataType === "edge") { - var nodeData = this.getData(); - var params = this.getDataParams(dataIndex, dataType); - var edge = nodeData.graph.getEdgeByIndex(dataIndex); - var sourceName = nodeData.getName(edge.node1.dataIndex); - var targetName = nodeData.getName(edge.node2.dataIndex); - var nameArr = []; - sourceName != null && nameArr.push(sourceName); - targetName != null && nameArr.push(targetName); - return createTooltipMarkup("nameValue", { - name: nameArr.join(" > "), - value: params.value, - noValue: params.value == null - }); - } - var nodeMarkup = defaultSeriesFormatTooltip({ - series: this, - dataIndex, - multipleSeries - }); - return nodeMarkup; - }; - GraphSeriesModel2.prototype._updateCategoriesData = function() { - var categories = map(this.option.categories || [], function(category) { - return category.value != null ? category : extend({ - value: 0 - }, category); - }); - var categoriesData = new SeriesData(["value"], this); - categoriesData.initData(categories); - this._categoriesData = categoriesData; - this._categoriesModels = categoriesData.mapArray(function(idx) { - return categoriesData.getItemModel(idx); - }); - }; - GraphSeriesModel2.prototype.setZoom = function(zoom) { - this.option.zoom = zoom; - }; - GraphSeriesModel2.prototype.setCenter = function(center2) { - this.option.center = center2; - }; - GraphSeriesModel2.prototype.isAnimationEnabled = function() { - return _super.prototype.isAnimationEnabled.call(this) && !(this.get("layout") === "force" && this.get(["force", "layoutAnimation"])); - }; - GraphSeriesModel2.type = "series.graph"; - GraphSeriesModel2.dependencies = ["grid", "polar", "geo", "singleAxis", "calendar"]; - GraphSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - coordinateSystem: "view", - // Default option for all coordinate systems - // xAxisIndex: 0, - // yAxisIndex: 0, - // polarIndex: 0, - // geoIndex: 0, - legendHoverLink: true, - layout: null, - // Configuration of circular layout - circular: { - rotateLabel: false - }, - // Configuration of force directed layout - force: { - initLayout: null, - // Node repulsion. Can be an array to represent range. - repulsion: [0, 50], - gravity: 0.1, - // Initial friction - friction: 0.6, - // Edge length. Can be an array to represent range. - edgeLength: 30, - layoutAnimation: true - }, - left: "center", - top: "center", - // right: null, - // bottom: null, - // width: '80%', - // height: '80%', - symbol: "circle", - symbolSize: 10, - edgeSymbol: ["none", "none"], - edgeSymbolSize: 10, - edgeLabel: { - position: "middle", - distance: 5 - }, - draggable: false, - roam: false, - // Default on center of graph - center: null, - zoom: 1, - // Symbol size scale ratio in roam - nodeScaleRatio: 0.6, - // cursor: null, - // categories: [], - // data: [] - // Or - // nodes: [] - // - // links: [] - // Or - // edges: [] - label: { - show: false, - formatter: "{b}" - }, - itemStyle: {}, - lineStyle: { - color: "#aaa", - width: 1, - opacity: 0.5 - }, - emphasis: { - scale: true, - label: { - show: true - } - }, - select: { - itemStyle: { - borderColor: "#212121" - } - } - }; - return GraphSeriesModel2; - }(SeriesModel) -); -const GraphSeriesModel$1 = GraphSeriesModel; -var actionInfo = { - type: "graphRoam", - event: "graphRoam", - update: "none" -}; -function install$d(registers) { - registers.registerChartView(GraphView$1); - registers.registerSeriesModel(GraphSeriesModel$1); - registers.registerProcessor(categoryFilter); - registers.registerVisual(categoryVisual); - registers.registerVisual(graphEdgeVisual); - registers.registerLayout(graphSimpleLayout); - registers.registerLayout(registers.PRIORITY.VISUAL.POST_CHART_LAYOUT, graphCircularLayout); - registers.registerLayout(graphForceLayout); - registers.registerCoordinateSystem("graphView", { - dimensions: View.dimensions, - create: createViewCoordSys - }); - registers.registerAction({ - type: "focusNodeAdjacency", - event: "focusNodeAdjacency", - update: "series:focusNodeAdjacency" - }, noop); - registers.registerAction({ - type: "unfocusNodeAdjacency", - event: "unfocusNodeAdjacency", - update: "series:unfocusNodeAdjacency" - }, noop); - registers.registerAction(actionInfo, function(payload, ecModel, api) { - ecModel.eachComponent({ - mainType: "series", - query: payload - }, function(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - var res = updateCenterAndZoom(coordSys, payload, void 0, api); - seriesModel.setCenter && seriesModel.setCenter(res.center); - seriesModel.setZoom && seriesModel.setZoom(res.zoom); - }); - }); -} -var PointerShape = ( - /** @class */ - function() { - function PointerShape2() { - this.angle = 0; - this.width = 10; - this.r = 10; - this.x = 0; - this.y = 0; - } - return PointerShape2; - }() -); -var PointerPath = ( - /** @class */ - function(_super) { - __extends(PointerPath2, _super); - function PointerPath2(opts) { - var _this = _super.call(this, opts) || this; - _this.type = "pointer"; - return _this; - } - PointerPath2.prototype.getDefaultShape = function() { - return new PointerShape(); - }; - PointerPath2.prototype.buildPath = function(ctx, shape) { - var mathCos = Math.cos; - var mathSin = Math.sin; - var r = shape.r; - var width = shape.width; - var angle = shape.angle; - var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2); - var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2); - angle = shape.angle - Math.PI / 2; - ctx.moveTo(x, y); - ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width); - ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r); - ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width); - ctx.lineTo(x, y); - }; - return PointerPath2; - }(Path) -); -const PointerPath$1 = PointerPath; -function parsePosition(seriesModel, api) { - var center2 = seriesModel.get("center"); - var width = api.getWidth(); - var height = api.getHeight(); - var size = Math.min(width, height); - var cx = parsePercent$1(center2[0], api.getWidth()); - var cy = parsePercent$1(center2[1], api.getHeight()); - var r = parsePercent$1(seriesModel.get("radius"), size / 2); - return { - cx, - cy, - r - }; -} -function formatLabel(value, labelFormatter) { - var label = value == null ? "" : value + ""; - if (labelFormatter) { - if (isString(labelFormatter)) { - label = labelFormatter.replace("{value}", label); - } else if (isFunction(labelFormatter)) { - label = labelFormatter(value); - } - } - return label; -} -var GaugeView = ( - /** @class */ - function(_super) { - __extends(GaugeView2, _super); - function GaugeView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = GaugeView2.type; - return _this; - } - GaugeView2.prototype.render = function(seriesModel, ecModel, api) { - this.group.removeAll(); - var colorList = seriesModel.get(["axisLine", "lineStyle", "color"]); - var posInfo = parsePosition(seriesModel, api); - this._renderMain(seriesModel, ecModel, api, colorList, posInfo); - this._data = seriesModel.getData(); - }; - GaugeView2.prototype.dispose = function() { - }; - GaugeView2.prototype._renderMain = function(seriesModel, ecModel, api, colorList, posInfo) { - var group = this.group; - var clockwise = seriesModel.get("clockwise"); - var startAngle = -seriesModel.get("startAngle") / 180 * Math.PI; - var endAngle = -seriesModel.get("endAngle") / 180 * Math.PI; - var axisLineModel = seriesModel.getModel("axisLine"); - var roundCap = axisLineModel.get("roundCap"); - var MainPath = roundCap ? Sausage : Sector; - var showAxis = axisLineModel.get("show"); - var lineStyleModel = axisLineModel.getModel("lineStyle"); - var axisLineWidth = lineStyleModel.get("width"); - var angles = [startAngle, endAngle]; - normalizeArcAngles(angles, !clockwise); - startAngle = angles[0]; - endAngle = angles[1]; - var angleRangeSpan = endAngle - startAngle; - var prevEndAngle = startAngle; - var sectors = []; - for (var i = 0; showAxis && i < colorList.length; i++) { - var percent = Math.min(Math.max(colorList[i][0], 0), 1); - endAngle = startAngle + angleRangeSpan * percent; - var sector = new MainPath({ - shape: { - startAngle: prevEndAngle, - endAngle, - cx: posInfo.cx, - cy: posInfo.cy, - clockwise, - r0: posInfo.r - axisLineWidth, - r: posInfo.r - }, - silent: true - }); - sector.setStyle({ - fill: colorList[i][1] - }); - sector.setStyle(lineStyleModel.getLineStyle( - // Because we use sector to simulate arc - // so the properties for stroking are useless - ["color", "width"] - )); - sectors.push(sector); - prevEndAngle = endAngle; - } - sectors.reverse(); - each$2(sectors, function(sector2) { - return group.add(sector2); - }); - var getColor = function(percent2) { - if (percent2 <= 0) { - return colorList[0][1]; - } - var i2; - for (i2 = 0; i2 < colorList.length; i2++) { - if (colorList[i2][0] >= percent2 && (i2 === 0 ? 0 : colorList[i2 - 1][0]) < percent2) { - return colorList[i2][1]; - } - } - return colorList[i2 - 1][1]; - }; - this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth); - this._renderTitleAndDetail(seriesModel, ecModel, api, getColor, posInfo); - this._renderAnchor(seriesModel, posInfo); - this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth); - }; - GaugeView2.prototype._renderTicks = function(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) { - var group = this.group; - var cx = posInfo.cx; - var cy = posInfo.cy; - var r = posInfo.r; - var minVal = +seriesModel.get("min"); - var maxVal = +seriesModel.get("max"); - var splitLineModel = seriesModel.getModel("splitLine"); - var tickModel = seriesModel.getModel("axisTick"); - var labelModel = seriesModel.getModel("axisLabel"); - var splitNumber = seriesModel.get("splitNumber"); - var subSplitNumber = tickModel.get("splitNumber"); - var splitLineLen = parsePercent$1(splitLineModel.get("length"), r); - var tickLen = parsePercent$1(tickModel.get("length"), r); - var angle = startAngle; - var step = (endAngle - startAngle) / splitNumber; - var subStep = step / subSplitNumber; - var splitLineStyle = splitLineModel.getModel("lineStyle").getLineStyle(); - var tickLineStyle = tickModel.getModel("lineStyle").getLineStyle(); - var splitLineDistance = splitLineModel.get("distance"); - var unitX; - var unitY; - for (var i = 0; i <= splitNumber; i++) { - unitX = Math.cos(angle); - unitY = Math.sin(angle); - if (splitLineModel.get("show")) { - var distance = splitLineDistance ? splitLineDistance + axisLineWidth : axisLineWidth; - var splitLine = new Line({ - shape: { - x1: unitX * (r - distance) + cx, - y1: unitY * (r - distance) + cy, - x2: unitX * (r - splitLineLen - distance) + cx, - y2: unitY * (r - splitLineLen - distance) + cy - }, - style: splitLineStyle, - silent: true - }); - if (splitLineStyle.stroke === "auto") { - splitLine.setStyle({ - stroke: getColor(i / splitNumber) - }); - } - group.add(splitLine); - } - if (labelModel.get("show")) { - var distance = labelModel.get("distance") + splitLineDistance; - var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get("formatter")); - var autoColor = getColor(i / splitNumber); - var textStyleX = unitX * (r - splitLineLen - distance) + cx; - var textStyleY = unitY * (r - splitLineLen - distance) + cy; - var rotateType = labelModel.get("rotate"); - var rotate = 0; - if (rotateType === "radial") { - rotate = -angle + 2 * Math.PI; - if (rotate > Math.PI / 2) { - rotate += Math.PI; - } - } else if (rotateType === "tangential") { - rotate = -angle - Math.PI / 2; - } else if (isNumber(rotateType)) { - rotate = rotateType * Math.PI / 180; - } - if (rotate === 0) { - group.add(new ZRText({ - style: createTextStyle(labelModel, { - text: label, - x: textStyleX, - y: textStyleY, - verticalAlign: unitY < -0.8 ? "top" : unitY > 0.8 ? "bottom" : "middle", - align: unitX < -0.4 ? "left" : unitX > 0.4 ? "right" : "center" - }, { - inheritColor: autoColor - }), - silent: true - })); - } else { - group.add(new ZRText({ - style: createTextStyle(labelModel, { - text: label, - x: textStyleX, - y: textStyleY, - verticalAlign: "middle", - align: "center" - }, { - inheritColor: autoColor - }), - silent: true, - originX: textStyleX, - originY: textStyleY, - rotation: rotate - })); - } - } - if (tickModel.get("show") && i !== splitNumber) { - var distance = tickModel.get("distance"); - distance = distance ? distance + axisLineWidth : axisLineWidth; - for (var j = 0; j <= subSplitNumber; j++) { - unitX = Math.cos(angle); - unitY = Math.sin(angle); - var tickLine = new Line({ - shape: { - x1: unitX * (r - distance) + cx, - y1: unitY * (r - distance) + cy, - x2: unitX * (r - tickLen - distance) + cx, - y2: unitY * (r - tickLen - distance) + cy - }, - silent: true, - style: tickLineStyle - }); - if (tickLineStyle.stroke === "auto") { - tickLine.setStyle({ - stroke: getColor((i + j / subSplitNumber) / splitNumber) - }); - } - group.add(tickLine); - angle += subStep; - } - angle -= subStep; - } else { - angle += step; - } - } - }; - GaugeView2.prototype._renderPointer = function(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) { - var group = this.group; - var oldData = this._data; - var oldProgressData = this._progressEls; - var progressList = []; - var showPointer = seriesModel.get(["pointer", "show"]); - var progressModel = seriesModel.getModel("progress"); - var showProgress = progressModel.get("show"); - var data = seriesModel.getData(); - var valueDim = data.mapDimension("value"); - var minVal = +seriesModel.get("min"); - var maxVal = +seriesModel.get("max"); - var valueExtent = [minVal, maxVal]; - var angleExtent = [startAngle, endAngle]; - function createPointer(idx, angle) { - var itemModel = data.getItemModel(idx); - var pointerModel = itemModel.getModel("pointer"); - var pointerWidth = parsePercent$1(pointerModel.get("width"), posInfo.r); - var pointerLength = parsePercent$1(pointerModel.get("length"), posInfo.r); - var pointerStr = seriesModel.get(["pointer", "icon"]); - var pointerOffset = pointerModel.get("offsetCenter"); - var pointerOffsetX = parsePercent$1(pointerOffset[0], posInfo.r); - var pointerOffsetY = parsePercent$1(pointerOffset[1], posInfo.r); - var pointerKeepAspect = pointerModel.get("keepAspect"); - var pointer; - if (pointerStr) { - pointer = createSymbol(pointerStr, pointerOffsetX - pointerWidth / 2, pointerOffsetY - pointerLength, pointerWidth, pointerLength, null, pointerKeepAspect); - } else { - pointer = new PointerPath$1({ - shape: { - angle: -Math.PI / 2, - width: pointerWidth, - r: pointerLength, - x: pointerOffsetX, - y: pointerOffsetY - } - }); - } - pointer.rotation = -(angle + Math.PI / 2); - pointer.x = posInfo.cx; - pointer.y = posInfo.cy; - return pointer; - } - function createProgress(idx, endAngle2) { - var roundCap = progressModel.get("roundCap"); - var ProgressPath = roundCap ? Sausage : Sector; - var isOverlap = progressModel.get("overlap"); - var progressWidth = isOverlap ? progressModel.get("width") : axisLineWidth / data.count(); - var r0 = isOverlap ? posInfo.r - progressWidth : posInfo.r - (idx + 1) * progressWidth; - var r = isOverlap ? posInfo.r : posInfo.r - idx * progressWidth; - var progress = new ProgressPath({ - shape: { - startAngle, - endAngle: endAngle2, - cx: posInfo.cx, - cy: posInfo.cy, - clockwise, - r0, - r - } - }); - isOverlap && (progress.z2 = maxVal - data.get(valueDim, idx) % maxVal); - return progress; - } - if (showProgress || showPointer) { - data.diff(oldData).add(function(idx) { - var val = data.get(valueDim, idx); - if (showPointer) { - var pointer = createPointer(idx, startAngle); - initProps(pointer, { - rotation: -((isNaN(+val) ? angleExtent[0] : linearMap(val, valueExtent, angleExtent, true)) + Math.PI / 2) - }, seriesModel); - group.add(pointer); - data.setItemGraphicEl(idx, pointer); - } - if (showProgress) { - var progress = createProgress(idx, startAngle); - var isClip = progressModel.get("clip"); - initProps(progress, { - shape: { - endAngle: linearMap(val, valueExtent, angleExtent, isClip) - } - }, seriesModel); - group.add(progress); - setCommonECData(seriesModel.seriesIndex, data.dataType, idx, progress); - progressList[idx] = progress; - } - }).update(function(newIdx, oldIdx) { - var val = data.get(valueDim, newIdx); - if (showPointer) { - var previousPointer = oldData.getItemGraphicEl(oldIdx); - var previousRotate = previousPointer ? previousPointer.rotation : startAngle; - var pointer = createPointer(newIdx, previousRotate); - pointer.rotation = previousRotate; - updateProps(pointer, { - rotation: -((isNaN(+val) ? angleExtent[0] : linearMap(val, valueExtent, angleExtent, true)) + Math.PI / 2) - }, seriesModel); - group.add(pointer); - data.setItemGraphicEl(newIdx, pointer); - } - if (showProgress) { - var previousProgress = oldProgressData[oldIdx]; - var previousEndAngle = previousProgress ? previousProgress.shape.endAngle : startAngle; - var progress = createProgress(newIdx, previousEndAngle); - var isClip = progressModel.get("clip"); - updateProps(progress, { - shape: { - endAngle: linearMap(val, valueExtent, angleExtent, isClip) - } - }, seriesModel); - group.add(progress); - setCommonECData(seriesModel.seriesIndex, data.dataType, newIdx, progress); - progressList[newIdx] = progress; - } - }).execute(); - data.each(function(idx) { - var itemModel = data.getItemModel(idx); - var emphasisModel = itemModel.getModel("emphasis"); - var focus = emphasisModel.get("focus"); - var blurScope = emphasisModel.get("blurScope"); - var emphasisDisabled = emphasisModel.get("disabled"); - if (showPointer) { - var pointer = data.getItemGraphicEl(idx); - var symbolStyle = data.getItemVisual(idx, "style"); - var visualColor = symbolStyle.fill; - if (pointer instanceof ZRImage) { - var pathStyle = pointer.style; - pointer.useStyle(extend({ - image: pathStyle.image, - x: pathStyle.x, - y: pathStyle.y, - width: pathStyle.width, - height: pathStyle.height - }, symbolStyle)); - } else { - pointer.useStyle(symbolStyle); - pointer.type !== "pointer" && pointer.setColor(visualColor); - } - pointer.setStyle(itemModel.getModel(["pointer", "itemStyle"]).getItemStyle()); - if (pointer.style.fill === "auto") { - pointer.setStyle("fill", getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true))); - } - pointer.z2EmphasisLift = 0; - setStatesStylesFromModel(pointer, itemModel); - toggleHoverEmphasis(pointer, focus, blurScope, emphasisDisabled); - } - if (showProgress) { - var progress = progressList[idx]; - progress.useStyle(data.getItemVisual(idx, "style")); - progress.setStyle(itemModel.getModel(["progress", "itemStyle"]).getItemStyle()); - progress.z2EmphasisLift = 0; - setStatesStylesFromModel(progress, itemModel); - toggleHoverEmphasis(progress, focus, blurScope, emphasisDisabled); - } - }); - this._progressEls = progressList; - } - }; - GaugeView2.prototype._renderAnchor = function(seriesModel, posInfo) { - var anchorModel = seriesModel.getModel("anchor"); - var showAnchor = anchorModel.get("show"); - if (showAnchor) { - var anchorSize = anchorModel.get("size"); - var anchorType = anchorModel.get("icon"); - var offsetCenter = anchorModel.get("offsetCenter"); - var anchorKeepAspect = anchorModel.get("keepAspect"); - var anchor = createSymbol(anchorType, posInfo.cx - anchorSize / 2 + parsePercent$1(offsetCenter[0], posInfo.r), posInfo.cy - anchorSize / 2 + parsePercent$1(offsetCenter[1], posInfo.r), anchorSize, anchorSize, null, anchorKeepAspect); - anchor.z2 = anchorModel.get("showAbove") ? 1 : 0; - anchor.setStyle(anchorModel.getModel("itemStyle").getItemStyle()); - this.group.add(anchor); - } - }; - GaugeView2.prototype._renderTitleAndDetail = function(seriesModel, ecModel, api, getColor, posInfo) { - var _this = this; - var data = seriesModel.getData(); - var valueDim = data.mapDimension("value"); - var minVal = +seriesModel.get("min"); - var maxVal = +seriesModel.get("max"); - var contentGroup = new Group$1(); - var newTitleEls = []; - var newDetailEls = []; - var hasAnimation = seriesModel.isAnimationEnabled(); - var showPointerAbove = seriesModel.get(["pointer", "showAbove"]); - data.diff(this._data).add(function(idx) { - newTitleEls[idx] = new ZRText({ - silent: true - }); - newDetailEls[idx] = new ZRText({ - silent: true - }); - }).update(function(idx, oldIdx) { - newTitleEls[idx] = _this._titleEls[oldIdx]; - newDetailEls[idx] = _this._detailEls[oldIdx]; - }).execute(); - data.each(function(idx) { - var itemModel = data.getItemModel(idx); - var value = data.get(valueDim, idx); - var itemGroup = new Group$1(); - var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true)); - var itemTitleModel = itemModel.getModel("title"); - if (itemTitleModel.get("show")) { - var titleOffsetCenter = itemTitleModel.get("offsetCenter"); - var titleX = posInfo.cx + parsePercent$1(titleOffsetCenter[0], posInfo.r); - var titleY = posInfo.cy + parsePercent$1(titleOffsetCenter[1], posInfo.r); - var labelEl = newTitleEls[idx]; - labelEl.attr({ - z2: showPointerAbove ? 0 : 2, - style: createTextStyle(itemTitleModel, { - x: titleX, - y: titleY, - text: data.getName(idx), - align: "center", - verticalAlign: "middle" - }, { - inheritColor: autoColor - }) - }); - itemGroup.add(labelEl); - } - var itemDetailModel = itemModel.getModel("detail"); - if (itemDetailModel.get("show")) { - var detailOffsetCenter = itemDetailModel.get("offsetCenter"); - var detailX = posInfo.cx + parsePercent$1(detailOffsetCenter[0], posInfo.r); - var detailY = posInfo.cy + parsePercent$1(detailOffsetCenter[1], posInfo.r); - var width = parsePercent$1(itemDetailModel.get("width"), posInfo.r); - var height = parsePercent$1(itemDetailModel.get("height"), posInfo.r); - var detailColor = seriesModel.get(["progress", "show"]) ? data.getItemVisual(idx, "style").fill : autoColor; - var labelEl = newDetailEls[idx]; - var formatter_1 = itemDetailModel.get("formatter"); - labelEl.attr({ - z2: showPointerAbove ? 0 : 2, - style: createTextStyle(itemDetailModel, { - x: detailX, - y: detailY, - text: formatLabel(value, formatter_1), - width: isNaN(width) ? null : width, - height: isNaN(height) ? null : height, - align: "center", - verticalAlign: "middle" - }, { - inheritColor: detailColor - }) - }); - setLabelValueAnimation(labelEl, { - normal: itemDetailModel - }, value, function(value2) { - return formatLabel(value2, formatter_1); - }); - hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel, { - getFormattedLabel: function(labelDataIndex, status, dataType, labelDimIndex, fmt, extendParams) { - return formatLabel(extendParams ? extendParams.interpolatedValue : value, formatter_1); - } - }); - itemGroup.add(labelEl); - } - contentGroup.add(itemGroup); - }); - this.group.add(contentGroup); - this._titleEls = newTitleEls; - this._detailEls = newDetailEls; - }; - GaugeView2.type = "gauge"; - return GaugeView2; - }(ChartView) -); -const GaugeView$1 = GaugeView; -var GaugeSeriesModel = ( - /** @class */ - function(_super) { - __extends(GaugeSeriesModel2, _super); - function GaugeSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = GaugeSeriesModel2.type; - _this.visualStyleAccessPath = "itemStyle"; - return _this; - } - GaugeSeriesModel2.prototype.getInitialData = function(option, ecModel) { - return createSeriesDataSimply(this, ["value"]); - }; - GaugeSeriesModel2.type = "series.gauge"; - GaugeSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - colorBy: "data", - // 默认全局居中 - center: ["50%", "50%"], - legendHoverLink: true, - radius: "75%", - startAngle: 225, - endAngle: -45, - clockwise: true, - // 最小值 - min: 0, - // 最大值 - max: 100, - // 分割段数,默认为10 - splitNumber: 10, - // 坐标轴线 - axisLine: { - // 默认显示,属性show控制显示与否 - show: true, - roundCap: false, - lineStyle: { - color: [[1, "#E6EBF8"]], - width: 10 - } - }, - // 坐标轴线 - progress: { - // 默认显示,属性show控制显示与否 - show: false, - overlap: true, - width: 10, - roundCap: false, - clip: true - }, - // 分隔线 - splitLine: { - // 默认显示,属性show控制显示与否 - show: true, - // 属性length控制线长 - length: 10, - distance: 10, - // 属性lineStyle(详见lineStyle)控制线条样式 - lineStyle: { - color: "#63677A", - width: 3, - type: "solid" - } - }, - // 坐标轴小标记 - axisTick: { - // 属性show控制显示与否,默认不显示 - show: true, - // 每份split细分多少段 - splitNumber: 5, - // 属性length控制线长 - length: 6, - distance: 10, - // 属性lineStyle控制线条样式 - lineStyle: { - color: "#63677A", - width: 1, - type: "solid" - } - }, - axisLabel: { - show: true, - distance: 15, - // formatter: null, - color: "#464646", - fontSize: 12, - rotate: 0 - }, - pointer: { - icon: null, - offsetCenter: [0, 0], - show: true, - showAbove: true, - length: "60%", - width: 6, - keepAspect: false - }, - anchor: { - show: false, - showAbove: false, - size: 6, - icon: "circle", - offsetCenter: [0, 0], - keepAspect: false, - itemStyle: { - color: "#fff", - borderWidth: 0, - borderColor: "#5470c6" - } - }, - title: { - show: true, - // x, y,单位px - offsetCenter: [0, "20%"], - // 其余属性默认使用全局文本样式,详见TEXTSTYLE - color: "#464646", - fontSize: 16, - valueAnimation: false - }, - detail: { - show: true, - backgroundColor: "rgba(0,0,0,0)", - borderWidth: 0, - borderColor: "#ccc", - width: 100, - height: null, - padding: [5, 10], - // x, y,单位px - offsetCenter: [0, "40%"], - // formatter: null, - // 其余属性默认使用全局文本样式,详见TEXTSTYLE - color: "#464646", - fontSize: 30, - fontWeight: "bold", - lineHeight: 30, - valueAnimation: false - } - }; - return GaugeSeriesModel2; - }(SeriesModel) -); -const GaugeSeriesModel$1 = GaugeSeriesModel; -function install$c(registers) { - registers.registerChartView(GaugeView$1); - registers.registerSeriesModel(GaugeSeriesModel$1); -} -var opacityAccessPath$1 = ["itemStyle", "opacity"]; -var FunnelPiece = ( - /** @class */ - function(_super) { - __extends(FunnelPiece2, _super); - function FunnelPiece2(data, idx) { - var _this = _super.call(this) || this; - var polygon = _this; - var labelLine = new Polyline$2(); - var text = new ZRText(); - polygon.setTextContent(text); - _this.setTextGuideLine(labelLine); - _this.updateData(data, idx, true); - return _this; - } - FunnelPiece2.prototype.updateData = function(data, idx, firstCreate) { - var polygon = this; - var seriesModel = data.hostModel; - var itemModel = data.getItemModel(idx); - var layout2 = data.getItemLayout(idx); - var emphasisModel = itemModel.getModel("emphasis"); - var opacity = itemModel.get(opacityAccessPath$1); - opacity = opacity == null ? 1 : opacity; - if (!firstCreate) { - saveOldStyle(polygon); - } - polygon.useStyle(data.getItemVisual(idx, "style")); - polygon.style.lineJoin = "round"; - if (firstCreate) { - polygon.setShape({ - points: layout2.points - }); - polygon.style.opacity = 0; - initProps(polygon, { - style: { - opacity - } - }, seriesModel, idx); - } else { - updateProps(polygon, { - style: { - opacity - }, - shape: { - points: layout2.points - } - }, seriesModel, idx); - } - setStatesStylesFromModel(polygon, itemModel); - this._updateLabel(data, idx); - toggleHoverEmphasis(this, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - }; - FunnelPiece2.prototype._updateLabel = function(data, idx) { - var polygon = this; - var labelLine = this.getTextGuideLine(); - var labelText = polygon.getTextContent(); - var seriesModel = data.hostModel; - var itemModel = data.getItemModel(idx); - var layout2 = data.getItemLayout(idx); - var labelLayout2 = layout2.label; - var style = data.getItemVisual(idx, "style"); - var visualColor = style.fill; - setLabelStyle( - // position will not be used in setLabelStyle - labelText, - getLabelStatesModels(itemModel), - { - labelFetcher: data.hostModel, - labelDataIndex: idx, - defaultOpacity: style.opacity, - defaultText: data.getName(idx) - }, - { - normal: { - align: labelLayout2.textAlign, - verticalAlign: labelLayout2.verticalAlign - } - } - ); - polygon.setTextConfig({ - local: true, - inside: !!labelLayout2.inside, - insideStroke: visualColor, - // insideFill: 'auto', - outsideFill: visualColor - }); - var linePoints = labelLayout2.linePoints; - labelLine.setShape({ - points: linePoints - }); - polygon.textGuideLineConfig = { - anchor: linePoints ? new Point(linePoints[0][0], linePoints[0][1]) : null - }; - updateProps(labelText, { - style: { - x: labelLayout2.x, - y: labelLayout2.y - } - }, seriesModel, idx); - labelText.attr({ - rotation: labelLayout2.rotation, - originX: labelLayout2.x, - originY: labelLayout2.y, - z2: 10 - }); - setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), { - // Default use item visual color - stroke: visualColor - }); - }; - return FunnelPiece2; - }(Polygon) -); -var FunnelView = ( - /** @class */ - function(_super) { - __extends(FunnelView2, _super); - function FunnelView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = FunnelView2.type; - _this.ignoreLabelLineUpdate = true; - return _this; - } - FunnelView2.prototype.render = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var oldData = this._data; - var group = this.group; - data.diff(oldData).add(function(idx) { - var funnelPiece = new FunnelPiece(data, idx); - data.setItemGraphicEl(idx, funnelPiece); - group.add(funnelPiece); - }).update(function(newIdx, oldIdx) { - var piece = oldData.getItemGraphicEl(oldIdx); - piece.updateData(data, newIdx); - group.add(piece); - data.setItemGraphicEl(newIdx, piece); - }).remove(function(idx) { - var piece = oldData.getItemGraphicEl(idx); - removeElementWithFadeOut(piece, seriesModel, idx); - }).execute(); - this._data = data; - }; - FunnelView2.prototype.remove = function() { - this.group.removeAll(); - this._data = null; - }; - FunnelView2.prototype.dispose = function() { - }; - FunnelView2.type = "funnel"; - return FunnelView2; - }(ChartView) -); -const FunnelView$1 = FunnelView; -var FunnelSeriesModel = ( - /** @class */ - function(_super) { - __extends(FunnelSeriesModel2, _super); - function FunnelSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = FunnelSeriesModel2.type; - return _this; - } - FunnelSeriesModel2.prototype.init = function(option) { - _super.prototype.init.apply(this, arguments); - this.legendVisualProvider = new LegendVisualProvider$1(bind(this.getData, this), bind(this.getRawData, this)); - this._defaultLabelLine(option); - }; - FunnelSeriesModel2.prototype.getInitialData = function(option, ecModel) { - return createSeriesDataSimply(this, { - coordDimensions: ["value"], - encodeDefaulter: curry(makeSeriesEncodeForNameBased, this) - }); - }; - FunnelSeriesModel2.prototype._defaultLabelLine = function(option) { - defaultEmphasis(option, "labelLine", ["show"]); - var labelLineNormalOpt = option.labelLine; - var labelLineEmphasisOpt = option.emphasis.labelLine; - labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show; - labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show; - }; - FunnelSeriesModel2.prototype.getDataParams = function(dataIndex) { - var data = this.getData(); - var params = _super.prototype.getDataParams.call(this, dataIndex); - var valueDim = data.mapDimension("value"); - var sum2 = data.getSum(valueDim); - params.percent = !sum2 ? 0 : +(data.get(valueDim, dataIndex) / sum2 * 100).toFixed(2); - params.$vars.push("percent"); - return params; - }; - FunnelSeriesModel2.type = "series.funnel"; - FunnelSeriesModel2.defaultOption = { - // zlevel: 0, // 一级层叠 - z: 2, - legendHoverLink: true, - colorBy: "data", - left: 80, - top: 60, - right: 80, - bottom: 60, - // width: {totalWidth} - left - right, - // height: {totalHeight} - top - bottom, - // 默认取数据最小最大值 - // min: 0, - // max: 100, - minSize: "0%", - maxSize: "100%", - sort: "descending", - orient: "vertical", - gap: 0, - funnelAlign: "center", - label: { - show: true, - position: "outer" - // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调 - }, - labelLine: { - show: true, - length: 20, - lineStyle: { - // color: 各异, - width: 1 - } - }, - itemStyle: { - // color: 各异, - borderColor: "#fff", - borderWidth: 1 - }, - emphasis: { - label: { - show: true - } - }, - select: { - itemStyle: { - borderColor: "#212121" - } - } - }; - return FunnelSeriesModel2; - }(SeriesModel) -); -const FunnelSeriesModel$1 = FunnelSeriesModel; -function getViewRect$1(seriesModel, api) { - return getLayoutRect(seriesModel.getBoxLayoutParams(), { - width: api.getWidth(), - height: api.getHeight() - }); -} -function getSortedIndices(data, sort2) { - var valueDim = data.mapDimension("value"); - var valueArr = data.mapArray(valueDim, function(val) { - return val; - }); - var indices = []; - var isAscending = sort2 === "ascending"; - for (var i = 0, len2 = data.count(); i < len2; i++) { - indices[i] = i; - } - if (isFunction(sort2)) { - indices.sort(sort2); - } else if (sort2 !== "none") { - indices.sort(function(a, b) { - return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a]; - }); - } - return indices; -} -function labelLayout(data) { - var seriesModel = data.hostModel; - var orient = seriesModel.get("orient"); - data.each(function(idx) { - var itemModel = data.getItemModel(idx); - var labelModel = itemModel.getModel("label"); - var labelPosition = labelModel.get("position"); - var labelLineModel = itemModel.getModel("labelLine"); - var layout2 = data.getItemLayout(idx); - var points = layout2.points; - var isLabelInside = labelPosition === "inner" || labelPosition === "inside" || labelPosition === "center" || labelPosition === "insideLeft" || labelPosition === "insideRight"; - var textAlign; - var textX; - var textY; - var linePoints; - if (isLabelInside) { - if (labelPosition === "insideLeft") { - textX = (points[0][0] + points[3][0]) / 2 + 5; - textY = (points[0][1] + points[3][1]) / 2; - textAlign = "left"; - } else if (labelPosition === "insideRight") { - textX = (points[1][0] + points[2][0]) / 2 - 5; - textY = (points[1][1] + points[2][1]) / 2; - textAlign = "right"; - } else { - textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4; - textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4; - textAlign = "center"; - } - linePoints = [[textX, textY], [textX, textY]]; - } else { - var x1 = void 0; - var y1 = void 0; - var x2 = void 0; - var y2 = void 0; - var labelLineLen = labelLineModel.get("length"); - if (labelPosition === "left") { - x1 = (points[3][0] + points[0][0]) / 2; - y1 = (points[3][1] + points[0][1]) / 2; - x2 = x1 - labelLineLen; - textX = x2 - 5; - textAlign = "right"; - } else if (labelPosition === "right") { - x1 = (points[1][0] + points[2][0]) / 2; - y1 = (points[1][1] + points[2][1]) / 2; - x2 = x1 + labelLineLen; - textX = x2 + 5; - textAlign = "left"; - } else if (labelPosition === "top") { - x1 = (points[3][0] + points[0][0]) / 2; - y1 = (points[3][1] + points[0][1]) / 2; - y2 = y1 - labelLineLen; - textY = y2 - 5; - textAlign = "center"; - } else if (labelPosition === "bottom") { - x1 = (points[1][0] + points[2][0]) / 2; - y1 = (points[1][1] + points[2][1]) / 2; - y2 = y1 + labelLineLen; - textY = y2 + 5; - textAlign = "center"; - } else if (labelPosition === "rightTop") { - x1 = orient === "horizontal" ? points[3][0] : points[1][0]; - y1 = orient === "horizontal" ? points[3][1] : points[1][1]; - if (orient === "horizontal") { - y2 = y1 - labelLineLen; - textY = y2 - 5; - textAlign = "center"; - } else { - x2 = x1 + labelLineLen; - textX = x2 + 5; - textAlign = "top"; - } - } else if (labelPosition === "rightBottom") { - x1 = points[2][0]; - y1 = points[2][1]; - if (orient === "horizontal") { - y2 = y1 + labelLineLen; - textY = y2 + 5; - textAlign = "center"; - } else { - x2 = x1 + labelLineLen; - textX = x2 + 5; - textAlign = "bottom"; - } - } else if (labelPosition === "leftTop") { - x1 = points[0][0]; - y1 = orient === "horizontal" ? points[0][1] : points[1][1]; - if (orient === "horizontal") { - y2 = y1 - labelLineLen; - textY = y2 - 5; - textAlign = "center"; - } else { - x2 = x1 - labelLineLen; - textX = x2 - 5; - textAlign = "right"; - } - } else if (labelPosition === "leftBottom") { - x1 = orient === "horizontal" ? points[1][0] : points[3][0]; - y1 = orient === "horizontal" ? points[1][1] : points[2][1]; - if (orient === "horizontal") { - y2 = y1 + labelLineLen; - textY = y2 + 5; - textAlign = "center"; - } else { - x2 = x1 - labelLineLen; - textX = x2 - 5; - textAlign = "right"; - } - } else { - x1 = (points[1][0] + points[2][0]) / 2; - y1 = (points[1][1] + points[2][1]) / 2; - if (orient === "horizontal") { - y2 = y1 + labelLineLen; - textY = y2 + 5; - textAlign = "center"; - } else { - x2 = x1 + labelLineLen; - textX = x2 + 5; - textAlign = "left"; - } - } - if (orient === "horizontal") { - x2 = x1; - textX = x2; - } else { - y2 = y1; - textY = y2; - } - linePoints = [[x1, y1], [x2, y2]]; - } - layout2.label = { - linePoints, - x: textX, - y: textY, - verticalAlign: "middle", - textAlign, - inside: isLabelInside - }; - }); -} -function funnelLayout(ecModel, api) { - ecModel.eachSeriesByType("funnel", function(seriesModel) { - var data = seriesModel.getData(); - var valueDim = data.mapDimension("value"); - var sort2 = seriesModel.get("sort"); - var viewRect = getViewRect$1(seriesModel, api); - var orient = seriesModel.get("orient"); - var viewWidth = viewRect.width; - var viewHeight = viewRect.height; - var indices = getSortedIndices(data, sort2); - var x = viewRect.x; - var y = viewRect.y; - var sizeExtent = orient === "horizontal" ? [parsePercent$1(seriesModel.get("minSize"), viewHeight), parsePercent$1(seriesModel.get("maxSize"), viewHeight)] : [parsePercent$1(seriesModel.get("minSize"), viewWidth), parsePercent$1(seriesModel.get("maxSize"), viewWidth)]; - var dataExtent = data.getDataExtent(valueDim); - var min = seriesModel.get("min"); - var max = seriesModel.get("max"); - if (min == null) { - min = Math.min(dataExtent[0], 0); - } - if (max == null) { - max = dataExtent[1]; - } - var funnelAlign = seriesModel.get("funnelAlign"); - var gap = seriesModel.get("gap"); - var viewSize = orient === "horizontal" ? viewWidth : viewHeight; - var itemSize = (viewSize - gap * (data.count() - 1)) / data.count(); - var getLinePoints = function(idx2, offset) { - if (orient === "horizontal") { - var val_1 = data.get(valueDim, idx2) || 0; - var itemHeight = linearMap(val_1, [min, max], sizeExtent, true); - var y0 = void 0; - switch (funnelAlign) { - case "top": - y0 = y; - break; - case "center": - y0 = y + (viewHeight - itemHeight) / 2; - break; - case "bottom": - y0 = y + (viewHeight - itemHeight); - break; - } - return [[offset, y0], [offset, y0 + itemHeight]]; - } - var val = data.get(valueDim, idx2) || 0; - var itemWidth = linearMap(val, [min, max], sizeExtent, true); - var x0; - switch (funnelAlign) { - case "left": - x0 = x; - break; - case "center": - x0 = x + (viewWidth - itemWidth) / 2; - break; - case "right": - x0 = x + viewWidth - itemWidth; - break; - } - return [[x0, offset], [x0 + itemWidth, offset]]; - }; - if (sort2 === "ascending") { - itemSize = -itemSize; - gap = -gap; - if (orient === "horizontal") { - x += viewWidth; - } else { - y += viewHeight; - } - indices = indices.reverse(); - } - for (var i = 0; i < indices.length; i++) { - var idx = indices[i]; - var nextIdx = indices[i + 1]; - var itemModel = data.getItemModel(idx); - if (orient === "horizontal") { - var width = itemModel.get(["itemStyle", "width"]); - if (width == null) { - width = itemSize; - } else { - width = parsePercent$1(width, viewWidth); - if (sort2 === "ascending") { - width = -width; - } - } - var start = getLinePoints(idx, x); - var end = getLinePoints(nextIdx, x + width); - x += width + gap; - data.setItemLayout(idx, { - points: start.concat(end.slice().reverse()) - }); - } else { - var height = itemModel.get(["itemStyle", "height"]); - if (height == null) { - height = itemSize; - } else { - height = parsePercent$1(height, viewHeight); - if (sort2 === "ascending") { - height = -height; - } - } - var start = getLinePoints(idx, y); - var end = getLinePoints(nextIdx, y + height); - y += height + gap; - data.setItemLayout(idx, { - points: start.concat(end.slice().reverse()) - }); - } - } - labelLayout(data); - }); -} -function install$b(registers) { - registers.registerChartView(FunnelView$1); - registers.registerSeriesModel(FunnelSeriesModel$1); - registers.registerLayout(funnelLayout); - registers.registerProcessor(dataFilter("funnel")); -} -var DEFAULT_SMOOTH = 0.3; -var ParallelView = ( - /** @class */ - function(_super) { - __extends(ParallelView2, _super); - function ParallelView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ParallelView2.type; - _this._dataGroup = new Group$1(); - _this._initialized = false; - return _this; - } - ParallelView2.prototype.init = function() { - this.group.add(this._dataGroup); - }; - ParallelView2.prototype.render = function(seriesModel, ecModel, api, payload) { - this._progressiveEls = null; - var dataGroup = this._dataGroup; - var data = seriesModel.getData(); - var oldData = this._data; - var coordSys = seriesModel.coordinateSystem; - var dimensions = coordSys.dimensions; - var seriesScope = makeSeriesScope(seriesModel); - data.diff(oldData).add(add).update(update).remove(remove).execute(); - function add(newDataIndex) { - var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys); - updateElCommon(line, data, newDataIndex, seriesScope); - } - function update(newDataIndex, oldDataIndex) { - var line = oldData.getItemGraphicEl(oldDataIndex); - var points = createLinePoints(data, newDataIndex, dimensions, coordSys); - data.setItemGraphicEl(newDataIndex, line); - updateProps(line, { - shape: { - points - } - }, seriesModel, newDataIndex); - saveOldStyle(line); - updateElCommon(line, data, newDataIndex, seriesScope); - } - function remove(oldDataIndex) { - var line = oldData.getItemGraphicEl(oldDataIndex); - dataGroup.remove(line); - } - if (!this._initialized) { - this._initialized = true; - var clipPath = createGridClipShape$2(coordSys, seriesModel, function() { - setTimeout(function() { - dataGroup.removeClipPath(); - }); - }); - dataGroup.setClipPath(clipPath); - } - this._data = data; - }; - ParallelView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) { - this._initialized = true; - this._data = null; - this._dataGroup.removeAll(); - }; - ParallelView2.prototype.incrementalRender = function(taskParams, seriesModel, ecModel) { - var data = seriesModel.getData(); - var coordSys = seriesModel.coordinateSystem; - var dimensions = coordSys.dimensions; - var seriesScope = makeSeriesScope(seriesModel); - var progressiveEls = this._progressiveEls = []; - for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) { - var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys); - line.incremental = true; - updateElCommon(line, data, dataIndex, seriesScope); - progressiveEls.push(line); - } - }; - ParallelView2.prototype.remove = function() { - this._dataGroup && this._dataGroup.removeAll(); - this._data = null; - }; - ParallelView2.type = "parallel"; - return ParallelView2; - }(ChartView) -); -function createGridClipShape$2(coordSys, seriesModel, cb) { - var parallelModel = coordSys.model; - var rect = coordSys.getRect(); - var rectEl = new Rect$1({ - shape: { - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height - } - }); - var dim = parallelModel.get("layout") === "horizontal" ? "width" : "height"; - rectEl.setShape(dim, 0); - initProps(rectEl, { - shape: { - width: rect.width, - height: rect.height - } - }, seriesModel, cb); - return rectEl; -} -function createLinePoints(data, dataIndex, dimensions, coordSys) { - var points = []; - for (var i = 0; i < dimensions.length; i++) { - var dimName = dimensions[i]; - var value = data.get(data.mapDimension(dimName), dataIndex); - if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) { - points.push(coordSys.dataToPoint(value, dimName)); - } - } - return points; -} -function addEl(data, dataGroup, dataIndex, dimensions, coordSys) { - var points = createLinePoints(data, dataIndex, dimensions, coordSys); - var line = new Polyline$2({ - shape: { - points - }, - // silent: true, - z2: 10 - }); - dataGroup.add(line); - data.setItemGraphicEl(dataIndex, line); - return line; -} -function makeSeriesScope(seriesModel) { - var smooth = seriesModel.get("smooth", true); - smooth === true && (smooth = DEFAULT_SMOOTH); - smooth = numericToNumber(smooth); - eqNaN(smooth) && (smooth = 0); - return { - smooth - }; -} -function updateElCommon(el, data, dataIndex, seriesScope) { - el.useStyle(data.getItemVisual(dataIndex, "style")); - el.style.fill = null; - el.setShape("smooth", seriesScope.smooth); - var itemModel = data.getItemModel(dataIndex); - var emphasisModel = itemModel.getModel("emphasis"); - setStatesStylesFromModel(el, itemModel, "lineStyle"); - toggleHoverEmphasis(el, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled")); -} -function isEmptyValue(val, axisType) { - return axisType === "category" ? val == null : val == null || isNaN(val); -} -const ParallelView$1 = ParallelView; -var ParallelSeriesModel = ( - /** @class */ - function(_super) { - __extends(ParallelSeriesModel2, _super); - function ParallelSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ParallelSeriesModel2.type; - _this.visualStyleAccessPath = "lineStyle"; - _this.visualDrawType = "stroke"; - return _this; - } - ParallelSeriesModel2.prototype.getInitialData = function(option, ecModel) { - return createSeriesData(null, this, { - useEncodeDefaulter: bind(makeDefaultEncode, null, this) - }); - }; - ParallelSeriesModel2.prototype.getRawIndicesByActiveState = function(activeState) { - var coordSys = this.coordinateSystem; - var data = this.getData(); - var indices = []; - coordSys.eachActiveState(data, function(theActiveState, dataIndex) { - if (activeState === theActiveState) { - indices.push(data.getRawIndex(dataIndex)); - } - }); - return indices; - }; - ParallelSeriesModel2.type = "series.parallel"; - ParallelSeriesModel2.dependencies = ["parallel"]; - ParallelSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - coordinateSystem: "parallel", - parallelIndex: 0, - label: { - show: false - }, - inactiveOpacity: 0.05, - activeOpacity: 1, - lineStyle: { - width: 1, - opacity: 0.45, - type: "solid" - }, - emphasis: { - label: { - show: false - } - }, - progressive: 500, - smooth: false, - animationEasing: "linear" - }; - return ParallelSeriesModel2; - }(SeriesModel) -); -function makeDefaultEncode(seriesModel) { - var parallelModel = seriesModel.ecModel.getComponent("parallel", seriesModel.get("parallelIndex")); - if (!parallelModel) { - return; - } - var encodeDefine = {}; - each$2(parallelModel.dimensions, function(axisDim) { - var dataDimIndex = convertDimNameToNumber(axisDim); - encodeDefine[axisDim] = dataDimIndex; - }); - return encodeDefine; -} -function convertDimNameToNumber(dimName) { - return +dimName.replace("dim", ""); -} -const ParallelSeriesModel$1 = ParallelSeriesModel; -var opacityAccessPath = ["lineStyle", "opacity"]; -var parallelVisual = { - seriesType: "parallel", - reset: function(seriesModel, ecModel) { - var coordSys = seriesModel.coordinateSystem; - var opacityMap = { - normal: seriesModel.get(["lineStyle", "opacity"]), - active: seriesModel.get("activeOpacity"), - inactive: seriesModel.get("inactiveOpacity") - }; - return { - progress: function(params, data) { - coordSys.eachActiveState(data, function(activeState, dataIndex) { - var opacity = opacityMap[activeState]; - if (activeState === "normal" && data.hasItemOption) { - var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true); - itemOpacity != null && (opacity = itemOpacity); - } - var existsStyle = data.ensureUniqueItemVisual(dataIndex, "style"); - existsStyle.opacity = opacity; - }, params.start, params.end); - } - }; - } -}; -const parallelVisual$1 = parallelVisual; -function install$a(registers) { - use(install$p); - registers.registerChartView(ParallelView$1); - registers.registerSeriesModel(ParallelSeriesModel$1); - registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, parallelVisual$1); -} -var SankeyPathShape = ( - /** @class */ - function() { - function SankeyPathShape2() { - this.x1 = 0; - this.y1 = 0; - this.x2 = 0; - this.y2 = 0; - this.cpx1 = 0; - this.cpy1 = 0; - this.cpx2 = 0; - this.cpy2 = 0; - this.extent = 0; - } - return SankeyPathShape2; - }() -); -var SankeyPath = ( - /** @class */ - function(_super) { - __extends(SankeyPath2, _super); - function SankeyPath2(opts) { - return _super.call(this, opts) || this; - } - SankeyPath2.prototype.getDefaultShape = function() { - return new SankeyPathShape(); - }; - SankeyPath2.prototype.buildPath = function(ctx, shape) { - var extent = shape.extent; - ctx.moveTo(shape.x1, shape.y1); - ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2); - if (shape.orient === "vertical") { - ctx.lineTo(shape.x2 + extent, shape.y2); - ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1); - } else { - ctx.lineTo(shape.x2, shape.y2 + extent); - ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent); - } - ctx.closePath(); - }; - SankeyPath2.prototype.highlight = function() { - enterEmphasis(this); - }; - SankeyPath2.prototype.downplay = function() { - leaveEmphasis(this); - }; - return SankeyPath2; - }(Path) -); -var SankeyView = ( - /** @class */ - function(_super) { - __extends(SankeyView2, _super); - function SankeyView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SankeyView2.type; - _this._focusAdjacencyDisabled = false; - return _this; - } - SankeyView2.prototype.render = function(seriesModel, ecModel, api) { - var sankeyView = this; - var graph = seriesModel.getGraph(); - var group = this.group; - var layoutInfo = seriesModel.layoutInfo; - var width = layoutInfo.width; - var height = layoutInfo.height; - var nodeData = seriesModel.getData(); - var edgeData = seriesModel.getData("edge"); - var orient = seriesModel.get("orient"); - this._model = seriesModel; - group.removeAll(); - group.x = layoutInfo.x; - group.y = layoutInfo.y; - graph.eachEdge(function(edge) { - var curve = new SankeyPath(); - var ecData = getECData(curve); - ecData.dataIndex = edge.dataIndex; - ecData.seriesIndex = seriesModel.seriesIndex; - ecData.dataType = "edge"; - var edgeModel = edge.getModel(); - var lineStyleModel = edgeModel.getModel("lineStyle"); - var curvature = lineStyleModel.get("curveness"); - var n1Layout = edge.node1.getLayout(); - var node1Model = edge.node1.getModel(); - var dragX1 = node1Model.get("localX"); - var dragY1 = node1Model.get("localY"); - var n2Layout = edge.node2.getLayout(); - var node2Model = edge.node2.getModel(); - var dragX2 = node2Model.get("localX"); - var dragY2 = node2Model.get("localY"); - var edgeLayout = edge.getLayout(); - var x1; - var y1; - var x2; - var y2; - var cpx1; - var cpy1; - var cpx2; - var cpy2; - curve.shape.extent = Math.max(1, edgeLayout.dy); - curve.shape.orient = orient; - if (orient === "vertical") { - x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy; - y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy; - x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty; - y2 = dragY2 != null ? dragY2 * height : n2Layout.y; - cpx1 = x1; - cpy1 = y1 * (1 - curvature) + y2 * curvature; - cpx2 = x2; - cpy2 = y1 * curvature + y2 * (1 - curvature); - } else { - x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx; - y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy; - x2 = dragX2 != null ? dragX2 * width : n2Layout.x; - y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty; - cpx1 = x1 * (1 - curvature) + x2 * curvature; - cpy1 = y1; - cpx2 = x1 * curvature + x2 * (1 - curvature); - cpy2 = y2; - } - curve.setShape({ - x1, - y1, - x2, - y2, - cpx1, - cpy1, - cpx2, - cpy2 - }); - curve.useStyle(lineStyleModel.getItemStyle()); - switch (curve.style.fill) { - case "source": - curve.style.fill = edge.node1.getVisual("color"); - curve.style.decal = edge.node1.getVisual("style").decal; - break; - case "target": - curve.style.fill = edge.node2.getVisual("color"); - curve.style.decal = edge.node2.getVisual("style").decal; - break; - case "gradient": - var sourceColor = edge.node1.getVisual("color"); - var targetColor = edge.node2.getVisual("color"); - if (isString(sourceColor) && isString(targetColor)) { - curve.style.fill = new LinearGradient(0, 0, +(orient === "horizontal"), +(orient === "vertical"), [{ - color: sourceColor, - offset: 0 - }, { - color: targetColor, - offset: 1 - }]); - } - } - setLabelStyle(curve, getLabelStatesModels(edgeModel, "edgeLabel"), { - labelFetcher: seriesModel, - labelDataIndex: edge.dataIndex, - defaultText: "" + edgeModel.get("value") - }); - curve.setTextConfig({ - position: "inside" - }); - var emphasisModel = edgeModel.getModel("emphasis"); - setStatesStylesFromModel(curve, edgeModel, "lineStyle", function(model) { - return model.getItemStyle(); - }); - group.add(curve); - edgeData.setItemGraphicEl(edge.dataIndex, curve); - var focus = emphasisModel.get("focus"); - toggleHoverEmphasis(curve, focus === "adjacency" ? edge.getAdjacentDataIndices() : focus, emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - getECData(curve).dataType = "edge"; - }); - graph.eachNode(function(node) { - var layout2 = node.getLayout(); - var itemModel = node.getModel(); - var dragX = itemModel.get("localX"); - var dragY = itemModel.get("localY"); - var emphasisModel = itemModel.getModel("emphasis"); - var rect = new Rect$1({ - shape: { - x: dragX != null ? dragX * width : layout2.x, - y: dragY != null ? dragY * height : layout2.y, - width: layout2.dx, - height: layout2.dy - }, - style: itemModel.getModel("itemStyle").getItemStyle(), - z2: 10 - }); - setLabelStyle(rect, getLabelStatesModels(itemModel), { - labelFetcher: seriesModel, - labelDataIndex: node.dataIndex, - defaultText: node.id - }); - rect.disableLabelAnimation = true; - rect.setStyle("fill", node.getVisual("color")); - rect.setStyle("decal", node.getVisual("style").decal); - setStatesStylesFromModel(rect, itemModel); - group.add(rect); - nodeData.setItemGraphicEl(node.dataIndex, rect); - getECData(rect).dataType = "node"; - var focus = emphasisModel.get("focus"); - toggleHoverEmphasis(rect, focus === "adjacency" ? node.getAdjacentDataIndices() : focus, emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - }); - nodeData.eachItemGraphicEl(function(el, dataIndex) { - var itemModel = nodeData.getItemModel(dataIndex); - if (itemModel.get("draggable")) { - el.drift = function(dx, dy) { - sankeyView._focusAdjacencyDisabled = true; - this.shape.x += dx; - this.shape.y += dy; - this.dirty(); - api.dispatchAction({ - type: "dragNode", - seriesId: seriesModel.id, - dataIndex: nodeData.getRawIndex(dataIndex), - localX: this.shape.x / width, - localY: this.shape.y / height - }); - }; - el.ondragend = function() { - sankeyView._focusAdjacencyDisabled = false; - }; - el.draggable = true; - el.cursor = "move"; - } - }); - if (!this._data && seriesModel.isAnimationEnabled()) { - group.setClipPath(createGridClipShape$1(group.getBoundingRect(), seriesModel, function() { - group.removeClipPath(); - })); - } - this._data = seriesModel.getData(); - }; - SankeyView2.prototype.dispose = function() { - }; - SankeyView2.type = "sankey"; - return SankeyView2; - }(ChartView) -); -function createGridClipShape$1(rect, seriesModel, cb) { - var rectEl = new Rect$1({ - shape: { - x: rect.x - 10, - y: rect.y - 10, - width: 0, - height: rect.height + 20 - } - }); - initProps(rectEl, { - shape: { - width: rect.width + 20 - } - }, seriesModel, cb); - return rectEl; -} -const SankeyView$1 = SankeyView; -var SankeySeriesModel = ( - /** @class */ - function(_super) { - __extends(SankeySeriesModel2, _super); - function SankeySeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SankeySeriesModel2.type; - return _this; - } - SankeySeriesModel2.prototype.getInitialData = function(option, ecModel) { - var links = option.edges || option.links; - var nodes = option.data || option.nodes; - var levels = option.levels; - this.levelModels = []; - var levelModels = this.levelModels; - for (var i = 0; i < levels.length; i++) { - if (levels[i].depth != null && levels[i].depth >= 0) { - levelModels[levels[i].depth] = new Model(levels[i], this, ecModel); - } - } - if (nodes && links) { - var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink); - return graph.data; - } - function beforeLink(nodeData, edgeData) { - nodeData.wrapMethod("getItemModel", function(model, idx) { - var seriesModel = model.parentModel; - var layout2 = seriesModel.getData().getItemLayout(idx); - if (layout2) { - var nodeDepth = layout2.depth; - var levelModel = seriesModel.levelModels[nodeDepth]; - if (levelModel) { - model.parentModel = levelModel; - } - } - return model; - }); - edgeData.wrapMethod("getItemModel", function(model, idx) { - var seriesModel = model.parentModel; - var edge = seriesModel.getGraph().getEdgeByIndex(idx); - var layout2 = edge.node1.getLayout(); - if (layout2) { - var depth = layout2.depth; - var levelModel = seriesModel.levelModels[depth]; - if (levelModel) { - model.parentModel = levelModel; - } - } - return model; - }); - } - }; - SankeySeriesModel2.prototype.setNodePosition = function(dataIndex, localPosition) { - var nodes = this.option.data || this.option.nodes; - var dataItem = nodes[dataIndex]; - dataItem.localX = localPosition[0]; - dataItem.localY = localPosition[1]; - }; - SankeySeriesModel2.prototype.getGraph = function() { - return this.getData().graph; - }; - SankeySeriesModel2.prototype.getEdgeData = function() { - return this.getGraph().edgeData; - }; - SankeySeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - function noValue(val) { - return isNaN(val) || val == null; - } - if (dataType === "edge") { - var params = this.getDataParams(dataIndex, dataType); - var rawDataOpt = params.data; - var edgeValue = params.value; - var edgeName = rawDataOpt.source + " -- " + rawDataOpt.target; - return createTooltipMarkup("nameValue", { - name: edgeName, - value: edgeValue, - noValue: noValue(edgeValue) - }); - } else { - var node = this.getGraph().getNodeByIndex(dataIndex); - var value = node.getLayout().value; - var name_1 = this.getDataParams(dataIndex, dataType).data.name; - return createTooltipMarkup("nameValue", { - name: name_1 != null ? name_1 + "" : null, - value, - noValue: noValue(value) - }); - } - }; - SankeySeriesModel2.prototype.optionUpdated = function() { - }; - SankeySeriesModel2.prototype.getDataParams = function(dataIndex, dataType) { - var params = _super.prototype.getDataParams.call(this, dataIndex, dataType); - if (params.value == null && dataType === "node") { - var node = this.getGraph().getNodeByIndex(dataIndex); - var nodeValue = node.getLayout().value; - params.value = nodeValue; - } - return params; - }; - SankeySeriesModel2.type = "series.sankey"; - SankeySeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - coordinateSystem: "view", - left: "5%", - top: "5%", - right: "20%", - bottom: "5%", - orient: "horizontal", - nodeWidth: 20, - nodeGap: 8, - draggable: true, - layoutIterations: 32, - label: { - show: true, - position: "right", - fontSize: 12 - }, - edgeLabel: { - show: false, - fontSize: 12 - }, - levels: [], - nodeAlign: "justify", - lineStyle: { - color: "#314656", - opacity: 0.2, - curveness: 0.5 - }, - emphasis: { - label: { - show: true - }, - lineStyle: { - opacity: 0.5 - } - }, - select: { - itemStyle: { - borderColor: "#212121" - } - }, - animationEasing: "linear", - animationDuration: 1e3 - }; - return SankeySeriesModel2; - }(SeriesModel) -); -const SankeySeriesModel$1 = SankeySeriesModel; -function sankeyLayout(ecModel, api) { - ecModel.eachSeriesByType("sankey", function(seriesModel) { - var nodeWidth = seriesModel.get("nodeWidth"); - var nodeGap = seriesModel.get("nodeGap"); - var layoutInfo = getViewRect(seriesModel, api); - seriesModel.layoutInfo = layoutInfo; - var width = layoutInfo.width; - var height = layoutInfo.height; - var graph = seriesModel.getGraph(); - var nodes = graph.nodes; - var edges = graph.edges; - computeNodeValues(nodes); - var filteredNodes = filter(nodes, function(node) { - return node.getLayout().value === 0; - }); - var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get("layoutIterations"); - var orient = seriesModel.get("orient"); - var nodeAlign = seriesModel.get("nodeAlign"); - layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign); - }); -} -function getViewRect(seriesModel, api) { - return getLayoutRect(seriesModel.getBoxLayoutParams(), { - width: api.getWidth(), - height: api.getHeight() - }); -} -function layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) { - computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign); - computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient); - computeEdgeDepths(nodes, orient); -} -function computeNodeValues(nodes) { - each$2(nodes, function(node) { - var value1 = sum(node.outEdges, getEdgeValue); - var value2 = sum(node.inEdges, getEdgeValue); - var nodeRawValue = node.getValue() || 0; - var value = Math.max(value1, value2, nodeRawValue); - node.setLayout({ - value - }, true); - }); -} -function computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) { - var remainEdges = []; - var indegreeArr = []; - var zeroIndegrees = []; - var nextTargetNode = []; - var x = 0; - for (var i = 0; i < edges.length; i++) { - remainEdges[i] = 1; - } - for (var i = 0; i < nodes.length; i++) { - indegreeArr[i] = nodes[i].inEdges.length; - if (indegreeArr[i] === 0) { - zeroIndegrees.push(nodes[i]); - } - } - var maxNodeDepth = -1; - while (zeroIndegrees.length) { - for (var idx = 0; idx < zeroIndegrees.length; idx++) { - var node = zeroIndegrees[idx]; - var item = node.hostGraph.data.getRawDataItem(node.dataIndex); - var isItemDepth = item.depth != null && item.depth >= 0; - if (isItemDepth && item.depth > maxNodeDepth) { - maxNodeDepth = item.depth; - } - node.setLayout({ - depth: isItemDepth ? item.depth : x - }, true); - orient === "vertical" ? node.setLayout({ - dy: nodeWidth - }, true) : node.setLayout({ - dx: nodeWidth - }, true); - for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) { - var edge = node.outEdges[edgeIdx]; - var indexEdge = edges.indexOf(edge); - remainEdges[indexEdge] = 0; - var targetNode = edge.node2; - var nodeIndex = nodes.indexOf(targetNode); - if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) { - nextTargetNode.push(targetNode); - } - } - } - ++x; - zeroIndegrees = nextTargetNode; - nextTargetNode = []; - } - for (var i = 0; i < remainEdges.length; i++) { - if (remainEdges[i] === 1) { - throw new Error("Sankey is a DAG, the original data has cycle!"); - } - } - var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1; - if (nodeAlign && nodeAlign !== "left") { - adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth); - } - var kx = orient === "vertical" ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth; - scaleNodeBreadths(nodes, kx, orient); -} -function isNodeDepth(node) { - var item = node.hostGraph.data.getRawDataItem(node.dataIndex); - return item.depth != null && item.depth >= 0; -} -function adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) { - if (nodeAlign === "right") { - var nextSourceNode = []; - var remainNodes = nodes; - var nodeHeight = 0; - while (remainNodes.length) { - for (var i = 0; i < remainNodes.length; i++) { - var node = remainNodes[i]; - node.setLayout({ - skNodeHeight: nodeHeight - }, true); - for (var j = 0; j < node.inEdges.length; j++) { - var edge = node.inEdges[j]; - if (nextSourceNode.indexOf(edge.node1) < 0) { - nextSourceNode.push(edge.node1); - } - } - } - remainNodes = nextSourceNode; - nextSourceNode = []; - ++nodeHeight; - } - each$2(nodes, function(node2) { - if (!isNodeDepth(node2)) { - node2.setLayout({ - depth: Math.max(0, maxDepth - node2.getLayout().skNodeHeight) - }, true); - } - }); - } else if (nodeAlign === "justify") { - moveSinksRight(nodes, maxDepth); - } -} -function moveSinksRight(nodes, maxDepth) { - each$2(nodes, function(node) { - if (!isNodeDepth(node) && !node.outEdges.length) { - node.setLayout({ - depth: maxDepth - }, true); - } - }); -} -function scaleNodeBreadths(nodes, kx, orient) { - each$2(nodes, function(node) { - var nodeDepth = node.getLayout().depth * kx; - orient === "vertical" ? node.setLayout({ - y: nodeDepth - }, true) : node.setLayout({ - x: nodeDepth - }, true); - }); -} -function computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) { - var nodesByBreadth = prepareNodesByBreadth(nodes, orient); - initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient); - resolveCollisions(nodesByBreadth, nodeGap, height, width, orient); - for (var alpha = 1; iterations > 0; iterations--) { - alpha *= 0.99; - relaxRightToLeft(nodesByBreadth, alpha, orient); - resolveCollisions(nodesByBreadth, nodeGap, height, width, orient); - relaxLeftToRight(nodesByBreadth, alpha, orient); - resolveCollisions(nodesByBreadth, nodeGap, height, width, orient); - } -} -function prepareNodesByBreadth(nodes, orient) { - var nodesByBreadth = []; - var keyAttr = orient === "vertical" ? "y" : "x"; - var groupResult = groupData(nodes, function(node) { - return node.getLayout()[keyAttr]; - }); - groupResult.keys.sort(function(a, b) { - return a - b; - }); - each$2(groupResult.keys, function(key) { - nodesByBreadth.push(groupResult.buckets.get(key)); - }); - return nodesByBreadth; -} -function initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) { - var minKy = Infinity; - each$2(nodesByBreadth, function(nodes) { - var n = nodes.length; - var sum2 = 0; - each$2(nodes, function(node) { - sum2 += node.getLayout().value; - }); - var ky = orient === "vertical" ? (width - (n - 1) * nodeGap) / sum2 : (height - (n - 1) * nodeGap) / sum2; - if (ky < minKy) { - minKy = ky; - } - }); - each$2(nodesByBreadth, function(nodes) { - each$2(nodes, function(node, i) { - var nodeDy = node.getLayout().value * minKy; - if (orient === "vertical") { - node.setLayout({ - x: i - }, true); - node.setLayout({ - dx: nodeDy - }, true); - } else { - node.setLayout({ - y: i - }, true); - node.setLayout({ - dy: nodeDy - }, true); - } - }); - }); - each$2(edges, function(edge) { - var edgeDy = +edge.getValue() * minKy; - edge.setLayout({ - dy: edgeDy - }, true); - }); -} -function resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) { - var keyAttr = orient === "vertical" ? "x" : "y"; - each$2(nodesByBreadth, function(nodes) { - nodes.sort(function(a, b) { - return a.getLayout()[keyAttr] - b.getLayout()[keyAttr]; - }); - var nodeX; - var node; - var dy; - var y0 = 0; - var n = nodes.length; - var nodeDyAttr = orient === "vertical" ? "dx" : "dy"; - for (var i = 0; i < n; i++) { - node = nodes[i]; - dy = y0 - node.getLayout()[keyAttr]; - if (dy > 0) { - nodeX = node.getLayout()[keyAttr] + dy; - orient === "vertical" ? node.setLayout({ - x: nodeX - }, true) : node.setLayout({ - y: nodeX - }, true); - } - y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap; - } - var viewWidth = orient === "vertical" ? width : height; - dy = y0 - nodeGap - viewWidth; - if (dy > 0) { - nodeX = node.getLayout()[keyAttr] - dy; - orient === "vertical" ? node.setLayout({ - x: nodeX - }, true) : node.setLayout({ - y: nodeX - }, true); - y0 = nodeX; - for (var i = n - 2; i >= 0; --i) { - node = nodes[i]; - dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0; - if (dy > 0) { - nodeX = node.getLayout()[keyAttr] - dy; - orient === "vertical" ? node.setLayout({ - x: nodeX - }, true) : node.setLayout({ - y: nodeX - }, true); - } - y0 = node.getLayout()[keyAttr]; - } - } - }); -} -function relaxRightToLeft(nodesByBreadth, alpha, orient) { - each$2(nodesByBreadth.slice().reverse(), function(nodes) { - each$2(nodes, function(node) { - if (node.outEdges.length) { - var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue); - if (isNaN(y)) { - var len2 = node.outEdges.length; - y = len2 ? sum(node.outEdges, centerTarget, orient) / len2 : 0; - } - if (orient === "vertical") { - var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha; - node.setLayout({ - x: nodeX - }, true); - } else { - var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha; - node.setLayout({ - y: nodeY - }, true); - } - } - }); - }); -} -function weightedTarget(edge, orient) { - return center(edge.node2, orient) * edge.getValue(); -} -function centerTarget(edge, orient) { - return center(edge.node2, orient); -} -function weightedSource(edge, orient) { - return center(edge.node1, orient) * edge.getValue(); -} -function centerSource(edge, orient) { - return center(edge.node1, orient); -} -function center(node, orient) { - return orient === "vertical" ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2; -} -function getEdgeValue(edge) { - return edge.getValue(); -} -function sum(array, cb, orient) { - var sum2 = 0; - var len2 = array.length; - var i = -1; - while (++i < len2) { - var value = +cb(array[i], orient); - if (!isNaN(value)) { - sum2 += value; - } - } - return sum2; -} -function relaxLeftToRight(nodesByBreadth, alpha, orient) { - each$2(nodesByBreadth, function(nodes) { - each$2(nodes, function(node) { - if (node.inEdges.length) { - var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue); - if (isNaN(y)) { - var len2 = node.inEdges.length; - y = len2 ? sum(node.inEdges, centerSource, orient) / len2 : 0; - } - if (orient === "vertical") { - var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha; - node.setLayout({ - x: nodeX - }, true); - } else { - var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha; - node.setLayout({ - y: nodeY - }, true); - } - } - }); - }); -} -function computeEdgeDepths(nodes, orient) { - var keyAttr = orient === "vertical" ? "x" : "y"; - each$2(nodes, function(node) { - node.outEdges.sort(function(a, b) { - return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr]; - }); - node.inEdges.sort(function(a, b) { - return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr]; - }); - }); - each$2(nodes, function(node) { - var sy = 0; - var ty = 0; - each$2(node.outEdges, function(edge) { - edge.setLayout({ - sy - }, true); - sy += edge.getLayout().dy; - }); - each$2(node.inEdges, function(edge) { - edge.setLayout({ - ty - }, true); - ty += edge.getLayout().dy; - }); - }); -} -function sankeyVisual(ecModel) { - ecModel.eachSeriesByType("sankey", function(seriesModel) { - var graph = seriesModel.getGraph(); - var nodes = graph.nodes; - var edges = graph.edges; - if (nodes.length) { - var minValue_1 = Infinity; - var maxValue_1 = -Infinity; - each$2(nodes, function(node) { - var nodeValue = node.getLayout().value; - if (nodeValue < minValue_1) { - minValue_1 = nodeValue; - } - if (nodeValue > maxValue_1) { - maxValue_1 = nodeValue; - } - }); - each$2(nodes, function(node) { - var mapping = new VisualMapping({ - type: "color", - mappingMethod: "linear", - dataExtent: [minValue_1, maxValue_1], - visual: seriesModel.get("color") - }); - var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value); - var customColor = node.getModel().get(["itemStyle", "color"]); - if (customColor != null) { - node.setVisual("color", customColor); - node.setVisual("style", { - fill: customColor - }); - } else { - node.setVisual("color", mapValueToColor); - node.setVisual("style", { - fill: mapValueToColor - }); - } - }); - } - if (edges.length) { - each$2(edges, function(edge) { - var edgeStyle = edge.getModel().get("lineStyle"); - edge.setVisual("style", edgeStyle); - }); - } - }); -} -function install$9(registers) { - registers.registerChartView(SankeyView$1); - registers.registerSeriesModel(SankeySeriesModel$1); - registers.registerLayout(sankeyLayout); - registers.registerVisual(sankeyVisual); - registers.registerAction({ - type: "dragNode", - event: "dragnode", - // here can only use 'update' now, other value is not support in echarts. - update: "update" - }, function(payload, ecModel) { - ecModel.eachComponent({ - mainType: "series", - subType: "sankey", - query: payload - }, function(seriesModel) { - seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]); - }); - }); -} -var WhiskerBoxCommonMixin = ( - /** @class */ - function() { - function WhiskerBoxCommonMixin2() { - } - WhiskerBoxCommonMixin2.prototype.getInitialData = function(option, ecModel) { - var ordinalMeta; - var xAxisModel = ecModel.getComponent("xAxis", this.get("xAxisIndex")); - var yAxisModel = ecModel.getComponent("yAxis", this.get("yAxisIndex")); - var xAxisType = xAxisModel.get("type"); - var yAxisType = yAxisModel.get("type"); - var addOrdinal; - if (xAxisType === "category") { - option.layout = "horizontal"; - ordinalMeta = xAxisModel.getOrdinalMeta(); - addOrdinal = true; - } else if (yAxisType === "category") { - option.layout = "vertical"; - ordinalMeta = yAxisModel.getOrdinalMeta(); - addOrdinal = true; - } else { - option.layout = option.layout || "horizontal"; - } - var coordDims = ["x", "y"]; - var baseAxisDimIndex = option.layout === "horizontal" ? 0 : 1; - var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex]; - var otherAxisDim = coordDims[1 - baseAxisDimIndex]; - var axisModels = [xAxisModel, yAxisModel]; - var baseAxisType = axisModels[baseAxisDimIndex].get("type"); - var otherAxisType = axisModels[1 - baseAxisDimIndex].get("type"); - var data = option.data; - if (data && addOrdinal) { - var newOptionData_1 = []; - each$2(data, function(item, index) { - var newItem; - if (isArray(item)) { - newItem = item.slice(); - item.unshift(index); - } else if (isArray(item.value)) { - newItem = extend({}, item); - newItem.value = newItem.value.slice(); - item.value.unshift(index); - } else { - newItem = item; - } - newOptionData_1.push(newItem); - }); - option.data = newOptionData_1; - } - var defaultValueDimensions = this.defaultValueDimensions; - var coordDimensions = [{ - name: baseAxisDim, - type: getDimensionTypeByAxis(baseAxisType), - ordinalMeta, - otherDims: { - tooltip: false, - itemName: 0 - }, - dimsDef: ["base"] - }, { - name: otherAxisDim, - type: getDimensionTypeByAxis(otherAxisType), - dimsDef: defaultValueDimensions.slice() - }]; - return createSeriesDataSimply(this, { - coordDimensions, - dimensionsCount: defaultValueDimensions.length + 1, - encodeDefaulter: curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this) - }); - }; - WhiskerBoxCommonMixin2.prototype.getBaseAxis = function() { - var dim = this._baseAxisDim; - return this.ecModel.getComponent(dim + "Axis", this.get(dim + "AxisIndex")).axis; - }; - return WhiskerBoxCommonMixin2; - }() -); -var BoxplotSeriesModel = ( - /** @class */ - function(_super) { - __extends(BoxplotSeriesModel2, _super); - function BoxplotSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = BoxplotSeriesModel2.type; - _this.defaultValueDimensions = [{ - name: "min", - defaultTooltip: true - }, { - name: "Q1", - defaultTooltip: true - }, { - name: "median", - defaultTooltip: true - }, { - name: "Q3", - defaultTooltip: true - }, { - name: "max", - defaultTooltip: true - }]; - _this.visualDrawType = "stroke"; - return _this; - } - BoxplotSeriesModel2.type = "series.boxplot"; - BoxplotSeriesModel2.dependencies = ["xAxis", "yAxis", "grid"]; - BoxplotSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - coordinateSystem: "cartesian2d", - legendHoverLink: true, - layout: null, - boxWidth: [7, 50], - itemStyle: { - color: "#fff", - borderWidth: 1 - }, - emphasis: { - scale: true, - itemStyle: { - borderWidth: 2, - shadowBlur: 5, - shadowOffsetX: 1, - shadowOffsetY: 1, - shadowColor: "rgba(0,0,0,0.2)" - } - }, - animationDuration: 800 - }; - return BoxplotSeriesModel2; - }(SeriesModel) -); -mixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true); -const BoxplotSeriesModel$1 = BoxplotSeriesModel; -var BoxplotView = ( - /** @class */ - function(_super) { - __extends(BoxplotView2, _super); - function BoxplotView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = BoxplotView2.type; - return _this; - } - BoxplotView2.prototype.render = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var group = this.group; - var oldData = this._data; - if (!this._data) { - group.removeAll(); - } - var constDim = seriesModel.get("layout") === "horizontal" ? 1 : 0; - data.diff(oldData).add(function(newIdx) { - if (data.hasValue(newIdx)) { - var itemLayout = data.getItemLayout(newIdx); - var symbolEl = createNormalBox$1(itemLayout, data, newIdx, constDim, true); - data.setItemGraphicEl(newIdx, symbolEl); - group.add(symbolEl); - } - }).update(function(newIdx, oldIdx) { - var symbolEl = oldData.getItemGraphicEl(oldIdx); - if (!data.hasValue(newIdx)) { - group.remove(symbolEl); - return; - } - var itemLayout = data.getItemLayout(newIdx); - if (!symbolEl) { - symbolEl = createNormalBox$1(itemLayout, data, newIdx, constDim); - } else { - saveOldStyle(symbolEl); - updateNormalBoxData(itemLayout, symbolEl, data, newIdx); - } - group.add(symbolEl); - data.setItemGraphicEl(newIdx, symbolEl); - }).remove(function(oldIdx) { - var el = oldData.getItemGraphicEl(oldIdx); - el && group.remove(el); - }).execute(); - this._data = data; - }; - BoxplotView2.prototype.remove = function(ecModel) { - var group = this.group; - var data = this._data; - this._data = null; - data && data.eachItemGraphicEl(function(el) { - el && group.remove(el); - }); - }; - BoxplotView2.type = "boxplot"; - return BoxplotView2; - }(ChartView) -); -var BoxPathShape = ( - /** @class */ - function() { - function BoxPathShape2() { - } - return BoxPathShape2; - }() -); -var BoxPath = ( - /** @class */ - function(_super) { - __extends(BoxPath2, _super); - function BoxPath2(opts) { - var _this = _super.call(this, opts) || this; - _this.type = "boxplotBoxPath"; - return _this; - } - BoxPath2.prototype.getDefaultShape = function() { - return new BoxPathShape(); - }; - BoxPath2.prototype.buildPath = function(ctx, shape) { - var ends = shape.points; - var i = 0; - ctx.moveTo(ends[i][0], ends[i][1]); - i++; - for (; i < 4; i++) { - ctx.lineTo(ends[i][0], ends[i][1]); - } - ctx.closePath(); - for (; i < ends.length; i++) { - ctx.moveTo(ends[i][0], ends[i][1]); - i++; - ctx.lineTo(ends[i][0], ends[i][1]); - } - }; - return BoxPath2; - }(Path) -); -function createNormalBox$1(itemLayout, data, dataIndex, constDim, isInit) { - var ends = itemLayout.ends; - var el = new BoxPath({ - shape: { - points: isInit ? transInit$1(ends, constDim, itemLayout) : ends - } - }); - updateNormalBoxData(itemLayout, el, data, dataIndex, isInit); - return el; -} -function updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) { - var seriesModel = data.hostModel; - var updateMethod = graphic[isInit ? "initProps" : "updateProps"]; - updateMethod(el, { - shape: { - points: itemLayout.ends - } - }, seriesModel, dataIndex); - el.useStyle(data.getItemVisual(dataIndex, "style")); - el.style.strokeNoScale = true; - el.z2 = 100; - var itemModel = data.getItemModel(dataIndex); - var emphasisModel = itemModel.getModel("emphasis"); - setStatesStylesFromModel(el, itemModel); - toggleHoverEmphasis(el, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled")); -} -function transInit$1(points, dim, itemLayout) { - return map(points, function(point) { - point = point.slice(); - point[dim] = itemLayout.initBaseline; - return point; - }); -} -const BoxplotView$1 = BoxplotView; -var each = each$2; -function boxplotLayout(ecModel) { - var groupResult = groupSeriesByAxis(ecModel); - each(groupResult, function(groupItem) { - var seriesModels = groupItem.seriesModels; - if (!seriesModels.length) { - return; - } - calculateBase(groupItem); - each(seriesModels, function(seriesModel, idx) { - layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]); - }); - }); -} -function groupSeriesByAxis(ecModel) { - var result = []; - var axisList = []; - ecModel.eachSeriesByType("boxplot", function(seriesModel) { - var baseAxis = seriesModel.getBaseAxis(); - var idx = indexOf(axisList, baseAxis); - if (idx < 0) { - idx = axisList.length; - axisList[idx] = baseAxis; - result[idx] = { - axis: baseAxis, - seriesModels: [] - }; - } - result[idx].seriesModels.push(seriesModel); - }); - return result; -} -function calculateBase(groupItem) { - var baseAxis = groupItem.axis; - var seriesModels = groupItem.seriesModels; - var seriesCount = seriesModels.length; - var boxWidthList = groupItem.boxWidthList = []; - var boxOffsetList = groupItem.boxOffsetList = []; - var boundList = []; - var bandWidth; - if (baseAxis.type === "category") { - bandWidth = baseAxis.getBandWidth(); - } else { - var maxDataCount_1 = 0; - each(seriesModels, function(seriesModel) { - maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count()); - }); - var extent = baseAxis.getExtent(); - bandWidth = Math.abs(extent[1] - extent[0]) / maxDataCount_1; - } - each(seriesModels, function(seriesModel) { - var boxWidthBound = seriesModel.get("boxWidth"); - if (!isArray(boxWidthBound)) { - boxWidthBound = [boxWidthBound, boxWidthBound]; - } - boundList.push([parsePercent$1(boxWidthBound[0], bandWidth) || 0, parsePercent$1(boxWidthBound[1], bandWidth) || 0]); - }); - var availableWidth = bandWidth * 0.8 - 2; - var boxGap = availableWidth / seriesCount * 0.3; - var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount; - var base = boxWidth / 2 - availableWidth / 2; - each(seriesModels, function(seriesModel, idx) { - boxOffsetList.push(base); - base += boxGap + boxWidth; - boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1])); - }); -} -function layoutSingleSeries(seriesModel, offset, boxWidth) { - var coordSys = seriesModel.coordinateSystem; - var data = seriesModel.getData(); - var halfWidth = boxWidth / 2; - var cDimIdx = seriesModel.get("layout") === "horizontal" ? 0 : 1; - var vDimIdx = 1 - cDimIdx; - var coordDims = ["x", "y"]; - var cDim = data.mapDimension(coordDims[cDimIdx]); - var vDims = data.mapDimensionsAll(coordDims[vDimIdx]); - if (cDim == null || vDims.length < 5) { - return; - } - for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) { - var axisDimVal = data.get(cDim, dataIndex); - var median = getPoint(axisDimVal, vDims[2], dataIndex); - var end1 = getPoint(axisDimVal, vDims[0], dataIndex); - var end2 = getPoint(axisDimVal, vDims[1], dataIndex); - var end4 = getPoint(axisDimVal, vDims[3], dataIndex); - var end5 = getPoint(axisDimVal, vDims[4], dataIndex); - var ends = []; - addBodyEnd(ends, end2, false); - addBodyEnd(ends, end4, true); - ends.push(end1, end2, end5, end4); - layEndLine(ends, end1); - layEndLine(ends, end5); - layEndLine(ends, median); - data.setItemLayout(dataIndex, { - initBaseline: median[vDimIdx], - ends - }); - } - function getPoint(axisDimVal2, dim, dataIndex2) { - var val = data.get(dim, dataIndex2); - var p = []; - p[cDimIdx] = axisDimVal2; - p[vDimIdx] = val; - var point; - if (isNaN(axisDimVal2) || isNaN(val)) { - point = [NaN, NaN]; - } else { - point = coordSys.dataToPoint(p); - point[cDimIdx] += offset; - } - return point; - } - function addBodyEnd(ends2, point, start) { - var point1 = point.slice(); - var point2 = point.slice(); - point1[cDimIdx] += halfWidth; - point2[cDimIdx] -= halfWidth; - start ? ends2.push(point1, point2) : ends2.push(point2, point1); - } - function layEndLine(ends2, endCenter) { - var from = endCenter.slice(); - var to = endCenter.slice(); - from[cDimIdx] -= halfWidth; - to[cDimIdx] += halfWidth; - ends2.push(from, to); - } -} -function prepareBoxplotData(rawData, opt) { - opt = opt || {}; - var boxData = []; - var outliers = []; - var boundIQR = opt.boundIQR; - var useExtreme = boundIQR === "none" || boundIQR === 0; - for (var i = 0; i < rawData.length; i++) { - var ascList = asc(rawData[i].slice()); - var Q1 = quantile(ascList, 0.25); - var Q2 = quantile(ascList, 0.5); - var Q3 = quantile(ascList, 0.75); - var min = ascList[0]; - var max = ascList[ascList.length - 1]; - var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1); - var low = useExtreme ? min : Math.max(min, Q1 - bound); - var high = useExtreme ? max : Math.min(max, Q3 + bound); - var itemNameFormatter = opt.itemNameFormatter; - var itemName = isFunction(itemNameFormatter) ? itemNameFormatter({ - value: i - }) : isString(itemNameFormatter) ? itemNameFormatter.replace("{value}", i + "") : i + ""; - boxData.push([itemName, low, Q1, Q2, Q3, high]); - for (var j = 0; j < ascList.length; j++) { - var dataItem = ascList[j]; - if (dataItem < low || dataItem > high) { - var outlier = [itemName, dataItem]; - outliers.push(outlier); - } - } - } - return { - boxData, - outliers - }; -} -var boxplotTransform = { - type: "echarts:boxplot", - transform: function transform(params) { - var upstream = params.upstream; - if (upstream.sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS) { - var errMsg = ""; - throwError(errMsg); - } - var result = prepareBoxplotData(upstream.getRawData(), params.config); - return [{ - dimensions: ["ItemName", "Low", "Q1", "Q2", "Q3", "High"], - data: result.boxData - }, { - data: result.outliers - }]; - } -}; -function install$8(registers) { - registers.registerSeriesModel(BoxplotSeriesModel$1); - registers.registerChartView(BoxplotView$1); - registers.registerLayout(boxplotLayout); - registers.registerTransform(boxplotTransform); -} -var SKIP_PROPS = ["color", "borderColor"]; -var CandlestickView = ( - /** @class */ - function(_super) { - __extends(CandlestickView2, _super); - function CandlestickView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = CandlestickView2.type; - return _this; - } - CandlestickView2.prototype.render = function(seriesModel, ecModel, api) { - this.group.removeClipPath(); - this._progressiveEls = null; - this._updateDrawMode(seriesModel); - this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel); - }; - CandlestickView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) { - this._clear(); - this._updateDrawMode(seriesModel); - }; - CandlestickView2.prototype.incrementalRender = function(params, seriesModel, ecModel, api) { - this._progressiveEls = []; - this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel); - }; - CandlestickView2.prototype.eachRendered = function(cb) { - traverseElements(this._progressiveEls || this.group, cb); - }; - CandlestickView2.prototype._updateDrawMode = function(seriesModel) { - var isLargeDraw = seriesModel.pipelineContext.large; - if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) { - this._isLargeDraw = isLargeDraw; - this._clear(); - } - }; - CandlestickView2.prototype._renderNormal = function(seriesModel) { - var data = seriesModel.getData(); - var oldData = this._data; - var group = this.group; - var isSimpleBox = data.getLayout("isSimpleBox"); - var needsClip = seriesModel.get("clip", true); - var coord = seriesModel.coordinateSystem; - var clipArea = coord.getArea && coord.getArea(); - if (!this._data) { - group.removeAll(); - } - data.diff(oldData).add(function(newIdx) { - if (data.hasValue(newIdx)) { - var itemLayout = data.getItemLayout(newIdx); - if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) { - return; - } - var el = createNormalBox(itemLayout, newIdx, true); - initProps(el, { - shape: { - points: itemLayout.ends - } - }, seriesModel, newIdx); - setBoxCommon(el, data, newIdx, isSimpleBox); - group.add(el); - data.setItemGraphicEl(newIdx, el); - } - }).update(function(newIdx, oldIdx) { - var el = oldData.getItemGraphicEl(oldIdx); - if (!data.hasValue(newIdx)) { - group.remove(el); - return; - } - var itemLayout = data.getItemLayout(newIdx); - if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) { - group.remove(el); - return; - } - if (!el) { - el = createNormalBox(itemLayout); - } else { - updateProps(el, { - shape: { - points: itemLayout.ends - } - }, seriesModel, newIdx); - saveOldStyle(el); - } - setBoxCommon(el, data, newIdx, isSimpleBox); - group.add(el); - data.setItemGraphicEl(newIdx, el); - }).remove(function(oldIdx) { - var el = oldData.getItemGraphicEl(oldIdx); - el && group.remove(el); - }).execute(); - this._data = data; - }; - CandlestickView2.prototype._renderLarge = function(seriesModel) { - this._clear(); - createLarge(seriesModel, this.group); - var clipPath = seriesModel.get("clip", true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null; - if (clipPath) { - this.group.setClipPath(clipPath); - } else { - this.group.removeClipPath(); - } - }; - CandlestickView2.prototype._incrementalRenderNormal = function(params, seriesModel) { - var data = seriesModel.getData(); - var isSimpleBox = data.getLayout("isSimpleBox"); - var dataIndex; - while ((dataIndex = params.next()) != null) { - var itemLayout = data.getItemLayout(dataIndex); - var el = createNormalBox(itemLayout); - setBoxCommon(el, data, dataIndex, isSimpleBox); - el.incremental = true; - this.group.add(el); - this._progressiveEls.push(el); - } - }; - CandlestickView2.prototype._incrementalRenderLarge = function(params, seriesModel) { - createLarge(seriesModel, this.group, this._progressiveEls, true); - }; - CandlestickView2.prototype.remove = function(ecModel) { - this._clear(); - }; - CandlestickView2.prototype._clear = function() { - this.group.removeAll(); - this._data = null; - }; - CandlestickView2.type = "candlestick"; - return CandlestickView2; - }(ChartView) -); -var NormalBoxPathShape = ( - /** @class */ - function() { - function NormalBoxPathShape2() { - } - return NormalBoxPathShape2; - }() -); -var NormalBoxPath = ( - /** @class */ - function(_super) { - __extends(NormalBoxPath2, _super); - function NormalBoxPath2(opts) { - var _this = _super.call(this, opts) || this; - _this.type = "normalCandlestickBox"; - return _this; - } - NormalBoxPath2.prototype.getDefaultShape = function() { - return new NormalBoxPathShape(); - }; - NormalBoxPath2.prototype.buildPath = function(ctx, shape) { - var ends = shape.points; - if (this.__simpleBox) { - ctx.moveTo(ends[4][0], ends[4][1]); - ctx.lineTo(ends[6][0], ends[6][1]); - } else { - ctx.moveTo(ends[0][0], ends[0][1]); - ctx.lineTo(ends[1][0], ends[1][1]); - ctx.lineTo(ends[2][0], ends[2][1]); - ctx.lineTo(ends[3][0], ends[3][1]); - ctx.closePath(); - ctx.moveTo(ends[4][0], ends[4][1]); - ctx.lineTo(ends[5][0], ends[5][1]); - ctx.moveTo(ends[6][0], ends[6][1]); - ctx.lineTo(ends[7][0], ends[7][1]); - } - }; - return NormalBoxPath2; - }(Path) -); -function createNormalBox(itemLayout, dataIndex, isInit) { - var ends = itemLayout.ends; - return new NormalBoxPath({ - shape: { - points: isInit ? transInit(ends, itemLayout) : ends - }, - z2: 100 - }); -} -function isNormalBoxClipped(clipArea, itemLayout) { - var clipped = true; - for (var i = 0; i < itemLayout.ends.length; i++) { - if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) { - clipped = false; - break; - } - } - return clipped; -} -function setBoxCommon(el, data, dataIndex, isSimpleBox) { - var itemModel = data.getItemModel(dataIndex); - el.useStyle(data.getItemVisual(dataIndex, "style")); - el.style.strokeNoScale = true; - el.__simpleBox = isSimpleBox; - setStatesStylesFromModel(el, itemModel); -} -function transInit(points, itemLayout) { - return map(points, function(point) { - point = point.slice(); - point[1] = itemLayout.initBaseline; - return point; - }); -} -var LargeBoxPathShape = ( - /** @class */ - function() { - function LargeBoxPathShape2() { - } - return LargeBoxPathShape2; - }() -); -var LargeBoxPath = ( - /** @class */ - function(_super) { - __extends(LargeBoxPath2, _super); - function LargeBoxPath2(opts) { - var _this = _super.call(this, opts) || this; - _this.type = "largeCandlestickBox"; - return _this; - } - LargeBoxPath2.prototype.getDefaultShape = function() { - return new LargeBoxPathShape(); - }; - LargeBoxPath2.prototype.buildPath = function(ctx, shape) { - var points = shape.points; - for (var i = 0; i < points.length; ) { - if (this.__sign === points[i++]) { - var x = points[i++]; - ctx.moveTo(x, points[i++]); - ctx.lineTo(x, points[i++]); - } else { - i += 3; - } - } - }; - return LargeBoxPath2; - }(Path) -); -function createLarge(seriesModel, group, progressiveEls, incremental) { - var data = seriesModel.getData(); - var largePoints = data.getLayout("largePoints"); - var elP = new LargeBoxPath({ - shape: { - points: largePoints - }, - __sign: 1, - ignoreCoarsePointer: true - }); - group.add(elP); - var elN = new LargeBoxPath({ - shape: { - points: largePoints - }, - __sign: -1, - ignoreCoarsePointer: true - }); - group.add(elN); - var elDoji = new LargeBoxPath({ - shape: { - points: largePoints - }, - __sign: 0, - ignoreCoarsePointer: true - }); - group.add(elDoji); - setLargeStyle(1, elP, seriesModel); - setLargeStyle(-1, elN, seriesModel); - setLargeStyle(0, elDoji, seriesModel); - if (incremental) { - elP.incremental = true; - elN.incremental = true; - } - if (progressiveEls) { - progressiveEls.push(elP, elN); - } -} -function setLargeStyle(sign, el, seriesModel, data) { - var borderColor = seriesModel.get(["itemStyle", sign > 0 ? "borderColor" : "borderColor0"]) || seriesModel.get(["itemStyle", sign > 0 ? "color" : "color0"]); - if (sign === 0) { - borderColor = seriesModel.get(["itemStyle", "borderColorDoji"]); - } - var itemStyle = seriesModel.getModel("itemStyle").getItemStyle(SKIP_PROPS); - el.useStyle(itemStyle); - el.style.fill = null; - el.style.stroke = borderColor; -} -const CandlestickView$1 = CandlestickView; -var CandlestickSeriesModel = ( - /** @class */ - function(_super) { - __extends(CandlestickSeriesModel2, _super); - function CandlestickSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = CandlestickSeriesModel2.type; - _this.defaultValueDimensions = [{ - name: "open", - defaultTooltip: true - }, { - name: "close", - defaultTooltip: true - }, { - name: "lowest", - defaultTooltip: true - }, { - name: "highest", - defaultTooltip: true - }]; - return _this; - } - CandlestickSeriesModel2.prototype.getShadowDim = function() { - return "open"; - }; - CandlestickSeriesModel2.prototype.brushSelector = function(dataIndex, data, selectors) { - var itemLayout = data.getItemLayout(dataIndex); - return itemLayout && selectors.rect(itemLayout.brushRect); - }; - CandlestickSeriesModel2.type = "series.candlestick"; - CandlestickSeriesModel2.dependencies = ["xAxis", "yAxis", "grid"]; - CandlestickSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - coordinateSystem: "cartesian2d", - legendHoverLink: true, - // xAxisIndex: 0, - // yAxisIndex: 0, - layout: null, - clip: true, - itemStyle: { - color: "#eb5454", - color0: "#47b262", - borderColor: "#eb5454", - borderColor0: "#47b262", - borderColorDoji: null, - // borderColor: '#d24040', - // borderColor0: '#398f4f', - borderWidth: 1 - }, - emphasis: { - scale: true, - itemStyle: { - borderWidth: 2 - } - }, - barMaxWidth: null, - barMinWidth: null, - barWidth: null, - large: true, - largeThreshold: 600, - progressive: 3e3, - progressiveThreshold: 1e4, - progressiveChunkMode: "mod", - animationEasing: "linear", - animationDuration: 300 - }; - return CandlestickSeriesModel2; - }(SeriesModel) -); -mixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true); -const CandlestickSeriesModel$1 = CandlestickSeriesModel; -function candlestickPreprocessor(option) { - if (!option || !isArray(option.series)) { - return; - } - each$2(option.series, function(seriesItem) { - if (isObject(seriesItem) && seriesItem.type === "k") { - seriesItem.type = "candlestick"; - } - }); -} -var positiveBorderColorQuery = ["itemStyle", "borderColor"]; -var negativeBorderColorQuery = ["itemStyle", "borderColor0"]; -var dojiBorderColorQuery = ["itemStyle", "borderColorDoji"]; -var positiveColorQuery = ["itemStyle", "color"]; -var negativeColorQuery = ["itemStyle", "color0"]; -var candlestickVisual = { - seriesType: "candlestick", - plan: createRenderPlanner(), - // For legend. - performRawSeries: true, - reset: function(seriesModel, ecModel) { - function getColor(sign, model) { - return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery); - } - function getBorderColor(sign, model) { - return model.get(sign === 0 ? dojiBorderColorQuery : sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery); - } - if (ecModel.isSeriesFiltered(seriesModel)) { - return; - } - var isLargeRender = seriesModel.pipelineContext.large; - return !isLargeRender && { - progress: function(params, data) { - var dataIndex; - while ((dataIndex = params.next()) != null) { - var itemModel = data.getItemModel(dataIndex); - var sign = data.getItemLayout(dataIndex).sign; - var style = itemModel.getItemStyle(); - style.fill = getColor(sign, itemModel); - style.stroke = getBorderColor(sign, itemModel) || style.fill; - var existsStyle = data.ensureUniqueItemVisual(dataIndex, "style"); - extend(existsStyle, style); - } - } - }; - } -}; -const candlestickVisual$1 = candlestickVisual; -var candlestickLayout = { - seriesType: "candlestick", - plan: createRenderPlanner(), - reset: function(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - var data = seriesModel.getData(); - var candleWidth = calculateCandleWidth(seriesModel, data); - var cDimIdx = 0; - var vDimIdx = 1; - var coordDims = ["x", "y"]; - var cDimI = data.getDimensionIndex(data.mapDimension(coordDims[cDimIdx])); - var vDimsI = map(data.mapDimensionsAll(coordDims[vDimIdx]), data.getDimensionIndex, data); - var openDimI = vDimsI[0]; - var closeDimI = vDimsI[1]; - var lowestDimI = vDimsI[2]; - var highestDimI = vDimsI[3]; - data.setLayout({ - candleWidth, - // The value is experimented visually. - isSimpleBox: candleWidth <= 1.3 - }); - if (cDimI < 0 || vDimsI.length < 4) { - return; - } - return { - progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress - }; - function normalProgress(params, data2) { - var dataIndex; - var store = data2.getStore(); - while ((dataIndex = params.next()) != null) { - var axisDimVal = store.get(cDimI, dataIndex); - var openVal = store.get(openDimI, dataIndex); - var closeVal = store.get(closeDimI, dataIndex); - var lowestVal = store.get(lowestDimI, dataIndex); - var highestVal = store.get(highestDimI, dataIndex); - var ocLow = Math.min(openVal, closeVal); - var ocHigh = Math.max(openVal, closeVal); - var ocLowPoint = getPoint(ocLow, axisDimVal); - var ocHighPoint = getPoint(ocHigh, axisDimVal); - var lowestPoint = getPoint(lowestVal, axisDimVal); - var highestPoint = getPoint(highestVal, axisDimVal); - var ends = []; - addBodyEnd(ends, ocHighPoint, 0); - addBodyEnd(ends, ocLowPoint, 1); - ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint)); - var itemModel = data2.getItemModel(dataIndex); - var hasDojiColor = !!itemModel.get(["itemStyle", "borderColorDoji"]); - data2.setItemLayout(dataIndex, { - sign: getSign(store, dataIndex, openVal, closeVal, closeDimI, hasDojiColor), - initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx], - ends, - brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal) - }); - } - function getPoint(val, axisDimVal2) { - var p = []; - p[cDimIdx] = axisDimVal2; - p[vDimIdx] = val; - return isNaN(axisDimVal2) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p); - } - function addBodyEnd(ends2, point, start) { - var point1 = point.slice(); - var point2 = point.slice(); - point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false); - point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true); - start ? ends2.push(point1, point2) : ends2.push(point2, point1); - } - function makeBrushRect(lowestVal2, highestVal2, axisDimVal2) { - var pmin = getPoint(lowestVal2, axisDimVal2); - var pmax = getPoint(highestVal2, axisDimVal2); - pmin[cDimIdx] -= candleWidth / 2; - pmax[cDimIdx] -= candleWidth / 2; - return { - x: pmin[0], - y: pmin[1], - width: candleWidth, - height: pmax[1] - pmin[1] - }; - } - function subPixelOptimizePoint(point) { - point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1); - return point; - } - } - function largeProgress(params, data2) { - var points = createFloat32Array(params.count * 4); - var offset = 0; - var point; - var tmpIn = []; - var tmpOut = []; - var dataIndex; - var store = data2.getStore(); - var hasDojiColor = !!seriesModel.get(["itemStyle", "borderColorDoji"]); - while ((dataIndex = params.next()) != null) { - var axisDimVal = store.get(cDimI, dataIndex); - var openVal = store.get(openDimI, dataIndex); - var closeVal = store.get(closeDimI, dataIndex); - var lowestVal = store.get(lowestDimI, dataIndex); - var highestVal = store.get(highestDimI, dataIndex); - if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) { - points[offset++] = NaN; - offset += 3; - continue; - } - points[offset++] = getSign(store, dataIndex, openVal, closeVal, closeDimI, hasDojiColor); - tmpIn[cDimIdx] = axisDimVal; - tmpIn[vDimIdx] = lowestVal; - point = coordSys.dataToPoint(tmpIn, null, tmpOut); - points[offset++] = point ? point[0] : NaN; - points[offset++] = point ? point[1] : NaN; - tmpIn[vDimIdx] = highestVal; - point = coordSys.dataToPoint(tmpIn, null, tmpOut); - points[offset++] = point ? point[1] : NaN; - } - data2.setLayout("largePoints", points); - } - } -}; -function getSign(store, dataIndex, openVal, closeVal, closeDimI, hasDojiColor) { - var sign; - if (openVal > closeVal) { - sign = -1; - } else if (openVal < closeVal) { - sign = 1; - } else { - sign = hasDojiColor ? 0 : dataIndex > 0 ? store.get(closeDimI, dataIndex - 1) <= closeVal ? 1 : -1 : ( - // No record of previous, set to be positive - 1 - ); - } - return sign; -} -function calculateCandleWidth(seriesModel, data) { - var baseAxis = seriesModel.getBaseAxis(); - var extent; - var bandWidth = baseAxis.type === "category" ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count()); - var barMaxWidth = parsePercent$1(retrieve2(seriesModel.get("barMaxWidth"), bandWidth), bandWidth); - var barMinWidth = parsePercent$1(retrieve2(seriesModel.get("barMinWidth"), 1), bandWidth); - var barWidth = seriesModel.get("barWidth"); - return barWidth != null ? parsePercent$1(barWidth, bandWidth) : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth); -} -const candlestickLayout$1 = candlestickLayout; -function install$7(registers) { - registers.registerChartView(CandlestickView$1); - registers.registerSeriesModel(CandlestickSeriesModel$1); - registers.registerPreprocessor(candlestickPreprocessor); - registers.registerVisual(candlestickVisual$1); - registers.registerLayout(candlestickLayout$1); -} -function updateRipplePath(rippleGroup, effectCfg) { - var color = effectCfg.rippleEffectColor || effectCfg.color; - rippleGroup.eachChild(function(ripplePath) { - ripplePath.attr({ - z: effectCfg.z, - zlevel: effectCfg.zlevel, - style: { - stroke: effectCfg.brushType === "stroke" ? color : null, - fill: effectCfg.brushType === "fill" ? color : null - } - }); - }); -} -var EffectSymbol = ( - /** @class */ - function(_super) { - __extends(EffectSymbol2, _super); - function EffectSymbol2(data, idx) { - var _this = _super.call(this) || this; - var symbol = new SymbolClz(data, idx); - var rippleGroup = new Group$1(); - _this.add(symbol); - _this.add(rippleGroup); - _this.updateData(data, idx); - return _this; - } - EffectSymbol2.prototype.stopEffectAnimation = function() { - this.childAt(1).removeAll(); - }; - EffectSymbol2.prototype.startEffectAnimation = function(effectCfg) { - var symbolType = effectCfg.symbolType; - var color = effectCfg.color; - var rippleNumber = effectCfg.rippleNumber; - var rippleGroup = this.childAt(1); - for (var i = 0; i < rippleNumber; i++) { - var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color); - ripplePath.attr({ - style: { - strokeNoScale: true - }, - z2: 99, - silent: true, - scaleX: 0.5, - scaleY: 0.5 - }); - var delay = -i / rippleNumber * effectCfg.period + effectCfg.effectOffset; - ripplePath.animate("", true).when(effectCfg.period, { - scaleX: effectCfg.rippleScale / 2, - scaleY: effectCfg.rippleScale / 2 - }).delay(delay).start(); - ripplePath.animateStyle(true).when(effectCfg.period, { - opacity: 0 - }).delay(delay).start(); - rippleGroup.add(ripplePath); - } - updateRipplePath(rippleGroup, effectCfg); - }; - EffectSymbol2.prototype.updateEffectAnimation = function(effectCfg) { - var oldEffectCfg = this._effectCfg; - var rippleGroup = this.childAt(1); - var DIFFICULT_PROPS = ["symbolType", "period", "rippleScale", "rippleNumber"]; - for (var i = 0; i < DIFFICULT_PROPS.length; i++) { - var propName = DIFFICULT_PROPS[i]; - if (oldEffectCfg[propName] !== effectCfg[propName]) { - this.stopEffectAnimation(); - this.startEffectAnimation(effectCfg); - return; - } - } - updateRipplePath(rippleGroup, effectCfg); - }; - EffectSymbol2.prototype.highlight = function() { - enterEmphasis(this); - }; - EffectSymbol2.prototype.downplay = function() { - leaveEmphasis(this); - }; - EffectSymbol2.prototype.getSymbolType = function() { - var symbol = this.childAt(0); - return symbol && symbol.getSymbolType(); - }; - EffectSymbol2.prototype.updateData = function(data, idx) { - var _this = this; - var seriesModel = data.hostModel; - this.childAt(0).updateData(data, idx); - var rippleGroup = this.childAt(1); - var itemModel = data.getItemModel(idx); - var symbolType = data.getItemVisual(idx, "symbol"); - var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, "symbolSize")); - var symbolStyle = data.getItemVisual(idx, "style"); - var color = symbolStyle && symbolStyle.fill; - var emphasisModel = itemModel.getModel("emphasis"); - rippleGroup.setScale(symbolSize); - rippleGroup.traverse(function(ripplePath) { - ripplePath.setStyle("fill", color); - }); - var symbolOffset = normalizeSymbolOffset(data.getItemVisual(idx, "symbolOffset"), symbolSize); - if (symbolOffset) { - rippleGroup.x = symbolOffset[0]; - rippleGroup.y = symbolOffset[1]; - } - var symbolRotate = data.getItemVisual(idx, "symbolRotate"); - rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0; - var effectCfg = {}; - effectCfg.showEffectOn = seriesModel.get("showEffectOn"); - effectCfg.rippleScale = itemModel.get(["rippleEffect", "scale"]); - effectCfg.brushType = itemModel.get(["rippleEffect", "brushType"]); - effectCfg.period = itemModel.get(["rippleEffect", "period"]) * 1e3; - effectCfg.effectOffset = idx / data.count(); - effectCfg.z = seriesModel.getShallow("z") || 0; - effectCfg.zlevel = seriesModel.getShallow("zlevel") || 0; - effectCfg.symbolType = symbolType; - effectCfg.color = color; - effectCfg.rippleEffectColor = itemModel.get(["rippleEffect", "color"]); - effectCfg.rippleNumber = itemModel.get(["rippleEffect", "number"]); - if (effectCfg.showEffectOn === "render") { - this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg); - this._effectCfg = effectCfg; - } else { - this._effectCfg = null; - this.stopEffectAnimation(); - this.onHoverStateChange = function(toState) { - if (toState === "emphasis") { - if (effectCfg.showEffectOn !== "render") { - _this.startEffectAnimation(effectCfg); - } - } else if (toState === "normal") { - if (effectCfg.showEffectOn !== "render") { - _this.stopEffectAnimation(); - } - } - }; - } - this._effectCfg = effectCfg; - toggleHoverEmphasis(this, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - }; - EffectSymbol2.prototype.fadeOut = function(cb) { - cb && cb(); - }; - return EffectSymbol2; - }(Group$1) -); -const EffectSymbol$1 = EffectSymbol; -var EffectScatterView = ( - /** @class */ - function(_super) { - __extends(EffectScatterView2, _super); - function EffectScatterView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = EffectScatterView2.type; - return _this; - } - EffectScatterView2.prototype.init = function() { - this._symbolDraw = new SymbolDraw(EffectSymbol$1); - }; - EffectScatterView2.prototype.render = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var effectSymbolDraw = this._symbolDraw; - effectSymbolDraw.updateData(data, { - clipShape: this._getClipShape(seriesModel) - }); - this.group.add(effectSymbolDraw.group); - }; - EffectScatterView2.prototype._getClipShape = function(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - var clipArea = coordSys && coordSys.getArea && coordSys.getArea(); - return seriesModel.get("clip", true) ? clipArea : null; - }; - EffectScatterView2.prototype.updateTransform = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - this.group.dirty(); - var res = pointsLayout("").reset(seriesModel, ecModel, api); - if (res.progress) { - res.progress({ - start: 0, - end: data.count(), - count: data.count() - }, data); - } - this._symbolDraw.updateLayout(); - }; - EffectScatterView2.prototype._updateGroupTransform = function(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - if (coordSys && coordSys.getRoamTransform) { - this.group.transform = clone$2(coordSys.getRoamTransform()); - this.group.decomposeTransform(); - } - }; - EffectScatterView2.prototype.remove = function(ecModel, api) { - this._symbolDraw && this._symbolDraw.remove(true); - }; - EffectScatterView2.type = "effectScatter"; - return EffectScatterView2; - }(ChartView) -); -const EffectScatterView$1 = EffectScatterView; -var EffectScatterSeriesModel = ( - /** @class */ - function(_super) { - __extends(EffectScatterSeriesModel2, _super); - function EffectScatterSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = EffectScatterSeriesModel2.type; - _this.hasSymbolVisual = true; - return _this; - } - EffectScatterSeriesModel2.prototype.getInitialData = function(option, ecModel) { - return createSeriesData(null, this, { - useEncodeDefaulter: true - }); - }; - EffectScatterSeriesModel2.prototype.brushSelector = function(dataIndex, data, selectors) { - return selectors.point(data.getItemLayout(dataIndex)); - }; - EffectScatterSeriesModel2.type = "series.effectScatter"; - EffectScatterSeriesModel2.dependencies = ["grid", "polar"]; - EffectScatterSeriesModel2.defaultOption = { - coordinateSystem: "cartesian2d", - // zlevel: 0, - z: 2, - legendHoverLink: true, - effectType: "ripple", - progressive: 0, - // When to show the effect, option: 'render'|'emphasis' - showEffectOn: "render", - clip: true, - // Ripple effect config - rippleEffect: { - period: 4, - // Scale of ripple - scale: 2.5, - // Brush type can be fill or stroke - brushType: "fill", - // Ripple number - number: 3 - }, - universalTransition: { - divideShape: "clone" - }, - // Cartesian coordinate system - // xAxisIndex: 0, - // yAxisIndex: 0, - // Polar coordinate system - // polarIndex: 0, - // Geo coordinate system - // geoIndex: 0, - // symbol: null, // 图形类型 - symbolSize: 10 - // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2 - // symbolRotate: null, // 图形旋转控制 - // itemStyle: { - // opacity: 1 - // } - }; - return EffectScatterSeriesModel2; - }(SeriesModel) -); -const EffectScatterSeriesModel$1 = EffectScatterSeriesModel; -function install$6(registers) { - registers.registerChartView(EffectScatterView$1); - registers.registerSeriesModel(EffectScatterSeriesModel$1); - registers.registerLayout(pointsLayout("effectScatter")); -} -var EffectLine = ( - /** @class */ - function(_super) { - __extends(EffectLine2, _super); - function EffectLine2(lineData, idx, seriesScope) { - var _this = _super.call(this) || this; - _this.add(_this.createLine(lineData, idx, seriesScope)); - _this._updateEffectSymbol(lineData, idx); - return _this; - } - EffectLine2.prototype.createLine = function(lineData, idx, seriesScope) { - return new Line$1(lineData, idx, seriesScope); - }; - EffectLine2.prototype._updateEffectSymbol = function(lineData, idx) { - var itemModel = lineData.getItemModel(idx); - var effectModel = itemModel.getModel("effect"); - var size = effectModel.get("symbolSize"); - var symbolType = effectModel.get("symbol"); - if (!isArray(size)) { - size = [size, size]; - } - var lineStyle = lineData.getItemVisual(idx, "style"); - var color = effectModel.get("color") || lineStyle && lineStyle.stroke; - var symbol = this.childAt(1); - if (this._symbolType !== symbolType) { - this.remove(symbol); - symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color); - symbol.z2 = 100; - symbol.culling = true; - this.add(symbol); - } - if (!symbol) { - return; - } - symbol.setStyle("shadowColor", color); - symbol.setStyle(effectModel.getItemStyle(["color"])); - symbol.scaleX = size[0]; - symbol.scaleY = size[1]; - symbol.setColor(color); - this._symbolType = symbolType; - this._symbolScale = size; - this._updateEffectAnimation(lineData, effectModel, idx); - }; - EffectLine2.prototype._updateEffectAnimation = function(lineData, effectModel, idx) { - var symbol = this.childAt(1); - if (!symbol) { - return; - } - var points = lineData.getItemLayout(idx); - var period = effectModel.get("period") * 1e3; - var loop = effectModel.get("loop"); - var roundTrip = effectModel.get("roundTrip"); - var constantSpeed = effectModel.get("constantSpeed"); - var delayExpr = retrieve(effectModel.get("delay"), function(idx2) { - return idx2 / lineData.count() * period / 3; - }); - symbol.ignore = true; - this._updateAnimationPoints(symbol, points); - if (constantSpeed > 0) { - period = this._getLineLength(symbol) / constantSpeed * 1e3; - } - if (period !== this._period || loop !== this._loop || roundTrip !== this._roundTrip) { - symbol.stopAnimation(); - var delayNum = void 0; - if (isFunction(delayExpr)) { - delayNum = delayExpr(idx); - } else { - delayNum = delayExpr; - } - if (symbol.__t > 0) { - delayNum = -period * symbol.__t; - } - this._animateSymbol(symbol, period, delayNum, loop, roundTrip); - } - this._period = period; - this._loop = loop; - this._roundTrip = roundTrip; - }; - EffectLine2.prototype._animateSymbol = function(symbol, period, delayNum, loop, roundTrip) { - if (period > 0) { - symbol.__t = 0; - var self_1 = this; - var animator = symbol.animate("", loop).when(roundTrip ? period * 2 : period, { - __t: roundTrip ? 2 : 1 - }).delay(delayNum).during(function() { - self_1._updateSymbolPosition(symbol); - }); - if (!loop) { - animator.done(function() { - self_1.remove(symbol); - }); - } - animator.start(); - } - }; - EffectLine2.prototype._getLineLength = function(symbol) { - return dist(symbol.__p1, symbol.__cp1) + dist(symbol.__cp1, symbol.__p2); - }; - EffectLine2.prototype._updateAnimationPoints = function(symbol, points) { - symbol.__p1 = points[0]; - symbol.__p2 = points[1]; - symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2]; - }; - EffectLine2.prototype.updateData = function(lineData, idx, seriesScope) { - this.childAt(0).updateData(lineData, idx, seriesScope); - this._updateEffectSymbol(lineData, idx); - }; - EffectLine2.prototype._updateSymbolPosition = function(symbol) { - var p1 = symbol.__p1; - var p2 = symbol.__p2; - var cp1 = symbol.__cp1; - var t = symbol.__t < 1 ? symbol.__t : 2 - symbol.__t; - var pos = [symbol.x, symbol.y]; - var lastPos = pos.slice(); - var quadraticAt2 = quadraticAt$1; - var quadraticDerivativeAt$1 = quadraticDerivativeAt; - pos[0] = quadraticAt2(p1[0], cp1[0], p2[0], t); - pos[1] = quadraticAt2(p1[1], cp1[1], p2[1], t); - var tx = symbol.__t < 1 ? quadraticDerivativeAt$1(p1[0], cp1[0], p2[0], t) : quadraticDerivativeAt$1(p2[0], cp1[0], p1[0], 1 - t); - var ty = symbol.__t < 1 ? quadraticDerivativeAt$1(p1[1], cp1[1], p2[1], t) : quadraticDerivativeAt$1(p2[1], cp1[1], p1[1], 1 - t); - symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2; - if (this._symbolType === "line" || this._symbolType === "rect" || this._symbolType === "roundRect") { - if (symbol.__lastT !== void 0 && symbol.__lastT < symbol.__t) { - symbol.scaleY = dist(lastPos, pos) * 1.05; - if (t === 1) { - pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2; - pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2; - } - } else if (symbol.__lastT === 1) { - symbol.scaleY = 2 * dist(p1, pos); - } else { - symbol.scaleY = this._symbolScale[1]; - } - } - symbol.__lastT = symbol.__t; - symbol.ignore = false; - symbol.x = pos[0]; - symbol.y = pos[1]; - }; - EffectLine2.prototype.updateLayout = function(lineData, idx) { - this.childAt(0).updateLayout(lineData, idx); - var effectModel = lineData.getItemModel(idx).getModel("effect"); - this._updateEffectAnimation(lineData, effectModel, idx); - }; - return EffectLine2; - }(Group$1) -); -const EffectLine$1 = EffectLine; -var Polyline = ( - /** @class */ - function(_super) { - __extends(Polyline2, _super); - function Polyline2(lineData, idx, seriesScope) { - var _this = _super.call(this) || this; - _this._createPolyline(lineData, idx, seriesScope); - return _this; - } - Polyline2.prototype._createPolyline = function(lineData, idx, seriesScope) { - var points = lineData.getItemLayout(idx); - var line = new Polyline$2({ - shape: { - points - } - }); - this.add(line); - this._updateCommonStl(lineData, idx, seriesScope); - }; - Polyline2.prototype.updateData = function(lineData, idx, seriesScope) { - var seriesModel = lineData.hostModel; - var line = this.childAt(0); - var target = { - shape: { - points: lineData.getItemLayout(idx) - } - }; - updateProps(line, target, seriesModel, idx); - this._updateCommonStl(lineData, idx, seriesScope); - }; - Polyline2.prototype._updateCommonStl = function(lineData, idx, seriesScope) { - var line = this.childAt(0); - var itemModel = lineData.getItemModel(idx); - var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle; - var focus = seriesScope && seriesScope.focus; - var blurScope = seriesScope && seriesScope.blurScope; - var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled; - if (!seriesScope || lineData.hasItemOption) { - var emphasisModel = itemModel.getModel("emphasis"); - emphasisLineStyle = emphasisModel.getModel("lineStyle").getLineStyle(); - emphasisDisabled = emphasisModel.get("disabled"); - focus = emphasisModel.get("focus"); - blurScope = emphasisModel.get("blurScope"); - } - line.useStyle(lineData.getItemVisual(idx, "style")); - line.style.fill = null; - line.style.strokeNoScale = true; - var lineEmphasisState = line.ensureState("emphasis"); - lineEmphasisState.style = emphasisLineStyle; - toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled); - }; - Polyline2.prototype.updateLayout = function(lineData, idx) { - var polyline = this.childAt(0); - polyline.setShape("points", lineData.getItemLayout(idx)); - }; - return Polyline2; - }(Group$1) -); -const Polyline$1 = Polyline; -var EffectPolyline = ( - /** @class */ - function(_super) { - __extends(EffectPolyline2, _super); - function EffectPolyline2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._lastFrame = 0; - _this._lastFramePercent = 0; - return _this; - } - EffectPolyline2.prototype.createLine = function(lineData, idx, seriesScope) { - return new Polyline$1(lineData, idx, seriesScope); - }; - EffectPolyline2.prototype._updateAnimationPoints = function(symbol, points) { - this._points = points; - var accLenArr = [0]; - var len2 = 0; - for (var i = 1; i < points.length; i++) { - var p1 = points[i - 1]; - var p2 = points[i]; - len2 += dist(p1, p2); - accLenArr.push(len2); - } - if (len2 === 0) { - this._length = 0; - return; - } - for (var i = 0; i < accLenArr.length; i++) { - accLenArr[i] /= len2; - } - this._offsets = accLenArr; - this._length = len2; - }; - EffectPolyline2.prototype._getLineLength = function() { - return this._length; - }; - EffectPolyline2.prototype._updateSymbolPosition = function(symbol) { - var t = symbol.__t < 1 ? symbol.__t : 2 - symbol.__t; - var points = this._points; - var offsets = this._offsets; - var len2 = points.length; - if (!offsets) { - return; - } - var lastFrame = this._lastFrame; - var frame; - if (t < this._lastFramePercent) { - var start = Math.min(lastFrame + 1, len2 - 1); - for (frame = start; frame >= 0; frame--) { - if (offsets[frame] <= t) { - break; - } - } - frame = Math.min(frame, len2 - 2); - } else { - for (frame = lastFrame; frame < len2; frame++) { - if (offsets[frame] > t) { - break; - } - } - frame = Math.min(frame - 1, len2 - 2); - } - var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]); - var p0 = points[frame]; - var p1 = points[frame + 1]; - symbol.x = p0[0] * (1 - p) + p * p1[0]; - symbol.y = p0[1] * (1 - p) + p * p1[1]; - var tx = symbol.__t < 1 ? p1[0] - p0[0] : p0[0] - p1[0]; - var ty = symbol.__t < 1 ? p1[1] - p0[1] : p0[1] - p1[1]; - symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2; - this._lastFrame = frame; - this._lastFramePercent = t; - symbol.ignore = false; - }; - return EffectPolyline2; - }(EffectLine$1) -); -const EffectPolyline$1 = EffectPolyline; -var LargeLinesPathShape = ( - /** @class */ - function() { - function LargeLinesPathShape2() { - this.polyline = false; - this.curveness = 0; - this.segs = []; - } - return LargeLinesPathShape2; - }() -); -var LargeLinesPath = ( - /** @class */ - function(_super) { - __extends(LargeLinesPath2, _super); - function LargeLinesPath2(opts) { - var _this = _super.call(this, opts) || this; - _this._off = 0; - _this.hoverDataIdx = -1; - return _this; - } - LargeLinesPath2.prototype.reset = function() { - this.notClear = false; - this._off = 0; - }; - LargeLinesPath2.prototype.getDefaultStyle = function() { - return { - stroke: "#000", - fill: null - }; - }; - LargeLinesPath2.prototype.getDefaultShape = function() { - return new LargeLinesPathShape(); - }; - LargeLinesPath2.prototype.buildPath = function(ctx, shape) { - var segs = shape.segs; - var curveness = shape.curveness; - var i; - if (shape.polyline) { - for (i = this._off; i < segs.length; ) { - var count = segs[i++]; - if (count > 0) { - ctx.moveTo(segs[i++], segs[i++]); - for (var k = 1; k < count; k++) { - ctx.lineTo(segs[i++], segs[i++]); - } - } - } - } else { - for (i = this._off; i < segs.length; ) { - var x0 = segs[i++]; - var y0 = segs[i++]; - var x1 = segs[i++]; - var y1 = segs[i++]; - ctx.moveTo(x0, y0); - if (curveness > 0) { - var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness; - var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness; - ctx.quadraticCurveTo(x2, y2, x1, y1); - } else { - ctx.lineTo(x1, y1); - } - } - } - if (this.incremental) { - this._off = i; - this.notClear = true; - } - }; - LargeLinesPath2.prototype.findDataIndex = function(x, y) { - var shape = this.shape; - var segs = shape.segs; - var curveness = shape.curveness; - var lineWidth = this.style.lineWidth; - if (shape.polyline) { - var dataIndex = 0; - for (var i = 0; i < segs.length; ) { - var count = segs[i++]; - if (count > 0) { - var x0 = segs[i++]; - var y0 = segs[i++]; - for (var k = 1; k < count; k++) { - var x1 = segs[i++]; - var y1 = segs[i++]; - if (containStroke(x0, y0, x1, y1, lineWidth, x, y)) { - return dataIndex; - } - } - } - dataIndex++; - } - } else { - var dataIndex = 0; - for (var i = 0; i < segs.length; ) { - var x0 = segs[i++]; - var y0 = segs[i++]; - var x1 = segs[i++]; - var y1 = segs[i++]; - if (curveness > 0) { - var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness; - var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness; - if (containStroke$1(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) { - return dataIndex; - } - } else { - if (containStroke(x0, y0, x1, y1, lineWidth, x, y)) { - return dataIndex; - } - } - dataIndex++; - } - } - return -1; - }; - LargeLinesPath2.prototype.contain = function(x, y) { - var localPos = this.transformCoordToLocal(x, y); - var rect = this.getBoundingRect(); - x = localPos[0]; - y = localPos[1]; - if (rect.contain(x, y)) { - var dataIdx = this.hoverDataIdx = this.findDataIndex(x, y); - return dataIdx >= 0; - } - this.hoverDataIdx = -1; - return false; - }; - LargeLinesPath2.prototype.getBoundingRect = function() { - var rect = this._rect; - if (!rect) { - var shape = this.shape; - var points = shape.segs; - var minX = Infinity; - var minY = Infinity; - var maxX = -Infinity; - var maxY = -Infinity; - for (var i = 0; i < points.length; ) { - var x = points[i++]; - var y = points[i++]; - minX = Math.min(x, minX); - maxX = Math.max(x, maxX); - minY = Math.min(y, minY); - maxY = Math.max(y, maxY); - } - rect = this._rect = new BoundingRect(minX, minY, maxX, maxY); - } - return rect; - }; - return LargeLinesPath2; - }(Path) -); -var LargeLineDraw = ( - /** @class */ - function() { - function LargeLineDraw2() { - this.group = new Group$1(); - } - LargeLineDraw2.prototype.updateData = function(data) { - this._clear(); - var lineEl = this._create(); - lineEl.setShape({ - segs: data.getLayout("linesPoints") - }); - this._setCommon(lineEl, data); - }; - LargeLineDraw2.prototype.incrementalPrepareUpdate = function(data) { - this.group.removeAll(); - this._clear(); - }; - LargeLineDraw2.prototype.incrementalUpdate = function(taskParams, data) { - var lastAdded = this._newAdded[0]; - var linePoints = data.getLayout("linesPoints"); - var oldSegs = lastAdded && lastAdded.shape.segs; - if (oldSegs && oldSegs.length < 2e4) { - var oldLen = oldSegs.length; - var newSegs = new Float32Array(oldLen + linePoints.length); - newSegs.set(oldSegs); - newSegs.set(linePoints, oldLen); - lastAdded.setShape({ - segs: newSegs - }); - } else { - this._newAdded = []; - var lineEl = this._create(); - lineEl.incremental = true; - lineEl.setShape({ - segs: linePoints - }); - this._setCommon(lineEl, data); - lineEl.__startIndex = taskParams.start; - } - }; - LargeLineDraw2.prototype.remove = function() { - this._clear(); - }; - LargeLineDraw2.prototype.eachRendered = function(cb) { - this._newAdded[0] && cb(this._newAdded[0]); - }; - LargeLineDraw2.prototype._create = function() { - var lineEl = new LargeLinesPath({ - cursor: "default", - ignoreCoarsePointer: true - }); - this._newAdded.push(lineEl); - this.group.add(lineEl); - return lineEl; - }; - LargeLineDraw2.prototype._setCommon = function(lineEl, data, isIncremental) { - var hostModel = data.hostModel; - lineEl.setShape({ - polyline: hostModel.get("polyline"), - curveness: hostModel.get(["lineStyle", "curveness"]) - }); - lineEl.useStyle(hostModel.getModel("lineStyle").getLineStyle()); - lineEl.style.strokeNoScale = true; - var style = data.getVisual("style"); - if (style && style.stroke) { - lineEl.setStyle("stroke", style.stroke); - } - lineEl.setStyle("fill", null); - var ecData = getECData(lineEl); - ecData.seriesIndex = hostModel.seriesIndex; - lineEl.on("mousemove", function(e) { - ecData.dataIndex = null; - var dataIndex = lineEl.hoverDataIdx; - if (dataIndex > 0) { - ecData.dataIndex = dataIndex + lineEl.__startIndex; - } - }); - }; - LargeLineDraw2.prototype._clear = function() { - this._newAdded = []; - this.group.removeAll(); - }; - return LargeLineDraw2; - }() -); -const LargeLineDraw$1 = LargeLineDraw; -var linesLayout = { - seriesType: "lines", - plan: createRenderPlanner(), - reset: function(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - if (!coordSys) { - return; - } - var isPolyline = seriesModel.get("polyline"); - var isLarge = seriesModel.pipelineContext.large; - return { - progress: function(params, lineData) { - var lineCoords = []; - if (isLarge) { - var points = void 0; - var segCount = params.end - params.start; - if (isPolyline) { - var totalCoordsCount = 0; - for (var i = params.start; i < params.end; i++) { - totalCoordsCount += seriesModel.getLineCoordsCount(i); - } - points = new Float32Array(segCount + totalCoordsCount * 2); - } else { - points = new Float32Array(segCount * 4); - } - var offset = 0; - var pt = []; - for (var i = params.start; i < params.end; i++) { - var len2 = seriesModel.getLineCoords(i, lineCoords); - if (isPolyline) { - points[offset++] = len2; - } - for (var k = 0; k < len2; k++) { - pt = coordSys.dataToPoint(lineCoords[k], false, pt); - points[offset++] = pt[0]; - points[offset++] = pt[1]; - } - } - lineData.setLayout("linesPoints", points); - } else { - for (var i = params.start; i < params.end; i++) { - var itemModel = lineData.getItemModel(i); - var len2 = seriesModel.getLineCoords(i, lineCoords); - var pts = []; - if (isPolyline) { - for (var j = 0; j < len2; j++) { - pts.push(coordSys.dataToPoint(lineCoords[j])); - } - } else { - pts[0] = coordSys.dataToPoint(lineCoords[0]); - pts[1] = coordSys.dataToPoint(lineCoords[1]); - var curveness = itemModel.get(["lineStyle", "curveness"]); - if (+curveness) { - pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness]; - } - } - lineData.setItemLayout(i, pts); - } - } - } - }; - } -}; -const linesLayout$1 = linesLayout; -var LinesView = ( - /** @class */ - function(_super) { - __extends(LinesView2, _super); - function LinesView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = LinesView2.type; - return _this; - } - LinesView2.prototype.render = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var lineDraw = this._updateLineDraw(data, seriesModel); - var zlevel = seriesModel.get("zlevel"); - var trailLength = seriesModel.get(["effect", "trailLength"]); - var zr = api.getZr(); - var isSvg = zr.painter.getType() === "svg"; - if (!isSvg) { - zr.painter.getLayer(zlevel).clear(true); - } - if (this._lastZlevel != null && !isSvg) { - zr.configLayer(this._lastZlevel, { - motionBlur: false - }); - } - if (this._showEffect(seriesModel) && trailLength > 0) { - if (!isSvg) { - zr.configLayer(zlevel, { - motionBlur: true, - lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0) - }); - } - } - lineDraw.updateData(data); - var clipPath = seriesModel.get("clip", true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel); - if (clipPath) { - this.group.setClipPath(clipPath); - } else { - this.group.removeClipPath(); - } - this._lastZlevel = zlevel; - this._finished = true; - }; - LinesView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var lineDraw = this._updateLineDraw(data, seriesModel); - lineDraw.incrementalPrepareUpdate(data); - this._clearLayer(api); - this._finished = false; - }; - LinesView2.prototype.incrementalRender = function(taskParams, seriesModel, ecModel) { - this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData()); - this._finished = taskParams.end === seriesModel.getData().count(); - }; - LinesView2.prototype.eachRendered = function(cb) { - this._lineDraw && this._lineDraw.eachRendered(cb); - }; - LinesView2.prototype.updateTransform = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var pipelineContext = seriesModel.pipelineContext; - if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) { - return { - update: true - }; - } else { - var res = linesLayout$1.reset(seriesModel, ecModel, api); - if (res.progress) { - res.progress({ - start: 0, - end: data.count(), - count: data.count() - }, data); - } - this._lineDraw.updateLayout(); - this._clearLayer(api); - } - }; - LinesView2.prototype._updateLineDraw = function(data, seriesModel) { - var lineDraw = this._lineDraw; - var hasEffect = this._showEffect(seriesModel); - var isPolyline = !!seriesModel.get("polyline"); - var pipelineContext = seriesModel.pipelineContext; - var isLargeDraw = pipelineContext.large; - if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) { - if (lineDraw) { - lineDraw.remove(); - } - lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw$1() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline$1 : Polyline$1 : hasEffect ? EffectLine$1 : Line$1); - this._hasEffet = hasEffect; - this._isPolyline = isPolyline; - this._isLargeDraw = isLargeDraw; - } - this.group.add(lineDraw.group); - return lineDraw; - }; - LinesView2.prototype._showEffect = function(seriesModel) { - return !!seriesModel.get(["effect", "show"]); - }; - LinesView2.prototype._clearLayer = function(api) { - var zr = api.getZr(); - var isSvg = zr.painter.getType() === "svg"; - if (!isSvg && this._lastZlevel != null) { - zr.painter.getLayer(this._lastZlevel).clear(true); - } - }; - LinesView2.prototype.remove = function(ecModel, api) { - this._lineDraw && this._lineDraw.remove(); - this._lineDraw = null; - this._clearLayer(api); - }; - LinesView2.prototype.dispose = function(ecModel, api) { - this.remove(ecModel, api); - }; - LinesView2.type = "lines"; - return LinesView2; - }(ChartView) -); -const LinesView$1 = LinesView; -var Uint32Arr = typeof Uint32Array === "undefined" ? Array : Uint32Array; -var Float64Arr = typeof Float64Array === "undefined" ? Array : Float64Array; -function compatEc2(seriesOpt) { - var data = seriesOpt.data; - if (data && data[0] && data[0][0] && data[0][0].coord) { - seriesOpt.data = map(data, function(itemOpt) { - var coords = [itemOpt[0].coord, itemOpt[1].coord]; - var target = { - coords - }; - if (itemOpt[0].name) { - target.fromName = itemOpt[0].name; - } - if (itemOpt[1].name) { - target.toName = itemOpt[1].name; - } - return mergeAll([target, itemOpt[0], itemOpt[1]]); - }); - } -} -var LinesSeriesModel = ( - /** @class */ - function(_super) { - __extends(LinesSeriesModel2, _super); - function LinesSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = LinesSeriesModel2.type; - _this.visualStyleAccessPath = "lineStyle"; - _this.visualDrawType = "stroke"; - return _this; - } - LinesSeriesModel2.prototype.init = function(option) { - option.data = option.data || []; - compatEc2(option); - var result = this._processFlatCoordsArray(option.data); - this._flatCoords = result.flatCoords; - this._flatCoordsOffset = result.flatCoordsOffset; - if (result.flatCoords) { - option.data = new Float32Array(result.count); - } - _super.prototype.init.apply(this, arguments); - }; - LinesSeriesModel2.prototype.mergeOption = function(option) { - compatEc2(option); - if (option.data) { - var result = this._processFlatCoordsArray(option.data); - this._flatCoords = result.flatCoords; - this._flatCoordsOffset = result.flatCoordsOffset; - if (result.flatCoords) { - option.data = new Float32Array(result.count); - } - } - _super.prototype.mergeOption.apply(this, arguments); - }; - LinesSeriesModel2.prototype.appendData = function(params) { - var result = this._processFlatCoordsArray(params.data); - if (result.flatCoords) { - if (!this._flatCoords) { - this._flatCoords = result.flatCoords; - this._flatCoordsOffset = result.flatCoordsOffset; - } else { - this._flatCoords = concatArray(this._flatCoords, result.flatCoords); - this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset); - } - params.data = new Float32Array(result.count); - } - this.getRawData().appendData(params.data); - }; - LinesSeriesModel2.prototype._getCoordsFromItemModel = function(idx) { - var itemModel = this.getData().getItemModel(idx); - var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow("coords"); - return coords; - }; - LinesSeriesModel2.prototype.getLineCoordsCount = function(idx) { - if (this._flatCoordsOffset) { - return this._flatCoordsOffset[idx * 2 + 1]; - } else { - return this._getCoordsFromItemModel(idx).length; - } - }; - LinesSeriesModel2.prototype.getLineCoords = function(idx, out) { - if (this._flatCoordsOffset) { - var offset = this._flatCoordsOffset[idx * 2]; - var len2 = this._flatCoordsOffset[idx * 2 + 1]; - for (var i = 0; i < len2; i++) { - out[i] = out[i] || []; - out[i][0] = this._flatCoords[offset + i * 2]; - out[i][1] = this._flatCoords[offset + i * 2 + 1]; - } - return len2; - } else { - var coords = this._getCoordsFromItemModel(idx); - for (var i = 0; i < coords.length; i++) { - out[i] = out[i] || []; - out[i][0] = coords[i][0]; - out[i][1] = coords[i][1]; - } - return coords.length; - } - }; - LinesSeriesModel2.prototype._processFlatCoordsArray = function(data) { - var startOffset = 0; - if (this._flatCoords) { - startOffset = this._flatCoords.length; - } - if (isNumber(data[0])) { - var len2 = data.length; - var coordsOffsetAndLenStorage = new Uint32Arr(len2); - var coordsStorage = new Float64Arr(len2); - var coordsCursor = 0; - var offsetCursor = 0; - var dataCount = 0; - for (var i = 0; i < len2; ) { - dataCount++; - var count = data[i++]; - coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset; - coordsOffsetAndLenStorage[offsetCursor++] = count; - for (var k = 0; k < count; k++) { - var x = data[i++]; - var y = data[i++]; - coordsStorage[coordsCursor++] = x; - coordsStorage[coordsCursor++] = y; - } - } - return { - flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor), - flatCoords: coordsStorage, - count: dataCount - }; - } - return { - flatCoordsOffset: null, - flatCoords: null, - count: data.length - }; - }; - LinesSeriesModel2.prototype.getInitialData = function(option, ecModel) { - var lineData = new SeriesData(["value"], this); - lineData.hasItemOption = false; - lineData.initData(option.data, [], function(dataItem, dimName, dataIndex, dimIndex) { - if (dataItem instanceof Array) { - return NaN; - } else { - lineData.hasItemOption = true; - var value = dataItem.value; - if (value != null) { - return value instanceof Array ? value[dimIndex] : value; - } - } - }); - return lineData; - }; - LinesSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - var data = this.getData(); - var itemModel = data.getItemModel(dataIndex); - var name = itemModel.get("name"); - if (name) { - return name; - } - var fromName = itemModel.get("fromName"); - var toName = itemModel.get("toName"); - var nameArr = []; - fromName != null && nameArr.push(fromName); - toName != null && nameArr.push(toName); - return createTooltipMarkup("nameValue", { - name: nameArr.join(" > ") - }); - }; - LinesSeriesModel2.prototype.preventIncremental = function() { - return !!this.get(["effect", "show"]); - }; - LinesSeriesModel2.prototype.getProgressive = function() { - var progressive = this.option.progressive; - if (progressive == null) { - return this.option.large ? 1e4 : this.get("progressive"); - } - return progressive; - }; - LinesSeriesModel2.prototype.getProgressiveThreshold = function() { - var progressiveThreshold = this.option.progressiveThreshold; - if (progressiveThreshold == null) { - return this.option.large ? 2e4 : this.get("progressiveThreshold"); - } - return progressiveThreshold; - }; - LinesSeriesModel2.prototype.getZLevelKey = function() { - var effectModel = this.getModel("effect"); - var trailLength = effectModel.get("trailLength"); - return this.getData().count() > this.getProgressiveThreshold() ? this.id : effectModel.get("show") && trailLength > 0 ? trailLength + "" : ""; - }; - LinesSeriesModel2.type = "series.lines"; - LinesSeriesModel2.dependencies = ["grid", "polar", "geo", "calendar"]; - LinesSeriesModel2.defaultOption = { - coordinateSystem: "geo", - // zlevel: 0, - z: 2, - legendHoverLink: true, - // Cartesian coordinate system - xAxisIndex: 0, - yAxisIndex: 0, - symbol: ["none", "none"], - symbolSize: [10, 10], - // Geo coordinate system - geoIndex: 0, - effect: { - show: false, - period: 4, - constantSpeed: 0, - symbol: "circle", - symbolSize: 3, - loop: true, - trailLength: 0.2 - }, - large: false, - // Available when large is true - largeThreshold: 2e3, - polyline: false, - clip: true, - label: { - show: false, - position: "end" - // distance: 5, - // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调 - }, - lineStyle: { - opacity: 0.5 - } - }; - return LinesSeriesModel2; - }(SeriesModel) -); -const LinesSeriesModel$1 = LinesSeriesModel; -function normalize(a) { - if (!(a instanceof Array)) { - a = [a, a]; - } - return a; -} -var linesVisual = { - seriesType: "lines", - reset: function(seriesModel) { - var symbolType = normalize(seriesModel.get("symbol")); - var symbolSize = normalize(seriesModel.get("symbolSize")); - var data = seriesModel.getData(); - data.setVisual("fromSymbol", symbolType && symbolType[0]); - data.setVisual("toSymbol", symbolType && symbolType[1]); - data.setVisual("fromSymbolSize", symbolSize && symbolSize[0]); - data.setVisual("toSymbolSize", symbolSize && symbolSize[1]); - function dataEach(data2, idx) { - var itemModel = data2.getItemModel(idx); - var symbolType2 = normalize(itemModel.getShallow("symbol", true)); - var symbolSize2 = normalize(itemModel.getShallow("symbolSize", true)); - symbolType2[0] && data2.setItemVisual(idx, "fromSymbol", symbolType2[0]); - symbolType2[1] && data2.setItemVisual(idx, "toSymbol", symbolType2[1]); - symbolSize2[0] && data2.setItemVisual(idx, "fromSymbolSize", symbolSize2[0]); - symbolSize2[1] && data2.setItemVisual(idx, "toSymbolSize", symbolSize2[1]); - } - return { - dataEach: data.hasItemOption ? dataEach : null - }; - } -}; -const linesVisual$1 = linesVisual; -function install$5(registers) { - registers.registerChartView(LinesView$1); - registers.registerSeriesModel(LinesSeriesModel$1); - registers.registerLayout(linesLayout$1); - registers.registerVisual(linesVisual$1); -} -var GRADIENT_LEVELS = 256; -var HeatmapLayer = ( - /** @class */ - function() { - function HeatmapLayer2() { - this.blurSize = 30; - this.pointSize = 20; - this.maxOpacity = 1; - this.minOpacity = 0; - this._gradientPixels = { - inRange: null, - outOfRange: null - }; - var canvas = platformApi.createCanvas(); - this.canvas = canvas; - } - HeatmapLayer2.prototype.update = function(data, width, height, normalize2, colorFunc, isInRange) { - var brush = this._getBrush(); - var gradientInRange = this._getGradient(colorFunc, "inRange"); - var gradientOutOfRange = this._getGradient(colorFunc, "outOfRange"); - var r = this.pointSize + this.blurSize; - var canvas = this.canvas; - var ctx = canvas.getContext("2d"); - var len2 = data.length; - canvas.width = width; - canvas.height = height; - for (var i = 0; i < len2; ++i) { - var p = data[i]; - var x = p[0]; - var y = p[1]; - var value = p[2]; - var alpha = normalize2(value); - ctx.globalAlpha = alpha; - ctx.drawImage(brush, x - r, y - r); - } - if (!canvas.width || !canvas.height) { - return canvas; - } - var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); - var pixels = imageData.data; - var offset = 0; - var pixelLen = pixels.length; - var minOpacity = this.minOpacity; - var maxOpacity = this.maxOpacity; - var diffOpacity = maxOpacity - minOpacity; - while (offset < pixelLen) { - var alpha = pixels[offset + 3] / 256; - var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4; - if (alpha > 0) { - var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange; - alpha > 0 && (alpha = alpha * diffOpacity + minOpacity); - pixels[offset++] = gradient[gradientOffset]; - pixels[offset++] = gradient[gradientOffset + 1]; - pixels[offset++] = gradient[gradientOffset + 2]; - pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256; - } else { - offset += 4; - } - } - ctx.putImageData(imageData, 0, 0); - return canvas; - }; - HeatmapLayer2.prototype._getBrush = function() { - var brushCanvas = this._brushCanvas || (this._brushCanvas = platformApi.createCanvas()); - var r = this.pointSize + this.blurSize; - var d = r * 2; - brushCanvas.width = d; - brushCanvas.height = d; - var ctx = brushCanvas.getContext("2d"); - ctx.clearRect(0, 0, d, d); - ctx.shadowOffsetX = d; - ctx.shadowBlur = this.blurSize; - ctx.shadowColor = "#000"; - ctx.beginPath(); - ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true); - ctx.closePath(); - ctx.fill(); - return brushCanvas; - }; - HeatmapLayer2.prototype._getGradient = function(colorFunc, state) { - var gradientPixels = this._gradientPixels; - var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4)); - var color = [0, 0, 0, 0]; - var off = 0; - for (var i = 0; i < 256; i++) { - colorFunc[state](i / 255, true, color); - pixelsSingleState[off++] = color[0]; - pixelsSingleState[off++] = color[1]; - pixelsSingleState[off++] = color[2]; - pixelsSingleState[off++] = color[3]; - } - return pixelsSingleState; - }; - return HeatmapLayer2; - }() -); -const HeatmapLayer$1 = HeatmapLayer; -function getIsInPiecewiseRange(dataExtent, pieceList, selected) { - var dataSpan = dataExtent[1] - dataExtent[0]; - pieceList = map(pieceList, function(piece) { - return { - interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan] - }; - }); - var len2 = pieceList.length; - var lastIndex = 0; - return function(val) { - var i; - for (i = lastIndex; i < len2; i++) { - var interval = pieceList[i].interval; - if (interval[0] <= val && val <= interval[1]) { - lastIndex = i; - break; - } - } - if (i === len2) { - for (i = lastIndex - 1; i >= 0; i--) { - var interval = pieceList[i].interval; - if (interval[0] <= val && val <= interval[1]) { - lastIndex = i; - break; - } - } - } - return i >= 0 && i < len2 && selected[i]; - }; -} -function getIsInContinuousRange(dataExtent, range) { - var dataSpan = dataExtent[1] - dataExtent[0]; - range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan]; - return function(val) { - return val >= range[0] && val <= range[1]; - }; -} -function isGeoCoordSys(coordSys) { - var dimensions = coordSys.dimensions; - return dimensions[0] === "lng" && dimensions[1] === "lat"; -} -var HeatmapView = ( - /** @class */ - function(_super) { - __extends(HeatmapView2, _super); - function HeatmapView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = HeatmapView2.type; - return _this; - } - HeatmapView2.prototype.render = function(seriesModel, ecModel, api) { - var visualMapOfThisSeries; - ecModel.eachComponent("visualMap", function(visualMap) { - visualMap.eachTargetSeries(function(targetSeries) { - if (targetSeries === seriesModel) { - visualMapOfThisSeries = visualMap; - } - }); - }); - this._progressiveEls = null; - this.group.removeAll(); - var coordSys = seriesModel.coordinateSystem; - if (coordSys.type === "cartesian2d" || coordSys.type === "calendar") { - this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count()); - } else if (isGeoCoordSys(coordSys)) { - this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api); - } - }; - HeatmapView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) { - this.group.removeAll(); - }; - HeatmapView2.prototype.incrementalRender = function(params, seriesModel, ecModel, api) { - var coordSys = seriesModel.coordinateSystem; - if (coordSys) { - if (isGeoCoordSys(coordSys)) { - this.render(seriesModel, ecModel, api); - } else { - this._progressiveEls = []; - this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true); - } - } - }; - HeatmapView2.prototype.eachRendered = function(cb) { - traverseElements(this._progressiveEls || this.group, cb); - }; - HeatmapView2.prototype._renderOnCartesianAndCalendar = function(seriesModel, api, start, end, incremental) { - var coordSys = seriesModel.coordinateSystem; - var isCartesian2d = isCoordinateSystemType(coordSys, "cartesian2d"); - var width; - var height; - var xAxisExtent; - var yAxisExtent; - if (isCartesian2d) { - var xAxis = coordSys.getAxis("x"); - var yAxis = coordSys.getAxis("y"); - width = xAxis.getBandWidth() + 0.5; - height = yAxis.getBandWidth() + 0.5; - xAxisExtent = xAxis.scale.getExtent(); - yAxisExtent = yAxis.scale.getExtent(); - } - var group = this.group; - var data = seriesModel.getData(); - var emphasisStyle = seriesModel.getModel(["emphasis", "itemStyle"]).getItemStyle(); - var blurStyle = seriesModel.getModel(["blur", "itemStyle"]).getItemStyle(); - var selectStyle = seriesModel.getModel(["select", "itemStyle"]).getItemStyle(); - var borderRadius = seriesModel.get(["itemStyle", "borderRadius"]); - var labelStatesModels = getLabelStatesModels(seriesModel); - var emphasisModel = seriesModel.getModel("emphasis"); - var focus = emphasisModel.get("focus"); - var blurScope = emphasisModel.get("blurScope"); - var emphasisDisabled = emphasisModel.get("disabled"); - var dataDims = isCartesian2d ? [data.mapDimension("x"), data.mapDimension("y"), data.mapDimension("value")] : [data.mapDimension("time"), data.mapDimension("value")]; - for (var idx = start; idx < end; idx++) { - var rect = void 0; - var style = data.getItemVisual(idx, "style"); - if (isCartesian2d) { - var dataDimX = data.get(dataDims[0], idx); - var dataDimY = data.get(dataDims[1], idx); - if (isNaN(data.get(dataDims[2], idx)) || isNaN(dataDimX) || isNaN(dataDimY) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1] || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) { - continue; - } - var point = coordSys.dataToPoint([dataDimX, dataDimY]); - rect = new Rect$1({ - shape: { - x: point[0] - width / 2, - y: point[1] - height / 2, - width, - height - }, - style - }); - } else { - if (isNaN(data.get(dataDims[1], idx))) { - continue; - } - rect = new Rect$1({ - z2: 1, - shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape, - style - }); - } - if (data.hasItemOption) { - var itemModel = data.getItemModel(idx); - var emphasisModel_1 = itemModel.getModel("emphasis"); - emphasisStyle = emphasisModel_1.getModel("itemStyle").getItemStyle(); - blurStyle = itemModel.getModel(["blur", "itemStyle"]).getItemStyle(); - selectStyle = itemModel.getModel(["select", "itemStyle"]).getItemStyle(); - borderRadius = itemModel.get(["itemStyle", "borderRadius"]); - focus = emphasisModel_1.get("focus"); - blurScope = emphasisModel_1.get("blurScope"); - emphasisDisabled = emphasisModel_1.get("disabled"); - labelStatesModels = getLabelStatesModels(itemModel); - } - rect.shape.r = borderRadius; - var rawValue = seriesModel.getRawValue(idx); - var defaultText = "-"; - if (rawValue && rawValue[2] != null) { - defaultText = rawValue[2] + ""; - } - setLabelStyle(rect, labelStatesModels, { - labelFetcher: seriesModel, - labelDataIndex: idx, - defaultOpacity: style.opacity, - defaultText - }); - rect.ensureState("emphasis").style = emphasisStyle; - rect.ensureState("blur").style = blurStyle; - rect.ensureState("select").style = selectStyle; - toggleHoverEmphasis(rect, focus, blurScope, emphasisDisabled); - rect.incremental = incremental; - if (incremental) { - rect.states.emphasis.hoverLayer = true; - } - group.add(rect); - data.setItemGraphicEl(idx, rect); - if (this._progressiveEls) { - this._progressiveEls.push(rect); - } - } - }; - HeatmapView2.prototype._renderOnGeo = function(geo, seriesModel, visualMapModel, api) { - var inRangeVisuals = visualMapModel.targetVisuals.inRange; - var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange; - var data = seriesModel.getData(); - var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer$1(); - hmLayer.blurSize = seriesModel.get("blurSize"); - hmLayer.pointSize = seriesModel.get("pointSize"); - hmLayer.minOpacity = seriesModel.get("minOpacity"); - hmLayer.maxOpacity = seriesModel.get("maxOpacity"); - var rect = geo.getViewRect().clone(); - var roamTransform = geo.getRoamTransform(); - rect.applyTransform(roamTransform); - var x = Math.max(rect.x, 0); - var y = Math.max(rect.y, 0); - var x2 = Math.min(rect.width + rect.x, api.getWidth()); - var y2 = Math.min(rect.height + rect.y, api.getHeight()); - var width = x2 - x; - var height = y2 - y; - var dims = [data.mapDimension("lng"), data.mapDimension("lat"), data.mapDimension("value")]; - var points = data.mapArray(dims, function(lng, lat, value) { - var pt = geo.dataToPoint([lng, lat]); - pt[0] -= x; - pt[1] -= y; - pt.push(value); - return pt; - }); - var dataExtent = visualMapModel.getExtent(); - var isInRange = visualMapModel.type === "visualMap.continuous" ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected); - hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), { - inRange: inRangeVisuals.color.getColorMapper(), - outOfRange: outOfRangeVisuals.color.getColorMapper() - }, isInRange); - var img = new ZRImage({ - style: { - width, - height, - x, - y, - image: hmLayer.canvas - }, - silent: true - }); - this.group.add(img); - }; - HeatmapView2.type = "heatmap"; - return HeatmapView2; - }(ChartView) -); -const HeatmapView$1 = HeatmapView; -var HeatmapSeriesModel = ( - /** @class */ - function(_super) { - __extends(HeatmapSeriesModel2, _super); - function HeatmapSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = HeatmapSeriesModel2.type; - return _this; - } - HeatmapSeriesModel2.prototype.getInitialData = function(option, ecModel) { - return createSeriesData(null, this, { - generateCoord: "value" - }); - }; - HeatmapSeriesModel2.prototype.preventIncremental = function() { - var coordSysCreator = CoordinateSystem.get(this.get("coordinateSystem")); - if (coordSysCreator && coordSysCreator.dimensions) { - return coordSysCreator.dimensions[0] === "lng" && coordSysCreator.dimensions[1] === "lat"; - } - }; - HeatmapSeriesModel2.type = "series.heatmap"; - HeatmapSeriesModel2.dependencies = ["grid", "geo", "calendar"]; - HeatmapSeriesModel2.defaultOption = { - coordinateSystem: "cartesian2d", - // zlevel: 0, - z: 2, - // Cartesian coordinate system - // xAxisIndex: 0, - // yAxisIndex: 0, - // Geo coordinate system - geoIndex: 0, - blurSize: 30, - pointSize: 20, - maxOpacity: 1, - minOpacity: 0, - select: { - itemStyle: { - borderColor: "#212121" - } - } - }; - return HeatmapSeriesModel2; - }(SeriesModel) -); -const HeatmapSeriesModel$1 = HeatmapSeriesModel; -function install$4(registers) { - registers.registerChartView(HeatmapView$1); - registers.registerSeriesModel(HeatmapSeriesModel$1); -} -var BAR_BORDER_WIDTH_QUERY = ["itemStyle", "borderWidth"]; -var LAYOUT_ATTRS = [{ - xy: "x", - wh: "width", - index: 0, - posDesc: ["left", "right"] -}, { - xy: "y", - wh: "height", - index: 1, - posDesc: ["top", "bottom"] -}]; -var pathForLineWidth = new Circle(); -var PictorialBarView = ( - /** @class */ - function(_super) { - __extends(PictorialBarView2, _super); - function PictorialBarView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = PictorialBarView2.type; - return _this; - } - PictorialBarView2.prototype.render = function(seriesModel, ecModel, api) { - var group = this.group; - var data = seriesModel.getData(); - var oldData = this._data; - var cartesian = seriesModel.coordinateSystem; - var baseAxis = cartesian.getBaseAxis(); - var isHorizontal = baseAxis.isHorizontal(); - var coordSysRect = cartesian.master.getRect(); - var opt = { - ecSize: { - width: api.getWidth(), - height: api.getHeight() - }, - seriesModel, - coordSys: cartesian, - coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]], - isHorizontal, - valueDim: LAYOUT_ATTRS[+isHorizontal], - categoryDim: LAYOUT_ATTRS[1 - +isHorizontal] - }; - data.diff(oldData).add(function(dataIndex) { - if (!data.hasValue(dataIndex)) { - return; - } - var itemModel = getItemModel(data, dataIndex); - var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt); - var bar = createBar(data, opt, symbolMeta); - data.setItemGraphicEl(dataIndex, bar); - group.add(bar); - updateCommon(bar, opt, symbolMeta); - }).update(function(newIndex, oldIndex) { - var bar = oldData.getItemGraphicEl(oldIndex); - if (!data.hasValue(newIndex)) { - group.remove(bar); - return; - } - var itemModel = getItemModel(data, newIndex); - var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt); - var pictorialShapeStr = getShapeStr(data, symbolMeta); - if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) { - group.remove(bar); - data.setItemGraphicEl(newIndex, null); - bar = null; - } - if (bar) { - updateBar(bar, opt, symbolMeta); - } else { - bar = createBar(data, opt, symbolMeta, true); - } - data.setItemGraphicEl(newIndex, bar); - bar.__pictorialSymbolMeta = symbolMeta; - group.add(bar); - updateCommon(bar, opt, symbolMeta); - }).remove(function(dataIndex) { - var bar = oldData.getItemGraphicEl(dataIndex); - bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar); - }).execute(); - this._data = data; - return this.group; - }; - PictorialBarView2.prototype.remove = function(ecModel, api) { - var group = this.group; - var data = this._data; - if (ecModel.get("animation")) { - if (data) { - data.eachItemGraphicEl(function(bar) { - removeBar(data, getECData(bar).dataIndex, ecModel, bar); - }); - } - } else { - group.removeAll(); - } - }; - PictorialBarView2.type = "pictorialBar"; - return PictorialBarView2; - }(ChartView) -); -function getSymbolMeta(data, dataIndex, itemModel, opt) { - var layout2 = data.getItemLayout(dataIndex); - var symbolRepeat = itemModel.get("symbolRepeat"); - var symbolClip = itemModel.get("symbolClip"); - var symbolPosition = itemModel.get("symbolPosition") || "start"; - var symbolRotate = itemModel.get("symbolRotate"); - var rotation = (symbolRotate || 0) * Math.PI / 180 || 0; - var symbolPatternSize = itemModel.get("symbolPatternSize") || 2; - var isAnimationEnabled2 = itemModel.isAnimationEnabled(); - var symbolMeta = { - dataIndex, - layout: layout2, - itemModel, - symbolType: data.getItemVisual(dataIndex, "symbol") || "circle", - style: data.getItemVisual(dataIndex, "style"), - symbolClip, - symbolRepeat, - symbolRepeatDirection: itemModel.get("symbolRepeatDirection"), - symbolPatternSize, - rotation, - animationModel: isAnimationEnabled2 ? itemModel : null, - hoverScale: isAnimationEnabled2 && itemModel.get(["emphasis", "scale"]), - z2: itemModel.getShallow("z", true) || 0 - }; - prepareBarLength(itemModel, symbolRepeat, layout2, opt, symbolMeta); - prepareSymbolSize(data, dataIndex, layout2, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta); - prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta); - var symbolSize = symbolMeta.symbolSize; - var symbolOffset = normalizeSymbolOffset(itemModel.get("symbolOffset"), symbolSize); - prepareLayoutInfo(itemModel, symbolSize, layout2, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta); - return symbolMeta; -} -function prepareBarLength(itemModel, symbolRepeat, layout2, opt, outputSymbolMeta) { - var valueDim = opt.valueDim; - var symbolBoundingData = itemModel.get("symbolBoundingData"); - var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis()); - var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0)); - var pxSignIdx = 1 - +(layout2[valueDim.wh] <= 0); - var boundingLength; - if (isArray(symbolBoundingData)) { - var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx]; - symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse(); - boundingLength = symbolBoundingExtent[pxSignIdx]; - } else if (symbolBoundingData != null) { - boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx; - } else if (symbolRepeat) { - boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx; - } else { - boundingLength = layout2[valueDim.wh]; - } - outputSymbolMeta.boundingLength = boundingLength; - if (symbolRepeat) { - outputSymbolMeta.repeatCutLength = layout2[valueDim.wh]; - } - outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : -1; -} -function convertToCoordOnAxis(axis, value) { - return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value))); -} -function prepareSymbolSize(data, dataIndex, layout2, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) { - var valueDim = opt.valueDim; - var categoryDim = opt.categoryDim; - var categorySize = Math.abs(layout2[categoryDim.wh]); - var symbolSize = data.getItemVisual(dataIndex, "symbolSize"); - var parsedSymbolSize; - if (isArray(symbolSize)) { - parsedSymbolSize = symbolSize.slice(); - } else { - if (symbolSize == null) { - parsedSymbolSize = ["100%", "100%"]; - } else { - parsedSymbolSize = [symbolSize, symbolSize]; - } - } - parsedSymbolSize[categoryDim.index] = parsePercent$1(parsedSymbolSize[categoryDim.index], categorySize); - parsedSymbolSize[valueDim.index] = parsePercent$1(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength)); - outputSymbolMeta.symbolSize = parsedSymbolSize; - var symbolScale = outputSymbolMeta.symbolScale = [parsedSymbolSize[0] / symbolPatternSize, parsedSymbolSize[1] / symbolPatternSize]; - symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign; -} -function prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) { - var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0; - if (valueLineWidth) { - pathForLineWidth.attr({ - scaleX: symbolScale[0], - scaleY: symbolScale[1], - rotation - }); - pathForLineWidth.updateTransform(); - valueLineWidth /= pathForLineWidth.getLineScale(); - valueLineWidth *= symbolScale[opt.valueDim.index]; - } - outputSymbolMeta.valueLineWidth = valueLineWidth || 0; -} -function prepareLayoutInfo(itemModel, symbolSize, layout2, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) { - var categoryDim = opt.categoryDim; - var valueDim = opt.valueDim; - var pxSign = outputSymbolMeta.pxSign; - var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0); - var pathLen = unitLength; - if (symbolRepeat) { - var absBoundingLength = Math.abs(boundingLength); - var symbolMargin = retrieve(itemModel.get("symbolMargin"), "15%") + ""; - var hasEndGap = false; - if (symbolMargin.lastIndexOf("!") === symbolMargin.length - 1) { - hasEndGap = true; - symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1); - } - var symbolMarginNumeric = parsePercent$1(symbolMargin, symbolSize[valueDim.index]); - var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0); - var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2; - var repeatSpecified = isNumeric(symbolRepeat); - var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin); - var mDiff = absBoundingLength - repeatTimes * unitLength; - symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : Math.max(repeatTimes - 1, 1)); - uLenWithMargin = unitLength + symbolMarginNumeric * 2; - endFix = hasEndGap ? 0 : symbolMarginNumeric * 2; - if (!repeatSpecified && symbolRepeat !== "fixed") { - repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0; - } - pathLen = repeatTimes * uLenWithMargin - endFix; - outputSymbolMeta.repeatTimes = repeatTimes; - outputSymbolMeta.symbolMargin = symbolMarginNumeric; - } - var sizeFix = pxSign * (pathLen / 2); - var pathPosition = outputSymbolMeta.pathPosition = []; - pathPosition[categoryDim.index] = layout2[categoryDim.wh] / 2; - pathPosition[valueDim.index] = symbolPosition === "start" ? sizeFix : symbolPosition === "end" ? boundingLength - sizeFix : boundingLength / 2; - if (symbolOffset) { - pathPosition[0] += symbolOffset[0]; - pathPosition[1] += symbolOffset[1]; - } - var bundlePosition = outputSymbolMeta.bundlePosition = []; - bundlePosition[categoryDim.index] = layout2[categoryDim.xy]; - bundlePosition[valueDim.index] = layout2[valueDim.xy]; - var barRectShape = outputSymbolMeta.barRectShape = extend({}, layout2); - barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout2[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix)); - barRectShape[categoryDim.wh] = layout2[categoryDim.wh]; - var clipShape = outputSymbolMeta.clipShape = {}; - clipShape[categoryDim.xy] = -layout2[categoryDim.xy]; - clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh]; - clipShape[valueDim.xy] = 0; - clipShape[valueDim.wh] = layout2[valueDim.wh]; -} -function createPath(symbolMeta) { - var symbolPatternSize = symbolMeta.symbolPatternSize; - var path = createSymbol( - // Consider texture img, make a big size. - symbolMeta.symbolType, - -symbolPatternSize / 2, - -symbolPatternSize / 2, - symbolPatternSize, - symbolPatternSize - ); - path.attr({ - culling: true - }); - path.type !== "image" && path.setStyle({ - strokeNoScale: true - }); - return path; -} -function createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) { - var bundle = bar.__pictorialBundle; - var symbolSize = symbolMeta.symbolSize; - var valueLineWidth = symbolMeta.valueLineWidth; - var pathPosition = symbolMeta.pathPosition; - var valueDim = opt.valueDim; - var repeatTimes = symbolMeta.repeatTimes || 0; - var index = 0; - var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2; - eachPath(bar, function(path2) { - path2.__pictorialAnimationIndex = index; - path2.__pictorialRepeatTimes = repeatTimes; - if (index < repeatTimes) { - updateAttr(path2, null, makeTarget(index), symbolMeta, isUpdate); - } else { - updateAttr(path2, null, { - scaleX: 0, - scaleY: 0 - }, symbolMeta, isUpdate, function() { - bundle.remove(path2); - }); - } - index++; - }); - for (; index < repeatTimes; index++) { - var path = createPath(symbolMeta); - path.__pictorialAnimationIndex = index; - path.__pictorialRepeatTimes = repeatTimes; - bundle.add(path); - var target = makeTarget(index); - updateAttr(path, { - x: target.x, - y: target.y, - scaleX: 0, - scaleY: 0 - }, { - scaleX: target.scaleX, - scaleY: target.scaleY, - rotation: target.rotation - }, symbolMeta, isUpdate); - } - function makeTarget(index2) { - var position2 = pathPosition.slice(); - var pxSign = symbolMeta.pxSign; - var i = index2; - if (symbolMeta.symbolRepeatDirection === "start" ? pxSign > 0 : pxSign < 0) { - i = repeatTimes - 1 - index2; - } - position2[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index]; - return { - x: position2[0], - y: position2[1], - scaleX: symbolMeta.symbolScale[0], - scaleY: symbolMeta.symbolScale[1], - rotation: symbolMeta.rotation - }; - } -} -function createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) { - var bundle = bar.__pictorialBundle; - var mainPath = bar.__pictorialMainPath; - if (!mainPath) { - mainPath = bar.__pictorialMainPath = createPath(symbolMeta); - bundle.add(mainPath); - updateAttr(mainPath, { - x: symbolMeta.pathPosition[0], - y: symbolMeta.pathPosition[1], - scaleX: 0, - scaleY: 0, - rotation: symbolMeta.rotation - }, { - scaleX: symbolMeta.symbolScale[0], - scaleY: symbolMeta.symbolScale[1] - }, symbolMeta, isUpdate); - } else { - updateAttr(mainPath, null, { - x: symbolMeta.pathPosition[0], - y: symbolMeta.pathPosition[1], - scaleX: symbolMeta.symbolScale[0], - scaleY: symbolMeta.symbolScale[1], - rotation: symbolMeta.rotation - }, symbolMeta, isUpdate); - } -} -function createOrUpdateBarRect(bar, symbolMeta, isUpdate) { - var rectShape = extend({}, symbolMeta.barRectShape); - var barRect = bar.__pictorialBarRect; - if (!barRect) { - barRect = bar.__pictorialBarRect = new Rect$1({ - z2: 2, - shape: rectShape, - silent: true, - style: { - stroke: "transparent", - fill: "transparent", - lineWidth: 0 - } - }); - barRect.disableMorphing = true; - bar.add(barRect); - } else { - updateAttr(barRect, null, { - shape: rectShape - }, symbolMeta, isUpdate); - } -} -function createOrUpdateClip(bar, opt, symbolMeta, isUpdate) { - if (symbolMeta.symbolClip) { - var clipPath = bar.__pictorialClipPath; - var clipShape = extend({}, symbolMeta.clipShape); - var valueDim = opt.valueDim; - var animationModel = symbolMeta.animationModel; - var dataIndex = symbolMeta.dataIndex; - if (clipPath) { - updateProps(clipPath, { - shape: clipShape - }, animationModel, dataIndex); - } else { - clipShape[valueDim.wh] = 0; - clipPath = new Rect$1({ - shape: clipShape - }); - bar.__pictorialBundle.setClipPath(clipPath); - bar.__pictorialClipPath = clipPath; - var target = {}; - target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh]; - graphic[isUpdate ? "updateProps" : "initProps"](clipPath, { - shape: target - }, animationModel, dataIndex); - } - } -} -function getItemModel(data, dataIndex) { - var itemModel = data.getItemModel(dataIndex); - itemModel.getAnimationDelayParams = getAnimationDelayParams; - itemModel.isAnimationEnabled = isAnimationEnabled; - return itemModel; -} -function getAnimationDelayParams(path) { - return { - index: path.__pictorialAnimationIndex, - count: path.__pictorialRepeatTimes - }; -} -function isAnimationEnabled() { - return this.parentModel.isAnimationEnabled() && !!this.getShallow("animation"); -} -function createBar(data, opt, symbolMeta, isUpdate) { - var bar = new Group$1(); - var bundle = new Group$1(); - bar.add(bundle); - bar.__pictorialBundle = bundle; - bundle.x = symbolMeta.bundlePosition[0]; - bundle.y = symbolMeta.bundlePosition[1]; - if (symbolMeta.symbolRepeat) { - createOrUpdateRepeatSymbols(bar, opt, symbolMeta); - } else { - createOrUpdateSingleSymbol(bar, opt, symbolMeta); - } - createOrUpdateBarRect(bar, symbolMeta, isUpdate); - createOrUpdateClip(bar, opt, symbolMeta, isUpdate); - bar.__pictorialShapeStr = getShapeStr(data, symbolMeta); - bar.__pictorialSymbolMeta = symbolMeta; - return bar; -} -function updateBar(bar, opt, symbolMeta) { - var animationModel = symbolMeta.animationModel; - var dataIndex = symbolMeta.dataIndex; - var bundle = bar.__pictorialBundle; - updateProps(bundle, { - x: symbolMeta.bundlePosition[0], - y: symbolMeta.bundlePosition[1] - }, animationModel, dataIndex); - if (symbolMeta.symbolRepeat) { - createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true); - } else { - createOrUpdateSingleSymbol(bar, opt, symbolMeta, true); - } - createOrUpdateBarRect(bar, symbolMeta, true); - createOrUpdateClip(bar, opt, symbolMeta, true); -} -function removeBar(data, dataIndex, animationModel, bar) { - var labelRect = bar.__pictorialBarRect; - labelRect && labelRect.removeTextContent(); - var paths = []; - eachPath(bar, function(path) { - paths.push(path); - }); - bar.__pictorialMainPath && paths.push(bar.__pictorialMainPath); - bar.__pictorialClipPath && (animationModel = null); - each$2(paths, function(path) { - removeElement(path, { - scaleX: 0, - scaleY: 0 - }, animationModel, dataIndex, function() { - bar.parent && bar.parent.remove(bar); - }); - }); - data.setItemGraphicEl(dataIndex, null); -} -function getShapeStr(data, symbolMeta) { - return [data.getItemVisual(symbolMeta.dataIndex, "symbol") || "none", !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(":"); -} -function eachPath(bar, cb, context) { - each$2(bar.__pictorialBundle.children(), function(el) { - el !== bar.__pictorialBarRect && cb.call(context, el); - }); -} -function updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) { - immediateAttrs && el.attr(immediateAttrs); - if (symbolMeta.symbolClip && !isUpdate) { - animationAttrs && el.attr(animationAttrs); - } else { - animationAttrs && graphic[isUpdate ? "updateProps" : "initProps"](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb); - } -} -function updateCommon(bar, opt, symbolMeta) { - var dataIndex = symbolMeta.dataIndex; - var itemModel = symbolMeta.itemModel; - var emphasisModel = itemModel.getModel("emphasis"); - var emphasisStyle = emphasisModel.getModel("itemStyle").getItemStyle(); - var blurStyle = itemModel.getModel(["blur", "itemStyle"]).getItemStyle(); - var selectStyle = itemModel.getModel(["select", "itemStyle"]).getItemStyle(); - var cursorStyle = itemModel.getShallow("cursor"); - var focus = emphasisModel.get("focus"); - var blurScope = emphasisModel.get("blurScope"); - var hoverScale = emphasisModel.get("scale"); - eachPath(bar, function(path) { - if (path instanceof ZRImage) { - var pathStyle = path.style; - path.useStyle(extend({ - // TODO other properties like dx, dy ? - image: pathStyle.image, - x: pathStyle.x, - y: pathStyle.y, - width: pathStyle.width, - height: pathStyle.height - }, symbolMeta.style)); - } else { - path.useStyle(symbolMeta.style); - } - var emphasisState = path.ensureState("emphasis"); - emphasisState.style = emphasisStyle; - if (hoverScale) { - emphasisState.scaleX = path.scaleX * 1.1; - emphasisState.scaleY = path.scaleY * 1.1; - } - path.ensureState("blur").style = blurStyle; - path.ensureState("select").style = selectStyle; - cursorStyle && (path.cursor = cursorStyle); - path.z2 = symbolMeta.z2; - }); - var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)]; - var barRect = bar.__pictorialBarRect; - setLabelStyle(barRect, getLabelStatesModels(itemModel), { - labelFetcher: opt.seriesModel, - labelDataIndex: dataIndex, - defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex), - inheritColor: symbolMeta.style.fill, - defaultOpacity: symbolMeta.style.opacity, - defaultOutsidePosition: barPositionOutside - }); - toggleHoverEmphasis(bar, focus, blurScope, emphasisModel.get("disabled")); -} -function toIntTimes(times) { - var roundedTimes = Math.round(times); - return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times); -} -const PictorialBarView$1 = PictorialBarView; -var PictorialBarSeriesModel = ( - /** @class */ - function(_super) { - __extends(PictorialBarSeriesModel2, _super); - function PictorialBarSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = PictorialBarSeriesModel2.type; - _this.hasSymbolVisual = true; - _this.defaultSymbol = "roundRect"; - return _this; - } - PictorialBarSeriesModel2.prototype.getInitialData = function(option) { - option.stack = null; - return _super.prototype.getInitialData.apply(this, arguments); - }; - PictorialBarSeriesModel2.type = "series.pictorialBar"; - PictorialBarSeriesModel2.dependencies = ["grid"]; - PictorialBarSeriesModel2.defaultOption = inheritDefaultOption(BaseBarSeriesModel$1.defaultOption, { - symbol: "circle", - symbolSize: null, - symbolRotate: null, - symbolPosition: null, - symbolOffset: null, - symbolMargin: null, - symbolRepeat: false, - symbolRepeatDirection: "end", - symbolClip: false, - symbolBoundingData: null, - symbolPatternSize: 400, - barGap: "-100%", - // z can be set in data item, which is z2 actually. - // Disable progressive - progressive: 0, - emphasis: { - // By default pictorialBar do not hover scale. Hover scale is not suitable - // for the case that both has foreground and background. - scale: false - }, - select: { - itemStyle: { - borderColor: "#212121" - } - } - }); - return PictorialBarSeriesModel2; - }(BaseBarSeriesModel$1) -); -const PictorialBarSeriesModel$1 = PictorialBarSeriesModel; -function install$3(registers) { - registers.registerChartView(PictorialBarView$1); - registers.registerSeriesModel(PictorialBarSeriesModel$1); - registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, curry(layout, "pictorialBar")); - registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, createProgressiveLayout("pictorialBar")); -} -var ThemeRiverView = ( - /** @class */ - function(_super) { - __extends(ThemeRiverView2, _super); - function ThemeRiverView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ThemeRiverView2.type; - _this._layers = []; - return _this; - } - ThemeRiverView2.prototype.render = function(seriesModel, ecModel, api) { - var data = seriesModel.getData(); - var self = this; - var group = this.group; - var layersSeries = seriesModel.getLayerSeries(); - var layoutInfo = data.getLayout("layoutInfo"); - var rect = layoutInfo.rect; - var boundaryGap = layoutInfo.boundaryGap; - group.x = 0; - group.y = rect.y + boundaryGap[0]; - function keyGetter(item) { - return item.name; - } - var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter); - var newLayersGroups = []; - dataDiffer.add(bind(process, this, "add")).update(bind(process, this, "update")).remove(bind(process, this, "remove")).execute(); - function process(status, idx, oldIdx) { - var oldLayersGroups = self._layers; - if (status === "remove") { - group.remove(oldLayersGroups[idx]); - return; - } - var points0 = []; - var points1 = []; - var style; - var indices = layersSeries[idx].indices; - var j = 0; - for (; j < indices.length; j++) { - var layout2 = data.getItemLayout(indices[j]); - var x = layout2.x; - var y0 = layout2.y0; - var y = layout2.y; - points0.push(x, y0); - points1.push(x, y0 + y); - style = data.getItemVisual(indices[j], "style"); - } - var polygon; - var textLayout = data.getItemLayout(indices[0]); - var labelModel = seriesModel.getModel("label"); - var margin = labelModel.get("margin"); - var emphasisModel = seriesModel.getModel("emphasis"); - if (status === "add") { - var layerGroup = newLayersGroups[idx] = new Group$1(); - polygon = new ECPolygon({ - shape: { - points: points0, - stackedOnPoints: points1, - smooth: 0.4, - stackedOnSmooth: 0.4, - smoothConstraint: false - }, - z2: 0 - }); - layerGroup.add(polygon); - group.add(layerGroup); - if (seriesModel.isAnimationEnabled()) { - polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function() { - polygon.removeClipPath(); - })); - } - } else { - var layerGroup = oldLayersGroups[oldIdx]; - polygon = layerGroup.childAt(0); - group.add(layerGroup); - newLayersGroups[idx] = layerGroup; - updateProps(polygon, { - shape: { - points: points0, - stackedOnPoints: points1 - } - }, seriesModel); - saveOldStyle(polygon); - } - setLabelStyle(polygon, getLabelStatesModels(seriesModel), { - labelDataIndex: indices[j - 1], - defaultText: data.getName(indices[j - 1]), - inheritColor: style.fill - }, { - normal: { - verticalAlign: "middle" - // align: 'right' - } - }); - polygon.setTextConfig({ - position: null, - local: true - }); - var labelEl = polygon.getTextContent(); - if (labelEl) { - labelEl.x = textLayout.x - margin; - labelEl.y = textLayout.y0 + textLayout.y / 2; - } - polygon.useStyle(style); - data.setItemGraphicEl(idx, polygon); - setStatesStylesFromModel(polygon, seriesModel); - toggleHoverEmphasis(polygon, emphasisModel.get("focus"), emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - } - this._layersSeries = layersSeries; - this._layers = newLayersGroups; - }; - ThemeRiverView2.type = "themeRiver"; - return ThemeRiverView2; - }(ChartView) -); -function createGridClipShape(rect, seriesModel, cb) { - var rectEl = new Rect$1({ - shape: { - x: rect.x - 10, - y: rect.y - 10, - width: 0, - height: rect.height + 20 - } - }); - initProps(rectEl, { - shape: { - x: rect.x - 50, - width: rect.width + 100, - height: rect.height + 20 - } - }, seriesModel, cb); - return rectEl; -} -const ThemeRiverView$1 = ThemeRiverView; -var DATA_NAME_INDEX = 2; -var ThemeRiverSeriesModel = ( - /** @class */ - function(_super) { - __extends(ThemeRiverSeriesModel2, _super); - function ThemeRiverSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ThemeRiverSeriesModel2.type; - return _this; - } - ThemeRiverSeriesModel2.prototype.init = function(option) { - _super.prototype.init.apply(this, arguments); - this.legendVisualProvider = new LegendVisualProvider$1(bind(this.getData, this), bind(this.getRawData, this)); - }; - ThemeRiverSeriesModel2.prototype.fixData = function(data) { - var rawDataLength = data.length; - var timeValueKeys = {}; - var groupResult = groupData(data, function(item) { - if (!timeValueKeys.hasOwnProperty(item[0] + "")) { - timeValueKeys[item[0] + ""] = -1; - } - return item[2]; - }); - var layerData = []; - groupResult.buckets.each(function(items, key) { - layerData.push({ - name: key, - dataList: items - }); - }); - var layerNum = layerData.length; - for (var k = 0; k < layerNum; ++k) { - var name_1 = layerData[k].name; - for (var j = 0; j < layerData[k].dataList.length; ++j) { - var timeValue = layerData[k].dataList[j][0] + ""; - timeValueKeys[timeValue] = k; - } - for (var timeValue in timeValueKeys) { - if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) { - timeValueKeys[timeValue] = k; - data[rawDataLength] = [timeValue, 0, name_1]; - rawDataLength++; - } - } - } - return data; - }; - ThemeRiverSeriesModel2.prototype.getInitialData = function(option, ecModel) { - var singleAxisModel = this.getReferringComponents("singleAxis", SINGLE_REFERRING).models[0]; - var axisType = singleAxisModel.get("type"); - var filterData = filter(option.data, function(dataItem) { - return dataItem[2] !== void 0; - }); - var data = this.fixData(filterData || []); - var nameList = []; - var nameMap = this.nameMap = createHashMap(); - var count = 0; - for (var i = 0; i < data.length; ++i) { - nameList.push(data[i][DATA_NAME_INDEX]); - if (!nameMap.get(data[i][DATA_NAME_INDEX])) { - nameMap.set(data[i][DATA_NAME_INDEX], count); - count++; - } - } - var dimensions = prepareSeriesDataSchema(data, { - coordDimensions: ["single"], - dimensionsDefine: [{ - name: "time", - type: getDimensionTypeByAxis(axisType) - }, { - name: "value", - type: "float" - }, { - name: "name", - type: "ordinal" - }], - encodeDefine: { - single: 0, - value: 1, - itemName: 2 - } - }).dimensions; - var list = new SeriesData(dimensions, this); - list.initData(data); - return list; - }; - ThemeRiverSeriesModel2.prototype.getLayerSeries = function() { - var data = this.getData(); - var lenCount = data.count(); - var indexArr = []; - for (var i = 0; i < lenCount; ++i) { - indexArr[i] = i; - } - var timeDim = data.mapDimension("single"); - var groupResult = groupData(indexArr, function(index) { - return data.get("name", index); - }); - var layerSeries = []; - groupResult.buckets.each(function(items, key) { - items.sort(function(index1, index2) { - return data.get(timeDim, index1) - data.get(timeDim, index2); - }); - layerSeries.push({ - name: key, - indices: items - }); - }); - return layerSeries; - }; - ThemeRiverSeriesModel2.prototype.getAxisTooltipData = function(dim, value, baseAxis) { - if (!isArray(dim)) { - dim = dim ? [dim] : []; - } - var data = this.getData(); - var layerSeries = this.getLayerSeries(); - var indices = []; - var layerNum = layerSeries.length; - var nestestValue; - for (var i = 0; i < layerNum; ++i) { - var minDist = Number.MAX_VALUE; - var nearestIdx = -1; - var pointNum = layerSeries[i].indices.length; - for (var j = 0; j < pointNum; ++j) { - var theValue = data.get(dim[0], layerSeries[i].indices[j]); - var dist2 = Math.abs(theValue - value); - if (dist2 <= minDist) { - nestestValue = theValue; - minDist = dist2; - nearestIdx = layerSeries[i].indices[j]; - } - } - indices.push(nearestIdx); - } - return { - dataIndices: indices, - nestestValue - }; - }; - ThemeRiverSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - var data = this.getData(); - var name = data.getName(dataIndex); - var value = data.get(data.mapDimension("value"), dataIndex); - return createTooltipMarkup("nameValue", { - name, - value - }); - }; - ThemeRiverSeriesModel2.type = "series.themeRiver"; - ThemeRiverSeriesModel2.dependencies = ["singleAxis"]; - ThemeRiverSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - colorBy: "data", - coordinateSystem: "singleAxis", - // gap in axis's orthogonal orientation - boundaryGap: ["10%", "10%"], - // legendHoverLink: true, - singleAxisIndex: 0, - animationEasing: "linear", - label: { - margin: 4, - show: true, - position: "left", - fontSize: 11 - }, - emphasis: { - label: { - show: true - } - } - }; - return ThemeRiverSeriesModel2; - }(SeriesModel) -); -const ThemeRiverSeriesModel$1 = ThemeRiverSeriesModel; -function themeRiverLayout(ecModel, api) { - ecModel.eachSeriesByType("themeRiver", function(seriesModel) { - var data = seriesModel.getData(); - var single = seriesModel.coordinateSystem; - var layoutInfo = {}; - var rect = single.getRect(); - layoutInfo.rect = rect; - var boundaryGap = seriesModel.get("boundaryGap"); - var axis = single.getAxis(); - layoutInfo.boundaryGap = boundaryGap; - if (axis.orient === "horizontal") { - boundaryGap[0] = parsePercent$1(boundaryGap[0], rect.height); - boundaryGap[1] = parsePercent$1(boundaryGap[1], rect.height); - var height = rect.height - boundaryGap[0] - boundaryGap[1]; - doThemeRiverLayout(data, seriesModel, height); - } else { - boundaryGap[0] = parsePercent$1(boundaryGap[0], rect.width); - boundaryGap[1] = parsePercent$1(boundaryGap[1], rect.width); - var width = rect.width - boundaryGap[0] - boundaryGap[1]; - doThemeRiverLayout(data, seriesModel, width); - } - data.setLayout("layoutInfo", layoutInfo); - }); -} -function doThemeRiverLayout(data, seriesModel, height) { - if (!data.count()) { - return; - } - var coordSys = seriesModel.coordinateSystem; - var layerSeries = seriesModel.getLayerSeries(); - var timeDim = data.mapDimension("single"); - var valueDim = data.mapDimension("value"); - var layerPoints = map(layerSeries, function(singleLayer) { - return map(singleLayer.indices, function(idx) { - var pt = coordSys.dataToPoint(data.get(timeDim, idx)); - pt[1] = data.get(valueDim, idx); - return pt; - }); - }); - var base = computeBaseline(layerPoints); - var baseLine = base.y0; - var ky = height / base.max; - var n = layerSeries.length; - var m = layerSeries[0].indices.length; - var baseY0; - for (var j = 0; j < m; ++j) { - baseY0 = baseLine[j] * ky; - data.setItemLayout(layerSeries[0].indices[j], { - layerIndex: 0, - x: layerPoints[0][j][0], - y0: baseY0, - y: layerPoints[0][j][1] * ky - }); - for (var i = 1; i < n; ++i) { - baseY0 += layerPoints[i - 1][j][1] * ky; - data.setItemLayout(layerSeries[i].indices[j], { - layerIndex: i, - x: layerPoints[i][j][0], - y0: baseY0, - y: layerPoints[i][j][1] * ky - }); - } - } -} -function computeBaseline(data) { - var layerNum = data.length; - var pointNum = data[0].length; - var sums = []; - var y0 = []; - var max = 0; - for (var i = 0; i < pointNum; ++i) { - var temp = 0; - for (var j = 0; j < layerNum; ++j) { - temp += data[j][i][1]; - } - if (temp > max) { - max = temp; - } - sums.push(temp); - } - for (var k = 0; k < pointNum; ++k) { - y0[k] = (max - sums[k]) / 2; - } - max = 0; - for (var l = 0; l < pointNum; ++l) { - var sum2 = sums[l] + y0[l]; - if (sum2 > max) { - max = sum2; - } - } - return { - y0, - max - }; -} -function install$2(registers) { - registers.registerChartView(ThemeRiverView$1); - registers.registerSeriesModel(ThemeRiverSeriesModel$1); - registers.registerLayout(themeRiverLayout); - registers.registerProcessor(dataFilter("themeRiver")); -} -var DEFAULT_SECTOR_Z = 2; -var DEFAULT_TEXT_Z = 4; -var SunburstPiece = ( - /** @class */ - function(_super) { - __extends(SunburstPiece2, _super); - function SunburstPiece2(node, seriesModel, ecModel, api) { - var _this = _super.call(this) || this; - _this.z2 = DEFAULT_SECTOR_Z; - _this.textConfig = { - inside: true - }; - getECData(_this).seriesIndex = seriesModel.seriesIndex; - var text = new ZRText({ - z2: DEFAULT_TEXT_Z, - silent: node.getModel().get(["label", "silent"]) - }); - _this.setTextContent(text); - _this.updateData(true, node, seriesModel, ecModel, api); - return _this; - } - SunburstPiece2.prototype.updateData = function(firstCreate, node, seriesModel, ecModel, api) { - this.node = node; - node.piece = this; - seriesModel = seriesModel || this._seriesModel; - ecModel = ecModel || this._ecModel; - var sector = this; - getECData(sector).dataIndex = node.dataIndex; - var itemModel = node.getModel(); - var emphasisModel = itemModel.getModel("emphasis"); - var layout2 = node.getLayout(); - var sectorShape = extend({}, layout2); - sectorShape.label = null; - var normalStyle = node.getVisual("style"); - normalStyle.lineJoin = "bevel"; - var decal = node.getVisual("decal"); - if (decal) { - normalStyle.decal = createOrUpdatePatternFromDecal(decal, api); - } - var cornerRadius = getSectorCornerRadius(itemModel.getModel("itemStyle"), sectorShape, true); - extend(sectorShape, cornerRadius); - each$2(SPECIAL_STATES, function(stateName) { - var state = sector.ensureState(stateName); - var itemStyleModel = itemModel.getModel([stateName, "itemStyle"]); - state.style = itemStyleModel.getItemStyle(); - var cornerRadius2 = getSectorCornerRadius(itemStyleModel, sectorShape); - if (cornerRadius2) { - state.shape = cornerRadius2; - } - }); - if (firstCreate) { - sector.setShape(sectorShape); - sector.shape.r = layout2.r0; - initProps(sector, { - shape: { - r: layout2.r - } - }, seriesModel, node.dataIndex); - } else { - updateProps(sector, { - shape: sectorShape - }, seriesModel); - saveOldStyle(sector); - } - sector.useStyle(normalStyle); - this._updateLabel(seriesModel); - var cursorStyle = itemModel.getShallow("cursor"); - cursorStyle && sector.attr("cursor", cursorStyle); - this._seriesModel = seriesModel || this._seriesModel; - this._ecModel = ecModel || this._ecModel; - var focus = emphasisModel.get("focus"); - var focusOrIndices = focus === "ancestor" ? node.getAncestorsIndices() : focus === "descendant" ? node.getDescendantIndices() : focus; - toggleHoverEmphasis(this, focusOrIndices, emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - }; - SunburstPiece2.prototype._updateLabel = function(seriesModel) { - var _this = this; - var itemModel = this.node.getModel(); - var normalLabelModel = itemModel.getModel("label"); - var layout2 = this.node.getLayout(); - var angle = layout2.endAngle - layout2.startAngle; - var midAngle = (layout2.startAngle + layout2.endAngle) / 2; - var dx = Math.cos(midAngle); - var dy = Math.sin(midAngle); - var sector = this; - var label = sector.getTextContent(); - var dataIndex = this.node.dataIndex; - var labelMinAngle = normalLabelModel.get("minAngle") / 180 * Math.PI; - var isNormalShown = normalLabelModel.get("show") && !(labelMinAngle != null && Math.abs(angle) < labelMinAngle); - label.ignore = !isNormalShown; - each$2(DISPLAY_STATES, function(stateName) { - var labelStateModel = stateName === "normal" ? itemModel.getModel("label") : itemModel.getModel([stateName, "label"]); - var isNormal = stateName === "normal"; - var state = isNormal ? label : label.ensureState(stateName); - var text = seriesModel.getFormattedLabel(dataIndex, stateName); - if (isNormal) { - text = text || _this.node.name; - } - state.style = createTextStyle(labelStateModel, {}, null, stateName !== "normal", true); - if (text) { - state.style.text = text; - } - var isShown = labelStateModel.get("show"); - if (isShown != null && !isNormal) { - state.ignore = !isShown; - } - var labelPosition = getLabelAttr(labelStateModel, "position"); - var sectorState = isNormal ? sector : sector.states[stateName]; - var labelColor = sectorState.style.fill; - sectorState.textConfig = { - outsideFill: labelStateModel.get("color") === "inherit" ? labelColor : null, - inside: labelPosition !== "outside" - }; - var r; - var labelPadding = getLabelAttr(labelStateModel, "distance") || 0; - var textAlign = getLabelAttr(labelStateModel, "align"); - if (labelPosition === "outside") { - r = layout2.r + labelPadding; - textAlign = midAngle > Math.PI / 2 ? "right" : "left"; - } else { - if (!textAlign || textAlign === "center") { - if (angle === 2 * Math.PI && layout2.r0 === 0) { - r = 0; - } else { - r = (layout2.r + layout2.r0) / 2; - } - textAlign = "center"; - } else if (textAlign === "left") { - r = layout2.r0 + labelPadding; - if (midAngle > Math.PI / 2) { - textAlign = "right"; - } - } else if (textAlign === "right") { - r = layout2.r - labelPadding; - if (midAngle > Math.PI / 2) { - textAlign = "left"; - } - } - } - state.style.align = textAlign; - state.style.verticalAlign = getLabelAttr(labelStateModel, "verticalAlign") || "middle"; - state.x = r * dx + layout2.cx; - state.y = r * dy + layout2.cy; - var rotateType = getLabelAttr(labelStateModel, "rotate"); - var rotate = 0; - if (rotateType === "radial") { - rotate = normalizeRadian(-midAngle); - if (rotate > Math.PI / 2 && rotate < Math.PI * 1.5) { - rotate += Math.PI; - } - } else if (rotateType === "tangential") { - rotate = Math.PI / 2 - midAngle; - if (rotate > Math.PI / 2) { - rotate -= Math.PI; - } else if (rotate < -Math.PI / 2) { - rotate += Math.PI; - } - } else if (isNumber(rotateType)) { - rotate = rotateType * Math.PI / 180; - } - state.rotation = rotate; - }); - function getLabelAttr(model, name) { - var stateAttr = model.get(name); - if (stateAttr == null) { - return normalLabelModel.get(name); - } - return stateAttr; - } - label.dirtyStyle(); - }; - return SunburstPiece2; - }(Sector) -); -const SunburstPiece$1 = SunburstPiece; -var ROOT_TO_NODE_ACTION = "sunburstRootToNode"; -var HIGHLIGHT_ACTION = "sunburstHighlight"; -var UNHIGHLIGHT_ACTION = "sunburstUnhighlight"; -function installSunburstAction(registers) { - registers.registerAction({ - type: ROOT_TO_NODE_ACTION, - update: "updateView" - }, function(payload, ecModel) { - ecModel.eachComponent({ - mainType: "series", - subType: "sunburst", - query: payload - }, handleRootToNode); - function handleRootToNode(model, index) { - var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model); - if (targetInfo) { - var originViewRoot = model.getViewRoot(); - if (originViewRoot) { - payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? "rollUp" : "drillDown"; - } - model.resetViewRoot(targetInfo.node); - } - } - }); - registers.registerAction({ - type: HIGHLIGHT_ACTION, - update: "none" - }, function(payload, ecModel, api) { - payload = extend({}, payload); - ecModel.eachComponent({ - mainType: "series", - subType: "sunburst", - query: payload - }, handleHighlight); - function handleHighlight(model) { - var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model); - if (targetInfo) { - payload.dataIndex = targetInfo.node.dataIndex; - } - } - api.dispatchAction(extend(payload, { - type: "highlight" - })); - }); - registers.registerAction({ - type: UNHIGHLIGHT_ACTION, - update: "updateView" - }, function(payload, ecModel, api) { - payload = extend({}, payload); - api.dispatchAction(extend(payload, { - type: "downplay" - })); - }); -} -var SunburstView = ( - /** @class */ - function(_super) { - __extends(SunburstView2, _super); - function SunburstView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SunburstView2.type; - return _this; - } - SunburstView2.prototype.render = function(seriesModel, ecModel, api, payload) { - var self = this; - this.seriesModel = seriesModel; - this.api = api; - this.ecModel = ecModel; - var data = seriesModel.getData(); - var virtualRoot = data.tree.root; - var newRoot = seriesModel.getViewRoot(); - var group = this.group; - var renderLabelForZeroData = seriesModel.get("renderLabelForZeroData"); - var newChildren = []; - newRoot.eachNode(function(node) { - newChildren.push(node); - }); - var oldChildren = this._oldChildren || []; - dualTravel(newChildren, oldChildren); - renderRollUp(virtualRoot, newRoot); - this._initEvents(); - this._oldChildren = newChildren; - function dualTravel(newChildren2, oldChildren2) { - if (newChildren2.length === 0 && oldChildren2.length === 0) { - return; - } - new DataDiffer(oldChildren2, newChildren2, getKey2, getKey2).add(processNode).update(processNode).remove(curry(processNode, null)).execute(); - function getKey2(node) { - return node.getId(); - } - function processNode(newIdx, oldIdx) { - var newNode = newIdx == null ? null : newChildren2[newIdx]; - var oldNode = oldIdx == null ? null : oldChildren2[oldIdx]; - doRenderNode(newNode, oldNode); - } - } - function doRenderNode(newNode, oldNode) { - if (!renderLabelForZeroData && newNode && !newNode.getValue()) { - newNode = null; - } - if (newNode !== virtualRoot && oldNode !== virtualRoot) { - if (oldNode && oldNode.piece) { - if (newNode) { - oldNode.piece.updateData(false, newNode, seriesModel, ecModel, api); - data.setItemGraphicEl(newNode.dataIndex, oldNode.piece); - } else { - removeNode2(oldNode); - } - } else if (newNode) { - var piece = new SunburstPiece$1(newNode, seriesModel, ecModel, api); - group.add(piece); - data.setItemGraphicEl(newNode.dataIndex, piece); - } - } - } - function removeNode2(node) { - if (!node) { - return; - } - if (node.piece) { - group.remove(node.piece); - node.piece = null; - } - } - function renderRollUp(virtualRoot2, viewRoot) { - if (viewRoot.depth > 0) { - if (self.virtualPiece) { - self.virtualPiece.updateData(false, virtualRoot2, seriesModel, ecModel, api); - } else { - self.virtualPiece = new SunburstPiece$1(virtualRoot2, seriesModel, ecModel, api); - group.add(self.virtualPiece); - } - viewRoot.piece.off("click"); - self.virtualPiece.on("click", function(e) { - self._rootToNode(viewRoot.parentNode); - }); - } else if (self.virtualPiece) { - group.remove(self.virtualPiece); - self.virtualPiece = null; - } - } - }; - SunburstView2.prototype._initEvents = function() { - var _this = this; - this.group.off("click"); - this.group.on("click", function(e) { - var targetFound = false; - var viewRoot = _this.seriesModel.getViewRoot(); - viewRoot.eachNode(function(node) { - if (!targetFound && node.piece && node.piece === e.target) { - var nodeClick = node.getModel().get("nodeClick"); - if (nodeClick === "rootToNode") { - _this._rootToNode(node); - } else if (nodeClick === "link") { - var itemModel = node.getModel(); - var link = itemModel.get("link"); - if (link) { - var linkTarget = itemModel.get("target", true) || "_blank"; - windowOpen(link, linkTarget); - } - } - targetFound = true; - } - }); - }); - }; - SunburstView2.prototype._rootToNode = function(node) { - if (node !== this.seriesModel.getViewRoot()) { - this.api.dispatchAction({ - type: ROOT_TO_NODE_ACTION, - from: this.uid, - seriesId: this.seriesModel.id, - targetNode: node - }); - } - }; - SunburstView2.prototype.containPoint = function(point, seriesModel) { - var treeRoot = seriesModel.getData(); - var itemLayout = treeRoot.getItemLayout(0); - if (itemLayout) { - var dx = point[0] - itemLayout.cx; - var dy = point[1] - itemLayout.cy; - var radius = Math.sqrt(dx * dx + dy * dy); - return radius <= itemLayout.r && radius >= itemLayout.r0; - } - }; - SunburstView2.type = "sunburst"; - return SunburstView2; - }(ChartView) -); -const SunburstView$1 = SunburstView; -var SunburstSeriesModel = ( - /** @class */ - function(_super) { - __extends(SunburstSeriesModel2, _super); - function SunburstSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SunburstSeriesModel2.type; - _this.ignoreStyleOnData = true; - return _this; - } - SunburstSeriesModel2.prototype.getInitialData = function(option, ecModel) { - var root = { - name: option.name, - children: option.data - }; - completeTreeValue(root); - var levelModels = this._levelModels = map(option.levels || [], function(levelDefine) { - return new Model(levelDefine, this, ecModel); - }, this); - var tree = Tree$1.createTree(root, this, beforeLink); - function beforeLink(nodeData) { - nodeData.wrapMethod("getItemModel", function(model, idx) { - var node = tree.getNodeByDataIndex(idx); - var levelModel = levelModels[node.depth]; - levelModel && (model.parentModel = levelModel); - return model; - }); - } - return tree.data; - }; - SunburstSeriesModel2.prototype.optionUpdated = function() { - this.resetViewRoot(); - }; - SunburstSeriesModel2.prototype.getDataParams = function(dataIndex) { - var params = _super.prototype.getDataParams.apply(this, arguments); - var node = this.getData().tree.getNodeByDataIndex(dataIndex); - params.treePathInfo = wrapTreePathInfo(node, this); - return params; - }; - SunburstSeriesModel2.prototype.getLevelModel = function(node) { - return this._levelModels && this._levelModels[node.depth]; - }; - SunburstSeriesModel2.prototype.getViewRoot = function() { - return this._viewRoot; - }; - SunburstSeriesModel2.prototype.resetViewRoot = function(viewRoot) { - viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot; - var root = this.getRawData().tree.root; - if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) { - this._viewRoot = root; - } - }; - SunburstSeriesModel2.prototype.enableAriaDecal = function() { - enableAriaDecalForTree(this); - }; - SunburstSeriesModel2.type = "series.sunburst"; - SunburstSeriesModel2.defaultOption = { - // zlevel: 0, - z: 2, - // 默认全局居中 - center: ["50%", "50%"], - radius: [0, "75%"], - // 默认顺时针 - clockwise: true, - startAngle: 90, - // 最小角度改为0 - minAngle: 0, - // If still show when all data zero. - stillShowZeroSum: true, - // 'rootToNode', 'link', or false - nodeClick: "rootToNode", - renderLabelForZeroData: false, - label: { - // could be: 'radial', 'tangential', or 'none' - rotate: "radial", - show: true, - opacity: 1, - // 'left' is for inner side of inside, and 'right' is for outer - // side for inside - align: "center", - position: "inside", - distance: 5, - silent: true - }, - itemStyle: { - borderWidth: 1, - borderColor: "white", - borderType: "solid", - shadowBlur: 0, - shadowColor: "rgba(0, 0, 0, 0.2)", - shadowOffsetX: 0, - shadowOffsetY: 0, - opacity: 1 - }, - emphasis: { - focus: "descendant" - }, - blur: { - itemStyle: { - opacity: 0.2 - }, - label: { - opacity: 0.1 - } - }, - // Animation type can be expansion, scale. - animationType: "expansion", - animationDuration: 1e3, - animationDurationUpdate: 500, - data: [], - /** - * Sort order. - * - * Valid values: 'desc', 'asc', null, or callback function. - * 'desc' and 'asc' for descend and ascendant order; - * null for not sorting; - * example of callback function: - * function(nodeA, nodeB) { - * return nodeA.getValue() - nodeB.getValue(); - * } - */ - sort: "desc" - }; - return SunburstSeriesModel2; - }(SeriesModel) -); -function completeTreeValue(dataNode) { - var sum2 = 0; - each$2(dataNode.children, function(child) { - completeTreeValue(child); - var childValue = child.value; - isArray(childValue) && (childValue = childValue[0]); - sum2 += childValue; - }); - var thisValue = dataNode.value; - if (isArray(thisValue)) { - thisValue = thisValue[0]; - } - if (thisValue == null || isNaN(thisValue)) { - thisValue = sum2; - } - if (thisValue < 0) { - thisValue = 0; - } - isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue; -} -const SunburstSeriesModel$1 = SunburstSeriesModel; -var RADIAN = Math.PI / 180; -function sunburstLayout(seriesType, ecModel, api) { - ecModel.eachSeriesByType(seriesType, function(seriesModel) { - var center2 = seriesModel.get("center"); - var radius = seriesModel.get("radius"); - if (!isArray(radius)) { - radius = [0, radius]; - } - if (!isArray(center2)) { - center2 = [center2, center2]; - } - var width = api.getWidth(); - var height = api.getHeight(); - var size = Math.min(width, height); - var cx = parsePercent$1(center2[0], width); - var cy = parsePercent$1(center2[1], height); - var r0 = parsePercent$1(radius[0], size / 2); - var r = parsePercent$1(radius[1], size / 2); - var startAngle = -seriesModel.get("startAngle") * RADIAN; - var minAngle = seriesModel.get("minAngle") * RADIAN; - var virtualRoot = seriesModel.getData().tree.root; - var treeRoot = seriesModel.getViewRoot(); - var rootDepth = treeRoot.depth; - var sort2 = seriesModel.get("sort"); - if (sort2 != null) { - initChildren(treeRoot, sort2); - } - var validDataCount = 0; - each$2(treeRoot.children, function(child) { - !isNaN(child.getValue()) && validDataCount++; - }); - var sum2 = treeRoot.getValue(); - var unitRadian = Math.PI / (sum2 || validDataCount) * 2; - var renderRollupNode = treeRoot.depth > 0; - var levels = treeRoot.height - (renderRollupNode ? -1 : 1); - var rPerLevel = (r - r0) / (levels || 1); - var clockwise = seriesModel.get("clockwise"); - var stillShowZeroSum = seriesModel.get("stillShowZeroSum"); - var dir3 = clockwise ? 1 : -1; - var renderNode2 = function(node, startAngle2) { - if (!node) { - return; - } - var endAngle = startAngle2; - if (node !== virtualRoot) { - var value = node.getValue(); - var angle2 = sum2 === 0 && stillShowZeroSum ? unitRadian : value * unitRadian; - if (angle2 < minAngle) { - angle2 = minAngle; - } - endAngle = startAngle2 + dir3 * angle2; - var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1); - var rStart2 = r0 + rPerLevel * depth; - var rEnd2 = r0 + rPerLevel * (depth + 1); - var levelModel = seriesModel.getLevelModel(node); - if (levelModel) { - var r0_1 = levelModel.get("r0", true); - var r_1 = levelModel.get("r", true); - var radius_1 = levelModel.get("radius", true); - if (radius_1 != null) { - r0_1 = radius_1[0]; - r_1 = radius_1[1]; - } - r0_1 != null && (rStart2 = parsePercent$1(r0_1, size / 2)); - r_1 != null && (rEnd2 = parsePercent$1(r_1, size / 2)); - } - node.setLayout({ - angle: angle2, - startAngle: startAngle2, - endAngle, - clockwise, - cx, - cy, - r0: rStart2, - r: rEnd2 - }); - } - if (node.children && node.children.length) { - var siblingAngle_1 = 0; - each$2(node.children, function(node2) { - siblingAngle_1 += renderNode2(node2, startAngle2 + siblingAngle_1); - }); - } - return endAngle - startAngle2; - }; - if (renderRollupNode) { - var rStart = r0; - var rEnd = r0 + rPerLevel; - var angle = Math.PI * 2; - virtualRoot.setLayout({ - angle, - startAngle, - endAngle: startAngle + angle, - clockwise, - cx, - cy, - r0: rStart, - r: rEnd - }); - } - renderNode2(treeRoot, startAngle); - }); -} -function initChildren(node, sortOrder) { - var children = node.children || []; - node.children = sort(children, sortOrder); - if (children.length) { - each$2(node.children, function(child) { - initChildren(child, sortOrder); - }); - } -} -function sort(children, sortOrder) { - if (isFunction(sortOrder)) { - var sortTargets = map(children, function(child, idx) { - var value = child.getValue(); - return { - params: { - depth: child.depth, - height: child.height, - dataIndex: child.dataIndex, - getValue: function() { - return value; - } - }, - index: idx - }; - }); - sortTargets.sort(function(a, b) { - return sortOrder(a.params, b.params); - }); - return map(sortTargets, function(target) { - return children[target.index]; - }); - } else { - var isAsc_1 = sortOrder === "asc"; - return children.sort(function(a, b) { - var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1); - return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1) : diff; - }); - } -} -function sunburstVisual(ecModel) { - var paletteScope = {}; - function pickColor(node, seriesModel, treeHeight) { - var current = node; - while (current && current.depth > 1) { - current = current.parentNode; - } - var color = seriesModel.getColorFromPalette(current.name || current.dataIndex + "", paletteScope); - if (node.depth > 1 && isString(color)) { - color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5); - } - return color; - } - ecModel.eachSeriesByType("sunburst", function(seriesModel) { - var data = seriesModel.getData(); - var tree = data.tree; - tree.eachNode(function(node) { - var model = node.getModel(); - var style = model.getModel("itemStyle").getItemStyle(); - if (!style.fill) { - style.fill = pickColor(node, seriesModel, tree.root.height); - } - var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, "style"); - extend(existsStyle, style); - }); - }); -} -function install$1(registers) { - registers.registerChartView(SunburstView$1); - registers.registerSeriesModel(SunburstSeriesModel$1); - registers.registerLayout(curry(sunburstLayout, "sunburst")); - registers.registerProcessor(curry(dataFilter, "sunburst")); - registers.registerVisual(sunburstVisual); - installSunburstAction(registers); -} -var STYLE_VISUAL_TYPE = { - color: "fill", - borderColor: "stroke" -}; -var NON_STYLE_VISUAL_PROPS = { - symbol: 1, - symbolSize: 1, - symbolKeepAspect: 1, - legendIcon: 1, - visualMeta: 1, - liftZ: 1, - decal: 1 -}; -var customInnerStore = makeInner(); -var CustomSeriesModel = ( - /** @class */ - function(_super) { - __extends(CustomSeriesModel2, _super); - function CustomSeriesModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = CustomSeriesModel2.type; - return _this; - } - CustomSeriesModel2.prototype.optionUpdated = function() { - this.currentZLevel = this.get("zlevel", true); - this.currentZ = this.get("z", true); - }; - CustomSeriesModel2.prototype.getInitialData = function(option, ecModel) { - return createSeriesData(null, this); - }; - CustomSeriesModel2.prototype.getDataParams = function(dataIndex, dataType, el) { - var params = _super.prototype.getDataParams.call(this, dataIndex, dataType); - el && (params.info = customInnerStore(el).info); - return params; - }; - CustomSeriesModel2.type = "series.custom"; - CustomSeriesModel2.dependencies = ["grid", "polar", "geo", "singleAxis", "calendar"]; - CustomSeriesModel2.defaultOption = { - coordinateSystem: "cartesian2d", - // zlevel: 0, - z: 2, - legendHoverLink: true, - // Custom series will not clip by default. - // Some case will use custom series to draw label - // For example https://echarts.apache.org/examples/en/editor.html?c=custom-gantt-flight - clip: false - // Cartesian coordinate system - // xAxisIndex: 0, - // yAxisIndex: 0, - // Polar coordinate system - // polarIndex: 0, - // Geo coordinate system - // geoIndex: 0, - }; - return CustomSeriesModel2; - }(SeriesModel) -); -const CustomSeriesModel$1 = CustomSeriesModel; -function dataToCoordSize$3(dataSize, dataItem) { - dataItem = dataItem || [0, 0]; - return map(["x", "y"], function(dim, dimIdx) { - var axis = this.getAxis(dim); - var val = dataItem[dimIdx]; - var halfSize = dataSize[dimIdx] / 2; - return axis.type === "category" ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize)); - }, this); -} -function cartesianPrepareCustom(coordSys) { - var rect = coordSys.master.getRect(); - return { - coordSys: { - // The name exposed to user is always 'cartesian2d' but not 'grid'. - type: "cartesian2d", - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height - }, - api: { - coord: function(data) { - return coordSys.dataToPoint(data); - }, - size: bind(dataToCoordSize$3, coordSys) - } - }; -} -function dataToCoordSize$2(dataSize, dataItem) { - dataItem = dataItem || [0, 0]; - return map([0, 1], function(dimIdx) { - var val = dataItem[dimIdx]; - var halfSize = dataSize[dimIdx] / 2; - var p1 = []; - var p2 = []; - p1[dimIdx] = val - halfSize; - p2[dimIdx] = val + halfSize; - p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx]; - return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]); - }, this); -} -function geoPrepareCustom(coordSys) { - var rect = coordSys.getBoundingRect(); - return { - coordSys: { - type: "geo", - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height, - zoom: coordSys.getZoom() - }, - api: { - coord: function(data) { - return coordSys.dataToPoint(data); - }, - size: bind(dataToCoordSize$2, coordSys) - } - }; -} -function dataToCoordSize$1(dataSize, dataItem) { - var axis = this.getAxis(); - var val = dataItem instanceof Array ? dataItem[0] : dataItem; - var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2; - return axis.type === "category" ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize)); -} -function singlePrepareCustom(coordSys) { - var rect = coordSys.getRect(); - return { - coordSys: { - type: "singleAxis", - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height - }, - api: { - coord: function(val) { - return coordSys.dataToPoint(val); - }, - size: bind(dataToCoordSize$1, coordSys) - } - }; -} -function dataToCoordSize(dataSize, dataItem) { - dataItem = dataItem || [0, 0]; - return map(["Radius", "Angle"], function(dim, dimIdx) { - var getterName = "get" + dim + "Axis"; - var axis = this[getterName](); - var val = dataItem[dimIdx]; - var halfSize = dataSize[dimIdx] / 2; - var result = axis.type === "category" ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize)); - if (dim === "Angle") { - result = result * Math.PI / 180; - } - return result; - }, this); -} -function polarPrepareCustom(coordSys) { - var radiusAxis = coordSys.getRadiusAxis(); - var angleAxis = coordSys.getAngleAxis(); - var radius = radiusAxis.getExtent(); - radius[0] > radius[1] && radius.reverse(); - return { - coordSys: { - type: "polar", - cx: coordSys.cx, - cy: coordSys.cy, - r: radius[1], - r0: radius[0] - }, - api: { - coord: function(data) { - var radius2 = radiusAxis.dataToRadius(data[0]); - var angle = angleAxis.dataToAngle(data[1]); - var coord = coordSys.coordToPoint([radius2, angle]); - coord.push(radius2, angle * Math.PI / 180); - return coord; - }, - size: bind(dataToCoordSize, coordSys) - } - }; -} -function calendarPrepareCustom(coordSys) { - var rect = coordSys.getRect(); - var rangeInfo = coordSys.getRangeInfo(); - return { - coordSys: { - type: "calendar", - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height, - cellWidth: coordSys.getCellWidth(), - cellHeight: coordSys.getCellHeight(), - rangeInfo: { - start: rangeInfo.start, - end: rangeInfo.end, - weeks: rangeInfo.weeks, - dayCount: rangeInfo.allDay - } - }, - api: { - coord: function(data, clamp) { - return coordSys.dataToPoint(data, clamp); - } - } - }; -} -var EMPHASIS = "emphasis"; -var NORMAL = "normal"; -var BLUR = "blur"; -var SELECT = "select"; -var STATES = [NORMAL, EMPHASIS, BLUR, SELECT]; -var PATH_ITEM_STYLE = { - normal: ["itemStyle"], - emphasis: [EMPHASIS, "itemStyle"], - blur: [BLUR, "itemStyle"], - select: [SELECT, "itemStyle"] -}; -var PATH_LABEL = { - normal: ["label"], - emphasis: [EMPHASIS, "label"], - blur: [BLUR, "label"], - select: [SELECT, "label"] -}; -var DEFAULT_TRANSITION = ["x", "y"]; -var GROUP_DIFF_PREFIX = "e\0\0"; -var attachedTxInfoTmp = { - normal: {}, - emphasis: {}, - blur: {}, - select: {} -}; -var prepareCustoms = { - cartesian2d: cartesianPrepareCustom, - geo: geoPrepareCustom, - single: singlePrepareCustom, - polar: polarPrepareCustom, - calendar: calendarPrepareCustom -}; -function isPath(el) { - return el instanceof Path; -} -function isDisplayable(el) { - return el instanceof Displayable; -} -function copyElement(sourceEl, targetEl) { - targetEl.copyTransform(sourceEl); - if (isDisplayable(targetEl) && isDisplayable(sourceEl)) { - targetEl.setStyle(sourceEl.style); - targetEl.z = sourceEl.z; - targetEl.z2 = sourceEl.z2; - targetEl.zlevel = sourceEl.zlevel; - targetEl.invisible = sourceEl.invisible; - targetEl.ignore = sourceEl.ignore; - if (isPath(targetEl) && isPath(sourceEl)) { - targetEl.setShape(sourceEl.shape); - } - } -} -var CustomChartView = ( - /** @class */ - function(_super) { - __extends(CustomChartView2, _super); - function CustomChartView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = CustomChartView2.type; - return _this; - } - CustomChartView2.prototype.render = function(customSeries, ecModel, api, payload) { - this._progressiveEls = null; - var oldData = this._data; - var data = customSeries.getData(); - var group = this.group; - var renderItem = makeRenderItem(customSeries, data, ecModel, api); - if (!oldData) { - group.removeAll(); - } - data.diff(oldData).add(function(newIdx) { - createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data); - }).remove(function(oldIdx) { - var el = oldData.getItemGraphicEl(oldIdx); - el && applyLeaveTransition(el, customInnerStore(el).option, customSeries); - }).update(function(newIdx, oldIdx) { - var oldEl = oldData.getItemGraphicEl(oldIdx); - createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data); - }).execute(); - var clipPath = customSeries.get("clip", true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null; - if (clipPath) { - group.setClipPath(clipPath); - } else { - group.removeClipPath(); - } - this._data = data; - }; - CustomChartView2.prototype.incrementalPrepareRender = function(customSeries, ecModel, api) { - this.group.removeAll(); - this._data = null; - }; - CustomChartView2.prototype.incrementalRender = function(params, customSeries, ecModel, api, payload) { - var data = customSeries.getData(); - var renderItem = makeRenderItem(customSeries, data, ecModel, api); - var progressiveEls = this._progressiveEls = []; - function setIncrementalAndHoverLayer(el2) { - if (!el2.isGroup) { - el2.incremental = true; - el2.ensureState("emphasis").hoverLayer = true; - } - } - for (var idx = params.start; idx < params.end; idx++) { - var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data); - if (el) { - el.traverse(setIncrementalAndHoverLayer); - progressiveEls.push(el); - } - } - }; - CustomChartView2.prototype.eachRendered = function(cb) { - traverseElements(this._progressiveEls || this.group, cb); - }; - CustomChartView2.prototype.filterForExposedEvent = function(eventType, query, targetEl, packedEvent) { - var elementName = query.element; - if (elementName == null || targetEl.name === elementName) { - return true; - } - while ((targetEl = targetEl.__hostTarget || targetEl.parent) && targetEl !== this.group) { - if (targetEl.name === elementName) { - return true; - } - } - return false; - }; - CustomChartView2.type = "custom"; - return CustomChartView2; - }(ChartView) -); -const CustomChartView$1 = CustomChartView; -function createEl(elOption) { - var graphicType = elOption.type; - var el; - if (graphicType === "path") { - var shape = elOption.shape; - var pathRect = shape.width != null && shape.height != null ? { - x: shape.x || 0, - y: shape.y || 0, - width: shape.width, - height: shape.height - } : null; - var pathData = getPathData(shape); - el = makePath(pathData, null, pathRect, shape.layout || "center"); - customInnerStore(el).customPathData = pathData; - } else if (graphicType === "image") { - el = new ZRImage({}); - customInnerStore(el).customImagePath = elOption.style.image; - } else if (graphicType === "text") { - el = new ZRText({}); - } else if (graphicType === "group") { - el = new Group$1(); - } else if (graphicType === "compoundPath") { - throw new Error('"compoundPath" is not supported yet.'); - } else { - var Clz = getShapeClass(graphicType); - if (!Clz) { - var errMsg = ""; - throwError(errMsg); - } - el = new Clz(); - } - customInnerStore(el).customGraphicType = graphicType; - el.name = elOption.name; - el.z2EmphasisLift = 1; - el.z2SelectLift = 1; - return el; -} -function updateElNormal(api, el, dataIndex, elOption, attachedTxInfo, seriesModel, isInit) { - stopPreviousKeyframeAnimationAndRestore(el); - var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg; - if (txCfgOpt) { - el.setTextConfig(txCfgOpt); - } - if (elOption && elOption.transition == null) { - elOption.transition = DEFAULT_TRANSITION; - } - var styleOpt = elOption && elOption.style; - if (styleOpt) { - if (el.type === "text") { - var textOptionStyle = styleOpt; - hasOwn(textOptionStyle, "textFill") && (textOptionStyle.fill = textOptionStyle.textFill); - hasOwn(textOptionStyle, "textStroke") && (textOptionStyle.stroke = textOptionStyle.textStroke); - } - var decalPattern = void 0; - var decalObj = isPath(el) ? styleOpt.decal : null; - if (api && decalObj) { - decalObj.dirty = true; - decalPattern = createOrUpdatePatternFromDecal(decalObj, api); - } - styleOpt.__decalPattern = decalPattern; - } - if (isDisplayable(el)) { - if (styleOpt) { - var decalPattern = styleOpt.__decalPattern; - if (decalPattern) { - styleOpt.decal = decalPattern; - } - } - } - applyUpdateTransition(el, elOption, seriesModel, { - dataIndex, - isInit, - clearStyle: true - }); - applyKeyframeAnimation(el, elOption.keyframeAnimation, seriesModel); -} -function updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo) { - var elDisplayable = el.isGroup ? null : el; - var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg; - if (elDisplayable) { - var stateObj = elDisplayable.ensureState(state); - if (styleOpt === false) { - var existingEmphasisState = elDisplayable.getState(state); - if (existingEmphasisState) { - existingEmphasisState.style = null; - } - } else { - stateObj.style = styleOpt || null; - } - if (txCfgOpt) { - stateObj.textConfig = txCfgOpt; - } - setDefaultStateProxy(elDisplayable); - } -} -function updateZ(el, elOption, seriesModel) { - if (el.isGroup) { - return; - } - var elDisplayable = el; - var currentZ = seriesModel.currentZ; - var currentZLevel = seriesModel.currentZLevel; - elDisplayable.z = currentZ; - elDisplayable.zlevel = currentZLevel; - var optZ2 = elOption.z2; - optZ2 != null && (elDisplayable.z2 = optZ2 || 0); - for (var i = 0; i < STATES.length; i++) { - updateZForEachState(elDisplayable, elOption, STATES[i]); - } -} -function updateZForEachState(elDisplayable, elOption, state) { - var isNormal = state === NORMAL; - var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state); - var optZ2 = elStateOpt ? elStateOpt.z2 : null; - var stateObj; - if (optZ2 != null) { - stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state); - stateObj.z2 = optZ2 || 0; - } -} -function makeRenderItem(customSeries, data, ecModel, api) { - var renderItem = customSeries.get("renderItem"); - var coordSys = customSeries.coordinateSystem; - var prepareResult = {}; - if (coordSys) { - prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms(coordSys) : prepareCustoms[coordSys.type](coordSys); - } - var userAPI = defaults({ - getWidth: api.getWidth, - getHeight: api.getHeight, - getZr: api.getZr, - getDevicePixelRatio: api.getDevicePixelRatio, - value, - style, - ordinalRawValue, - styleEmphasis, - visual, - barLayout, - currentSeriesIndices, - font - }, prepareResult.api || {}); - var userParams = { - // The life cycle of context: current round of rendering. - // The global life cycle is probably not necessary, because - // user can store global status by themselves. - context: {}, - seriesId: customSeries.id, - seriesName: customSeries.name, - seriesIndex: customSeries.seriesIndex, - coordSys: prepareResult.coordSys, - dataInsideLength: data.count(), - encode: wrapEncodeDef(customSeries.getData()) - }; - var currDataIndexInside; - var currItemModel; - var currItemStyleModels = {}; - var currLabelModels = {}; - var seriesItemStyleModels = {}; - var seriesLabelModels = {}; - for (var i = 0; i < STATES.length; i++) { - var stateName = STATES[i]; - seriesItemStyleModels[stateName] = customSeries.getModel(PATH_ITEM_STYLE[stateName]); - seriesLabelModels[stateName] = customSeries.getModel(PATH_LABEL[stateName]); - } - function getItemModel2(dataIndexInside) { - return dataIndexInside === currDataIndexInside ? currItemModel || (currItemModel = data.getItemModel(dataIndexInside)) : data.getItemModel(dataIndexInside); - } - function getItemStyleModel(dataIndexInside, state) { - return !data.hasItemOption ? seriesItemStyleModels[state] : dataIndexInside === currDataIndexInside ? currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel2(dataIndexInside).getModel(PATH_ITEM_STYLE[state])) : getItemModel2(dataIndexInside).getModel(PATH_ITEM_STYLE[state]); - } - function getLabelModel(dataIndexInside, state) { - return !data.hasItemOption ? seriesLabelModels[state] : dataIndexInside === currDataIndexInside ? currLabelModels[state] || (currLabelModels[state] = getItemModel2(dataIndexInside).getModel(PATH_LABEL[state])) : getItemModel2(dataIndexInside).getModel(PATH_LABEL[state]); - } - return function(dataIndexInside, payload) { - currDataIndexInside = dataIndexInside; - currItemModel = null; - currItemStyleModels = {}; - currLabelModels = {}; - return renderItem && renderItem(defaults({ - dataIndexInside, - dataIndex: data.getRawIndex(dataIndexInside), - // Can be used for optimization when zoom or roam. - actionType: payload ? payload.type : null - }, userParams), userAPI); - }; - function value(dim, dataIndexInside) { - dataIndexInside == null && (dataIndexInside = currDataIndexInside); - return data.getStore().get(data.getDimensionIndex(dim || 0), dataIndexInside); - } - function ordinalRawValue(dim, dataIndexInside) { - dataIndexInside == null && (dataIndexInside = currDataIndexInside); - dim = dim || 0; - var dimInfo = data.getDimensionInfo(dim); - if (!dimInfo) { - var dimIndex = data.getDimensionIndex(dim); - return dimIndex >= 0 ? data.getStore().get(dimIndex, dataIndexInside) : void 0; - } - var val = data.get(dimInfo.name, dataIndexInside); - var ordinalMeta = dimInfo && dimInfo.ordinalMeta; - return ordinalMeta ? ordinalMeta.categories[val] : val; - } - function style(userProps, dataIndexInside) { - dataIndexInside == null && (dataIndexInside = currDataIndexInside); - var style2 = data.getItemVisual(dataIndexInside, "style"); - var visualColor = style2 && style2.fill; - var opacity = style2 && style2.opacity; - var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle(); - visualColor != null && (itemStyle.fill = visualColor); - opacity != null && (itemStyle.opacity = opacity); - var opt = { - inheritColor: isString(visualColor) ? visualColor : "#000" - }; - var labelModel = getLabelModel(dataIndexInside, NORMAL); - var textStyle = createTextStyle(labelModel, null, opt, false, true); - textStyle.text = labelModel.getShallow("show") ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null; - var textConfig = createTextConfig(labelModel, opt, false); - preFetchFromExtra(userProps, itemStyle); - itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig); - userProps && applyUserPropsAfter(itemStyle, userProps); - itemStyle.legacy = true; - return itemStyle; - } - function styleEmphasis(userProps, dataIndexInside) { - dataIndexInside == null && (dataIndexInside = currDataIndexInside); - var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle(); - var labelModel = getLabelModel(dataIndexInside, EMPHASIS); - var textStyle = createTextStyle(labelModel, null, null, true, true); - textStyle.text = labelModel.getShallow("show") ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null; - var textConfig = createTextConfig(labelModel, null, true); - preFetchFromExtra(userProps, itemStyle); - itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig); - userProps && applyUserPropsAfter(itemStyle, userProps); - itemStyle.legacy = true; - return itemStyle; - } - function applyUserPropsAfter(itemStyle, extra) { - for (var key in extra) { - if (hasOwn(extra, key)) { - itemStyle[key] = extra[key]; - } - } - } - function preFetchFromExtra(extra, itemStyle) { - if (extra) { - extra.textFill && (itemStyle.textFill = extra.textFill); - extra.textPosition && (itemStyle.textPosition = extra.textPosition); - } - } - function visual(visualType, dataIndexInside) { - dataIndexInside == null && (dataIndexInside = currDataIndexInside); - if (hasOwn(STYLE_VISUAL_TYPE, visualType)) { - var style_1 = data.getItemVisual(dataIndexInside, "style"); - return style_1 ? style_1[STYLE_VISUAL_TYPE[visualType]] : null; - } - if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) { - return data.getItemVisual(dataIndexInside, visualType); - } - } - function barLayout(opt) { - if (coordSys.type === "cartesian2d") { - var baseAxis = coordSys.getBaseAxis(); - return getLayoutOnAxis(defaults({ - axis: baseAxis - }, opt)); - } - } - function currentSeriesIndices() { - return ecModel.getCurrentSeriesIndices(); - } - function font(opt) { - return getFont(opt, ecModel); - } -} -function wrapEncodeDef(data) { - var encodeDef = {}; - each$2(data.dimensions, function(dimName) { - var dimInfo = data.getDimensionInfo(dimName); - if (!dimInfo.isExtraCoord) { - var coordDim = dimInfo.coordDim; - var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || []; - dataDims[dimInfo.coordDimIndex] = data.getDimensionIndex(dimName); - } - }); - return encodeDef; -} -function createOrUpdateItem(api, existsEl, dataIndex, elOption, seriesModel, group, data) { - if (!elOption) { - group.remove(existsEl); - return; - } - var el = doCreateOrUpdateEl(api, existsEl, dataIndex, elOption, seriesModel, group); - el && data.setItemGraphicEl(dataIndex, el); - el && toggleHoverEmphasis(el, elOption.focus, elOption.blurScope, elOption.emphasisDisabled); - return el; -} -function doCreateOrUpdateEl(api, existsEl, dataIndex, elOption, seriesModel, group) { - var toBeReplacedIdx = -1; - var oldEl = existsEl; - if (existsEl && doesElNeedRecreate(existsEl, elOption, seriesModel)) { - toBeReplacedIdx = indexOf(group.childrenRef(), existsEl); - existsEl = null; - } - var isInit = !existsEl; - var el = existsEl; - if (!el) { - el = createEl(elOption); - if (oldEl) { - copyElement(oldEl, el); - } - } else { - el.clearStates(); - } - if (elOption.morph === false) { - el.disableMorphing = true; - } else if (el.disableMorphing) { - el.disableMorphing = false; - } - attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt = attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt = attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt = attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null; - attachedTxInfoTmp.isLegacy = false; - doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp); - doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit); - updateElNormal(api, el, dataIndex, elOption, attachedTxInfoTmp, seriesModel, isInit); - hasOwn(elOption, "info") && (customInnerStore(el).info = elOption.info); - for (var i = 0; i < STATES.length; i++) { - var stateName = STATES[i]; - if (stateName !== NORMAL) { - var otherStateOpt = retrieveStateOption(elOption, stateName); - var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName); - updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp); - } - } - updateZ(el, elOption, seriesModel); - if (elOption.type === "group") { - mergeChildren(api, el, dataIndex, elOption, seriesModel); - } - if (toBeReplacedIdx >= 0) { - group.replaceAt(el, toBeReplacedIdx); - } else { - group.add(el); - } - return el; -} -function doesElNeedRecreate(el, elOption, seriesModel) { - var elInner = customInnerStore(el); - var elOptionType = elOption.type; - var elOptionShape = elOption.shape; - var elOptionStyle = elOption.style; - return ( - // Always create new if universal transition is enabled. - // Because we do transition after render. It needs to know what old element is. Replacement will loose it. - seriesModel.isUniversalTransitionEnabled() || elOptionType != null && elOptionType !== elInner.customGraphicType || elOptionType === "path" && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== elInner.customPathData || elOptionType === "image" && hasOwn(elOptionStyle, "image") && elOptionStyle.image !== elInner.customImagePath - ); -} -function doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) { - var clipPathOpt = elOption.clipPath; - if (clipPathOpt === false) { - if (el && el.getClipPath()) { - el.removeClipPath(); - } - } else if (clipPathOpt) { - var clipPath = el.getClipPath(); - if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt, seriesModel)) { - clipPath = null; - } - if (!clipPath) { - clipPath = createEl(clipPathOpt); - el.setClipPath(clipPath); - } - updateElNormal(null, clipPath, dataIndex, clipPathOpt, null, seriesModel, isInit); - } -} -function doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) { - if (el.isGroup) { - return; - } - processTxInfo(elOption, null, attachedTxInfo); - processTxInfo(elOption, EMPHASIS, attachedTxInfo); - var txConOptNormal = attachedTxInfo.normal.conOpt; - var txConOptEmphasis = attachedTxInfo.emphasis.conOpt; - var txConOptBlur = attachedTxInfo.blur.conOpt; - var txConOptSelect = attachedTxInfo.select.conOpt; - if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) { - var textContent = el.getTextContent(); - if (txConOptNormal === false) { - textContent && el.removeTextContent(); - } else { - txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || { - type: "text" - }; - if (!textContent) { - textContent = createEl(txConOptNormal); - el.setTextContent(textContent); - } else { - textContent.clearStates(); - } - updateElNormal(null, textContent, dataIndex, txConOptNormal, null, seriesModel, isInit); - var txConStlOptNormal = txConOptNormal && txConOptNormal.style; - for (var i = 0; i < STATES.length; i++) { - var stateName = STATES[i]; - if (stateName !== NORMAL) { - var txConOptOtherState = attachedTxInfo[stateName].conOpt; - updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null); - } - } - txConStlOptNormal ? textContent.dirty() : textContent.markRedraw(); - } - } -} -function processTxInfo(elOption, state, attachedTxInfo) { - var stateOpt = !state ? elOption : retrieveStateOption(elOption, state); - var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS); - var elType = elOption.type; - var txCfg = stateOpt ? stateOpt.textConfig : null; - var txConOptNormal = elOption.textContent; - var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state); - if (styleOpt && // Because emphasis style has little info to detect legacy, - // if normal is legacy, emphasis is trade as legacy. - (attachedTxInfo.isLegacy || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) { - attachedTxInfo.isLegacy = true; - var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state); - if (!txCfg && convertResult.textConfig) { - txCfg = convertResult.textConfig; - } - if (!txConOpt && convertResult.textContent) { - txConOpt = convertResult.textContent; - } - } - if (!state && txConOpt) { - var txConOptNormal_1 = txConOpt; - !txConOptNormal_1.type && (txConOptNormal_1.type = "text"); - } - var info = !state ? attachedTxInfo.normal : attachedTxInfo[state]; - info.cfg = txCfg; - info.conOpt = txConOpt; -} -function retrieveStateOption(elOption, state) { - return !state ? elOption : elOption ? elOption[state] : null; -} -function retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) { - var style = stateOption && stateOption.style; - if (style == null && state === EMPHASIS && stateOptionNormal) { - style = stateOptionNormal.styleEmphasis; - } - return style; -} -function mergeChildren(api, el, dataIndex, elOption, seriesModel) { - var newChildren = elOption.children; - var newLen = newChildren ? newChildren.length : 0; - var mergeChildren2 = elOption.$mergeChildren; - var byName = mergeChildren2 === "byName" || elOption.diffChildrenByName; - var notMerge = mergeChildren2 === false; - if (!newLen && !byName && !notMerge) { - return; - } - if (byName) { - diffGroupChildren({ - api, - oldChildren: el.children() || [], - newChildren: newChildren || [], - dataIndex, - seriesModel, - group: el - }); - return; - } - notMerge && el.removeAll(); - var index = 0; - for (; index < newLen; index++) { - var newChild = newChildren[index]; - var oldChild = el.childAt(index); - if (newChild) { - if (newChild.ignore == null) { - newChild.ignore = false; - } - doCreateOrUpdateEl(api, oldChild, dataIndex, newChild, seriesModel, el); - } else { - oldChild.ignore = true; - } - } - for (var i = el.childCount() - 1; i >= index; i--) { - var child = el.childAt(i); - removeChildFromGroup(el, child, seriesModel); - } -} -function removeChildFromGroup(group, child, seriesModel) { - child && applyLeaveTransition(child, customInnerStore(group).option, seriesModel); -} -function diffGroupChildren(context) { - new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute(); -} -function getKey(item, idx) { - var name = item && item.name; - return name != null ? name : GROUP_DIFF_PREFIX + idx; -} -function processAddUpdate(newIndex, oldIndex) { - var context = this.context; - var childOption = newIndex != null ? context.newChildren[newIndex] : null; - var child = oldIndex != null ? context.oldChildren[oldIndex] : null; - doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group); -} -function processRemove(oldIndex) { - var context = this.context; - var child = context.oldChildren[oldIndex]; - child && applyLeaveTransition(child, customInnerStore(child).option, context.seriesModel); -} -function getPathData(shape) { - return shape && (shape.pathData || shape.d); -} -function hasOwnPathData(shape) { - return shape && (hasOwn(shape, "pathData") || hasOwn(shape, "d")); -} -function install(registers) { - registers.registerChartView(CustomChartView$1); - registers.registerSeriesModel(CustomSeriesModel$1); -} -export { - install$k as BarChart, - install$8 as BoxplotChart, - install$7 as CandlestickChart, - install as CustomChart, - install$6 as EffectScatterChart, - install$b as FunnelChart, - install$c as GaugeChart, - install$d as GraphChart, - install$4 as HeatmapChart, - install$l as LineChart, - install$5 as LinesChart, - install$g as MapChart, - install$a as ParallelChart, - install$3 as PictorialBarChart, - install$j as PieChart, - install$h as RadarChart, - install$9 as SankeyChart, - install$i as ScatterChart, - install$1 as SunburstChart, - install$2 as ThemeRiverChart, - install$f as TreeChart, - install$e as TreemapChart -}; diff --git a/templates/assets/dist/assets/clipboard-8ef9d310.js b/templates/assets/dist/assets/clipboard-8ef9d310.js new file mode 100644 index 00000000..b766c311 --- /dev/null +++ b/templates/assets/dist/assets/clipboard-8ef9d310.js @@ -0,0 +1,6 @@ +import{g as J,c as K}from"./_commonjsHelpers-042e6b4d.js";function Q(x,C){for(var S=0;S_[h]})}}}return Object.freeze(Object.defineProperty(x,Symbol.toStringTag,{value:"Module"}))}var R={exports:{}};/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(x,C){(function(_,h){x.exports=h()})(K,function(){return function(){var S={686:function(c,f,t){t.d(f,{default:function(){return B}});var a=t(279),s=t.n(a),l=t(370),g=t.n(l),y=t(817),m=t.n(y);function d(i){try{return document.execCommand(i)}catch{return!1}}var v=function(n){var e=m()(n);return d("cut"),e},p=v;function E(i){var n=document.documentElement.getAttribute("dir")==="rtl",e=document.createElement("textarea");e.style.fontSize="12pt",e.style.border="0",e.style.padding="0",e.style.margin="0",e.style.position="absolute",e.style[n?"right":"left"]="-9999px";var r=window.pageYOffset||document.documentElement.scrollTop;return e.style.top="".concat(r,"px"),e.setAttribute("readonly",""),e.value=i,e}var k=function(n,e){var r=E(n);e.container.appendChild(r);var o=m()(r);return d("copy"),r.remove(),o},D=function(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},r="";return typeof n=="string"?r=k(n,e):n instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(n==null?void 0:n.type)?r=k(n.value,e):(r=m()(n),d("copy")),r},L=D;function w(i){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?w=function(e){return typeof e}:w=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(i)}var F=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=n.action,r=e===void 0?"copy":e,o=n.container,u=n.target,b=n.text;if(r!=="copy"&&r!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(u!==void 0)if(u&&w(u)==="object"&&u.nodeType===1){if(r==="copy"&&u.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(r==="cut"&&(u.hasAttribute("readonly")||u.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(b)return L(b,{container:o});if(u)return r==="cut"?p(u):L(u,{container:o})},H=F;function T(i){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?T=function(e){return typeof e}:T=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(i)}function I(i,n){if(!(i instanceof n))throw new TypeError("Cannot call a class as a function")}function N(i,n){for(var e=0;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function A(i){return A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},A(i)}function j(i,n){var e="data-clipboard-".concat(i);if(n.hasAttribute(e))return n.getAttribute(e)}var X=function(i){U(e,i);var n=Y(e);function e(r,o){var u;return I(this,e),u=n.call(this),u.resolveOptions(o),u.listenClick(r),u}return z(e,[{key:"resolveOptions",value:function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof o.action=="function"?o.action:this.defaultAction,this.target=typeof o.target=="function"?o.target:this.defaultTarget,this.text=typeof o.text=="function"?o.text:this.defaultText,this.container=T(o.container)==="object"?o.container:document.body}},{key:"listenClick",value:function(o){var u=this;this.listener=g()(o,"click",function(b){return u.onClick(b)})}},{key:"onClick",value:function(o){var u=o.delegateTarget||o.currentTarget,b=this.action(u)||"copy",O=H({action:b,container:this.container,target:this.target(u),text:this.text(u)});this.emit(O?"success":"error",{action:b,text:O,trigger:u,clearSelection:function(){u&&u.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(o){return j("action",o)}},{key:"defaultTarget",value:function(o){var u=j("target",o);if(u)return document.querySelector(u)}},{key:"defaultText",value:function(o){return j("text",o)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(o){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return L(o,u)}},{key:"cut",value:function(o){return p(o)}},{key:"isSupported",value:function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],u=typeof o=="string"?[o]:o,b=!!document.queryCommandSupported;return u.forEach(function(O){b=b&&!!document.queryCommandSupported(O)}),b}}]),e}(s()),B=X},828:function(c){var f=9;if(typeof Element<"u"&&!Element.prototype.matches){var t=Element.prototype;t.matches=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector}function a(s,l){for(;s&&s.nodeType!==f;){if(typeof s.matches=="function"&&s.matches(l))return s;s=s.parentNode}}c.exports=a},438:function(c,f,t){var a=t(828);function s(y,m,d,v,p){var E=g.apply(this,arguments);return y.addEventListener(d,E,p),{destroy:function(){y.removeEventListener(d,E,p)}}}function l(y,m,d,v,p){return typeof y.addEventListener=="function"?s.apply(null,arguments):typeof d=="function"?s.bind(null,document).apply(null,arguments):(typeof y=="string"&&(y=document.querySelectorAll(y)),Array.prototype.map.call(y,function(E){return s(E,m,d,v,p)}))}function g(y,m,d,v){return function(p){p.delegateTarget=a(p.target,m),p.delegateTarget&&v.call(y,p)}}c.exports=l},879:function(c,f){f.node=function(t){return t!==void 0&&t instanceof HTMLElement&&t.nodeType===1},f.nodeList=function(t){var a=Object.prototype.toString.call(t);return t!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in t&&(t.length===0||f.node(t[0]))},f.string=function(t){return typeof t=="string"||t instanceof String},f.fn=function(t){var a=Object.prototype.toString.call(t);return a==="[object Function]"}},370:function(c,f,t){var a=t(879),s=t(438);function l(d,v,p){if(!d&&!v&&!p)throw new Error("Missing required arguments");if(!a.string(v))throw new TypeError("Second argument must be a String");if(!a.fn(p))throw new TypeError("Third argument must be a Function");if(a.node(d))return g(d,v,p);if(a.nodeList(d))return y(d,v,p);if(a.string(d))return m(d,v,p);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function g(d,v,p){return d.addEventListener(v,p),{destroy:function(){d.removeEventListener(v,p)}}}function y(d,v,p){return Array.prototype.forEach.call(d,function(E){E.addEventListener(v,p)}),{destroy:function(){Array.prototype.forEach.call(d,function(E){E.removeEventListener(v,p)})}}}function m(d,v,p){return s(document.body,d,v,p)}c.exports=l},817:function(c){function f(t){var a;if(t.nodeName==="SELECT")t.focus(),a=t.value;else if(t.nodeName==="INPUT"||t.nodeName==="TEXTAREA"){var s=t.hasAttribute("readonly");s||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),s||t.removeAttribute("readonly"),a=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var l=window.getSelection(),g=document.createRange();g.selectNodeContents(t),l.removeAllRanges(),l.addRange(g),a=l.toString()}return a}c.exports=f},279:function(c){function f(){}f.prototype={on:function(t,a,s){var l=this.e||(this.e={});return(l[t]||(l[t]=[])).push({fn:a,ctx:s}),this},once:function(t,a,s){var l=this;function g(){l.off(t,g),a.apply(s,arguments)}return g._=a,this.on(t,g,s)},emit:function(t){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[t]||[]).slice(),l=0,g=s.length;for(l;l e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: "Module" })); -} -var clipboard$2 = { exports: {} }; -/*! - * clipboard.js v2.0.11 - * https://clipboardjs.com/ - * - * Licensed MIT © Zeno Rocha - */ -(function(module, exports) { - (function webpackUniversalModuleDefinition(root, factory) { - module.exports = factory(); - })(commonjsGlobal, function() { - return ( - /******/ - function() { - var __webpack_modules__ = { - /***/ - 686: ( - /***/ - function(__unused_webpack_module, __webpack_exports__, __webpack_require__2) { - __webpack_require__2.d(__webpack_exports__, { - "default": function() { - return ( - /* binding */ - clipboard2 - ); - } - }); - var tiny_emitter = __webpack_require__2(279); - var tiny_emitter_default = /* @__PURE__ */ __webpack_require__2.n(tiny_emitter); - var listen = __webpack_require__2(370); - var listen_default = /* @__PURE__ */ __webpack_require__2.n(listen); - var src_select = __webpack_require__2(817); - var select_default = /* @__PURE__ */ __webpack_require__2.n(src_select); - function command(type) { - try { - return document.execCommand(type); - } catch (err) { - return false; - } - } - var ClipboardActionCut = function ClipboardActionCut2(target) { - var selectedText = select_default()(target); - command("cut"); - return selectedText; - }; - var actions_cut = ClipboardActionCut; - function createFakeElement(value) { - var isRTL = document.documentElement.getAttribute("dir") === "rtl"; - var fakeElement = document.createElement("textarea"); - fakeElement.style.fontSize = "12pt"; - fakeElement.style.border = "0"; - fakeElement.style.padding = "0"; - fakeElement.style.margin = "0"; - fakeElement.style.position = "absolute"; - fakeElement.style[isRTL ? "right" : "left"] = "-9999px"; - var yPosition = window.pageYOffset || document.documentElement.scrollTop; - fakeElement.style.top = "".concat(yPosition, "px"); - fakeElement.setAttribute("readonly", ""); - fakeElement.value = value; - return fakeElement; - } - var fakeCopyAction = function fakeCopyAction2(value, options) { - var fakeElement = createFakeElement(value); - options.container.appendChild(fakeElement); - var selectedText = select_default()(fakeElement); - command("copy"); - fakeElement.remove(); - return selectedText; - }; - var ClipboardActionCopy = function ClipboardActionCopy2(target) { - var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : { - container: document.body - }; - var selectedText = ""; - if (typeof target === "string") { - selectedText = fakeCopyAction(target, options); - } else if (target instanceof HTMLInputElement && !["text", "search", "url", "tel", "password"].includes(target === null || target === void 0 ? void 0 : target.type)) { - selectedText = fakeCopyAction(target.value, options); - } else { - selectedText = select_default()(target); - command("copy"); - } - return selectedText; - }; - var actions_copy = ClipboardActionCopy; - function _typeof(obj) { - "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function _typeof2(obj2) { - return typeof obj2; - }; - } else { - _typeof = function _typeof2(obj2) { - return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }; - } - return _typeof(obj); - } - var ClipboardActionDefault = function ClipboardActionDefault2() { - var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - var _options$action = options.action, action = _options$action === void 0 ? "copy" : _options$action, container = options.container, target = options.target, text = options.text; - if (action !== "copy" && action !== "cut") { - throw new Error('Invalid "action" value, use either "copy" or "cut"'); - } - if (target !== void 0) { - if (target && _typeof(target) === "object" && target.nodeType === 1) { - if (action === "copy" && target.hasAttribute("disabled")) { - throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); - } - if (action === "cut" && (target.hasAttribute("readonly") || target.hasAttribute("disabled"))) { - throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`); - } - } else { - throw new Error('Invalid "target" value, use a valid Element'); - } - } - if (text) { - return actions_copy(text, { - container - }); - } - if (target) { - return action === "cut" ? actions_cut(target) : actions_copy(target, { - container - }); - } - }; - var actions_default = ClipboardActionDefault; - function clipboard_typeof(obj) { - "@babel/helpers - typeof"; - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - clipboard_typeof = function _typeof2(obj2) { - return typeof obj2; - }; - } else { - clipboard_typeof = function _typeof2(obj2) { - return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }; - } - return clipboard_typeof(obj); - } - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) - descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) - _defineProperties(Constructor.prototype, protoProps); - if (staticProps) - _defineProperties(Constructor, staticProps); - return Constructor; - } - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); - if (superClass) - _setPrototypeOf(subClass, superClass); - } - function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf2(o2, p2) { - o2.__proto__ = p2; - return o2; - }; - return _setPrototypeOf(o, p); - } - function _createSuper(Derived) { - var hasNativeReflectConstruct = _isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = _getPrototypeOf(Derived), result; - if (hasNativeReflectConstruct) { - var NewTarget = _getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return _possibleConstructorReturn(this, result); - }; - } - function _possibleConstructorReturn(self, call) { - if (call && (clipboard_typeof(call) === "object" || typeof call === "function")) { - return call; - } - return _assertThisInitialized(self); - } - function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; - } - function _isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) - return false; - if (Reflect.construct.sham) - return false; - if (typeof Proxy === "function") - return true; - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function() { - })); - return true; - } catch (e) { - return false; - } - } - function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf2(o2) { - return o2.__proto__ || Object.getPrototypeOf(o2); - }; - return _getPrototypeOf(o); - } - function getAttributeValue(suffix, element) { - var attribute = "data-clipboard-".concat(suffix); - if (!element.hasAttribute(attribute)) { - return; - } - return element.getAttribute(attribute); - } - var Clipboard = /* @__PURE__ */ function(_Emitter) { - _inherits(Clipboard2, _Emitter); - var _super = _createSuper(Clipboard2); - function Clipboard2(trigger, options) { - var _this; - _classCallCheck(this, Clipboard2); - _this = _super.call(this); - _this.resolveOptions(options); - _this.listenClick(trigger); - return _this; - } - _createClass(Clipboard2, [{ - key: "resolveOptions", - value: function resolveOptions() { - var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - this.action = typeof options.action === "function" ? options.action : this.defaultAction; - this.target = typeof options.target === "function" ? options.target : this.defaultTarget; - this.text = typeof options.text === "function" ? options.text : this.defaultText; - this.container = clipboard_typeof(options.container) === "object" ? options.container : document.body; - } - /** - * Adds a click event listener to the passed trigger. - * @param {String|HTMLElement|HTMLCollection|NodeList} trigger - */ - }, { - key: "listenClick", - value: function listenClick(trigger) { - var _this2 = this; - this.listener = listen_default()(trigger, "click", function(e) { - return _this2.onClick(e); - }); - } - /** - * Defines a new `ClipboardAction` on each click event. - * @param {Event} e - */ - }, { - key: "onClick", - value: function onClick(e) { - var trigger = e.delegateTarget || e.currentTarget; - var action = this.action(trigger) || "copy"; - var text = actions_default({ - action, - container: this.container, - target: this.target(trigger), - text: this.text(trigger) - }); - this.emit(text ? "success" : "error", { - action, - text, - trigger, - clearSelection: function clearSelection() { - if (trigger) { - trigger.focus(); - } - window.getSelection().removeAllRanges(); - } - }); - } - /** - * Default `action` lookup function. - * @param {Element} trigger - */ - }, { - key: "defaultAction", - value: function defaultAction(trigger) { - return getAttributeValue("action", trigger); - } - /** - * Default `target` lookup function. - * @param {Element} trigger - */ - }, { - key: "defaultTarget", - value: function defaultTarget(trigger) { - var selector = getAttributeValue("target", trigger); - if (selector) { - return document.querySelector(selector); - } - } - /** - * Allow fire programmatically a copy action - * @param {String|HTMLElement} target - * @param {Object} options - * @returns Text copied. - */ - }, { - key: "defaultText", - /** - * Default `text` lookup function. - * @param {Element} trigger - */ - value: function defaultText(trigger) { - return getAttributeValue("text", trigger); - } - /** - * Destroy lifecycle. - */ - }, { - key: "destroy", - value: function destroy() { - this.listener.destroy(); - } - }], [{ - key: "copy", - value: function copy(target) { - var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : { - container: document.body - }; - return actions_copy(target, options); - } - /** - * Allow fire programmatically a cut action - * @param {String|HTMLElement} target - * @returns Text cutted. - */ - }, { - key: "cut", - value: function cut(target) { - return actions_cut(target); - } - /** - * Returns the support of the given action, or all actions if no action is - * given. - * @param {String} [action] - */ - }, { - key: "isSupported", - value: function isSupported() { - var action = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ["copy", "cut"]; - var actions = typeof action === "string" ? [action] : action; - var support = !!document.queryCommandSupported; - actions.forEach(function(action2) { - support = support && !!document.queryCommandSupported(action2); - }); - return support; - } - }]); - return Clipboard2; - }(tiny_emitter_default()); - var clipboard2 = Clipboard; - } - ), - /***/ - 828: ( - /***/ - function(module2) { - var DOCUMENT_NODE_TYPE = 9; - if (typeof Element !== "undefined" && !Element.prototype.matches) { - var proto = Element.prototype; - proto.matches = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector; - } - function closest(element, selector) { - while (element && element.nodeType !== DOCUMENT_NODE_TYPE) { - if (typeof element.matches === "function" && element.matches(selector)) { - return element; - } - element = element.parentNode; - } - } - module2.exports = closest; - } - ), - /***/ - 438: ( - /***/ - function(module2, __unused_webpack_exports, __webpack_require__2) { - var closest = __webpack_require__2(828); - function _delegate(element, selector, type, callback, useCapture) { - var listenerFn = listener.apply(this, arguments); - element.addEventListener(type, listenerFn, useCapture); - return { - destroy: function() { - element.removeEventListener(type, listenerFn, useCapture); - } - }; - } - function delegate(elements, selector, type, callback, useCapture) { - if (typeof elements.addEventListener === "function") { - return _delegate.apply(null, arguments); - } - if (typeof type === "function") { - return _delegate.bind(null, document).apply(null, arguments); - } - if (typeof elements === "string") { - elements = document.querySelectorAll(elements); - } - return Array.prototype.map.call(elements, function(element) { - return _delegate(element, selector, type, callback, useCapture); - }); - } - function listener(element, selector, type, callback) { - return function(e) { - e.delegateTarget = closest(e.target, selector); - if (e.delegateTarget) { - callback.call(element, e); - } - }; - } - module2.exports = delegate; - } - ), - /***/ - 879: ( - /***/ - function(__unused_webpack_module, exports2) { - exports2.node = function(value) { - return value !== void 0 && value instanceof HTMLElement && value.nodeType === 1; - }; - exports2.nodeList = function(value) { - var type = Object.prototype.toString.call(value); - return value !== void 0 && (type === "[object NodeList]" || type === "[object HTMLCollection]") && "length" in value && (value.length === 0 || exports2.node(value[0])); - }; - exports2.string = function(value) { - return typeof value === "string" || value instanceof String; - }; - exports2.fn = function(value) { - var type = Object.prototype.toString.call(value); - return type === "[object Function]"; - }; - } - ), - /***/ - 370: ( - /***/ - function(module2, __unused_webpack_exports, __webpack_require__2) { - var is = __webpack_require__2(879); - var delegate = __webpack_require__2(438); - function listen(target, type, callback) { - if (!target && !type && !callback) { - throw new Error("Missing required arguments"); - } - if (!is.string(type)) { - throw new TypeError("Second argument must be a String"); - } - if (!is.fn(callback)) { - throw new TypeError("Third argument must be a Function"); - } - if (is.node(target)) { - return listenNode(target, type, callback); - } else if (is.nodeList(target)) { - return listenNodeList(target, type, callback); - } else if (is.string(target)) { - return listenSelector(target, type, callback); - } else { - throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList"); - } - } - function listenNode(node, type, callback) { - node.addEventListener(type, callback); - return { - destroy: function() { - node.removeEventListener(type, callback); - } - }; - } - function listenNodeList(nodeList, type, callback) { - Array.prototype.forEach.call(nodeList, function(node) { - node.addEventListener(type, callback); - }); - return { - destroy: function() { - Array.prototype.forEach.call(nodeList, function(node) { - node.removeEventListener(type, callback); - }); - } - }; - } - function listenSelector(selector, type, callback) { - return delegate(document.body, selector, type, callback); - } - module2.exports = listen; - } - ), - /***/ - 817: ( - /***/ - function(module2) { - function select(element) { - var selectedText; - if (element.nodeName === "SELECT") { - element.focus(); - selectedText = element.value; - } else if (element.nodeName === "INPUT" || element.nodeName === "TEXTAREA") { - var isReadOnly = element.hasAttribute("readonly"); - if (!isReadOnly) { - element.setAttribute("readonly", ""); - } - element.select(); - element.setSelectionRange(0, element.value.length); - if (!isReadOnly) { - element.removeAttribute("readonly"); - } - selectedText = element.value; - } else { - if (element.hasAttribute("contenteditable")) { - element.focus(); - } - var selection = window.getSelection(); - var range = document.createRange(); - range.selectNodeContents(element); - selection.removeAllRanges(); - selection.addRange(range); - selectedText = selection.toString(); - } - return selectedText; - } - module2.exports = select; - } - ), - /***/ - 279: ( - /***/ - function(module2) { - function E() { - } - E.prototype = { - on: function(name, callback, ctx) { - var e = this.e || (this.e = {}); - (e[name] || (e[name] = [])).push({ - fn: callback, - ctx - }); - return this; - }, - once: function(name, callback, ctx) { - var self = this; - function listener() { - self.off(name, listener); - callback.apply(ctx, arguments); - } - listener._ = callback; - return this.on(name, listener, ctx); - }, - emit: function(name) { - var data = [].slice.call(arguments, 1); - var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); - var i = 0; - var len = evtArr.length; - for (i; i < len; i++) { - evtArr[i].fn.apply(evtArr[i].ctx, data); - } - return this; - }, - off: function(name, callback) { - var e = this.e || (this.e = {}); - var evts = e[name]; - var liveEvents = []; - if (evts && callback) { - for (var i = 0, len = evts.length; i < len; i++) { - if (evts[i].fn !== callback && evts[i].fn._ !== callback) - liveEvents.push(evts[i]); - } - } - liveEvents.length ? e[name] = liveEvents : delete e[name]; - return this; - } - }; - module2.exports = E; - module2.exports.TinyEmitter = E; - } - ) - /******/ - }; - var __webpack_module_cache__ = {}; - function __webpack_require__(moduleId) { - if (__webpack_module_cache__[moduleId]) { - return __webpack_module_cache__[moduleId].exports; - } - var module2 = __webpack_module_cache__[moduleId] = { - /******/ - // no module.id needed - /******/ - // no module.loaded needed - /******/ - exports: {} - /******/ - }; - __webpack_modules__[moduleId](module2, module2.exports, __webpack_require__); - return module2.exports; - } - !function() { - __webpack_require__.n = function(module2) { - var getter = module2 && module2.__esModule ? ( - /******/ - function() { - return module2["default"]; - } - ) : ( - /******/ - function() { - return module2; - } - ); - __webpack_require__.d(getter, { a: getter }); - return getter; - }; - }(); - !function() { - __webpack_require__.d = function(exports2, definition) { - for (var key in definition) { - if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports2, key)) { - Object.defineProperty(exports2, key, { enumerable: true, get: definition[key] }); - } - } - }; - }(); - !function() { - __webpack_require__.o = function(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); - }; - }(); - return __webpack_require__(686); - }().default - ); - }); -})(clipboard$2); -var clipboardExports = clipboard$2.exports; -const clipboard = /* @__PURE__ */ getDefaultExportFromCjs(clipboardExports); -const clipboard$1 = /* @__PURE__ */ _mergeNamespaces({ - __proto__: null, - default: clipboard -}, [clipboardExports]); -export { - clipboard$1 as c -}; diff --git a/templates/assets/dist/assets/components-184f0ea1.js b/templates/assets/dist/assets/components-184f0ea1.js deleted file mode 100644 index dfba09dd..00000000 --- a/templates/assets/dist/assets/components-184f0ea1.js +++ /dev/null @@ -1,14542 +0,0 @@ -import { x as getAxisInfo$1, A as AxisBuilder, y as layout$2, z as makeKey, B as AxisView, C as collect, c as install$r, D as axisModelCreator, E as rectCoordAxisHandleRemove, F as rectCoordAxisBuildSplitArea, q as isEC4CompatibleStyle, r as convertFromEC4CompatibleStyle, t as stopPreviousKeyframeAnimationAndRestore, v as applyUpdateTransition, G as updateLeaveTo, w as applyKeyframeAnimation, H as isTransitionAll, n as applyLeaveTransition, I as sliderMove, J as makeRectPanelClipPath, K as makeRectIsTargetByCursor, N as makeLinearBrushOtherExtent, O as BrushController, k as VisualMapping, S as SymbolDraw, L as LineDraw, i as isCoordinateSystemType, R as RoamController } from "./customGraphicKeyframeAnimation-e508d217.js"; -import { f, l, d } from "./customGraphicKeyframeAnimation-e508d217.js"; -import { d as curry$1, Z as ZRText, l as isArray$1, o as isObject, g as each$9, c as clone$1, b as bind$1, aC as getBoundingRect, p as isString, n as isFunction, a$ as rotate, aJ as translate, aL as create$1, _ as __extends, z as env, q as map, h as extend, m as mixin, f as defaults, i as filter, aO as retrieve, R as Rect$1, r as merge, V as createHashMap, j as indexOf, ap as hasOwn, O as retrieve2, aj as Displayable, N as keys, a as ZRImage, b7 as isDom, b8 as transformLocalCoord, ar as trim$1, K as noop, B as BoundingRect, az as parsePercent$1, S as isNumber, aN as modifyAlpha, aZ as mergeAll, b4 as parse, b3 as stringify, ai as Point, Y as isArrayLike, b9 as isRegExp } from "./graphic-c958e8df.js"; -import { br as makeInner, I as Group$2, bt as graphic, U as createIcon, cf as stop, cn as createOrUpdate, co as clear$1, a3 as updateProps$1, a9 as normalizeCssArray, a as createTextStyle, cs as getAxisRawValue, cp as applyTransform, ab as ComponentModel, ac as ComponentView, b9 as queryDataIndex, aK as use, aZ as SINGLE_REFERRING, A as AxisModelCommonMixin, aM as Axis, bn as parsePercent, c7 as getDataDimensionsOnAxis, n as niceScaleExtent, c as createScaleByModel$1, G as Circle, O as Ring, L as Line, a0 as mergePath, M as Model, f as getECData, S as Sector, cd as groupTransition, i as isDimensionStacked, ca as subPixelOptimizeLine, h as getLayoutRect, c0 as getLayoutParams, ct as sizeCalculable, c1 as mergeLayoutParam, N as Polyline, cu as formatTplSimple, cv as getLocaleModel, v as parseDate, cw as mappingToExists, cx as copyLayoutParams, bB as convertOptionIdName, cb as setTooltipConfig, bD as positionElement, X as getShapeClass, cy as LOCATION_PARAMS, cz as MULTIPLE_REFERRING, s as linearMap$2, m as getPixelPrecision, cA as unionAxisExtentFromData, cB as ensureScaleRawExtentInfo, k as asc$2, cC as box, bG as DataDiffer, cj as getUID, bO as enterEmphasis, bP as leaveEmphasis, av as registerAction, cD as addEventListener, cE as parseFinder$1, Y as getTransform, cF as registerInternalOptionCreator, cG as makeInternalComponentId, aa as toCamelCase, cH as normalizeEvent, b6 as convertToColorString, cI as getPaddingFromTooltipModel, bS as throwError, cJ as getTooltipRenderMode, cl as findEventDispatcher, bw as createTooltipMarkup, cK as normalizeTooltipFormatResult, cL as buildTooltipMarkup, D as format, a7 as formatTpl, cM as preParseFinder, cN as queryReferringComponents, cO as TooltipMarkupStyleCreator, aT as normalizeToArray, cP as getItemVisualFromData, cQ as setItemVisualFromData, cR as contain, cS as linePolygonIntersect, bH as windowOpen, b0 as getDataItemValue, aI as SeriesData, bg as inheritDefaultOption, cT as DataFormatMixin, d as enableHoverEmphasis, c3 as IntervalScale, cU as TimeScale, cV as OrdinalScale, b as createSymbol, bu as normalizeSymbolSize, bU as normalizeSymbolOffset, bq as defaultEmphasis, o as getPrecision, cW as parseDataValue, cX as enterBlur, cY as leaveBlur, cZ as getVisualFromData, g as getStackedDimension, P as Polygon, bb as setLabelStyle, bc as getLabelStatesModels, b7 as setStatesStylesFromModel, b8 as toggleHoverEmphasis, c_ as isNameSpecified, bV as createOrUpdatePatternFromDecal, c$ as symbolBuildProxies, cq as transformDirection, bJ as setAsHighDownDispatcher, K as LinearGradient, d0 as compressBatches, z as reformIntervals, bC as getDecalFromPalette, d1 as getRawValueParser, d2 as createFilterComparator, d3 as SortOrderComparator, bR as SOURCE_FORMAT_ARRAY_ROWS, d4 as SOURCE_FORMAT_OBJECT_ROWS, d5 as SourceManager, d6 as disableTransformOptionMerge, d7 as SERIES_LAYOUT_BY_COLUMN } from "./Axis-1d2b148d.js"; -var inner$b = makeInner(); -var clone = clone$1; -var bind = bind$1; -var BaseAxisPointer = ( - /** @class */ - function() { - function BaseAxisPointer2() { - this._dragging = false; - this.animationThreshold = 15; - } - BaseAxisPointer2.prototype.render = function(axisModel, axisPointerModel, api, forceRender) { - var value = axisPointerModel.get("value"); - var status = axisPointerModel.get("status"); - this._axisModel = axisModel; - this._axisPointerModel = axisPointerModel; - this._api = api; - if (!forceRender && this._lastValue === value && this._lastStatus === status) { - return; - } - this._lastValue = value; - this._lastStatus = status; - var group = this._group; - var handle = this._handle; - if (!status || status === "hide") { - group && group.hide(); - handle && handle.hide(); - return; - } - group && group.show(); - handle && handle.show(); - var elOption = {}; - this.makeElOption(elOption, value, axisModel, axisPointerModel, api); - var graphicKey = elOption.graphicKey; - if (graphicKey !== this._lastGraphicKey) { - this.clear(api); - } - this._lastGraphicKey = graphicKey; - var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel); - if (!group) { - group = this._group = new Group$2(); - this.createPointerEl(group, elOption, axisModel, axisPointerModel); - this.createLabelEl(group, elOption, axisModel, axisPointerModel); - api.getZr().add(group); - } else { - var doUpdateProps = curry$1(updateProps, axisPointerModel, moveAnimation); - this.updatePointerEl(group, elOption, doUpdateProps); - this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel); - } - updateMandatoryProps(group, axisPointerModel, true); - this._renderHandle(value); - }; - BaseAxisPointer2.prototype.remove = function(api) { - this.clear(api); - }; - BaseAxisPointer2.prototype.dispose = function(api) { - this.clear(api); - }; - BaseAxisPointer2.prototype.determineAnimation = function(axisModel, axisPointerModel) { - var animation = axisPointerModel.get("animation"); - var axis = axisModel.axis; - var isCategoryAxis = axis.type === "category"; - var useSnap = axisPointerModel.get("snap"); - if (!useSnap && !isCategoryAxis) { - return false; - } - if (animation === "auto" || animation == null) { - var animationThreshold = this.animationThreshold; - if (isCategoryAxis && axis.getBandWidth() > animationThreshold) { - return true; - } - if (useSnap) { - var seriesDataCount = getAxisInfo$1(axisModel).seriesDataCount; - var axisExtent = axis.getExtent(); - return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold; - } - return false; - } - return animation === true; - }; - BaseAxisPointer2.prototype.makeElOption = function(elOption, value, axisModel, axisPointerModel, api) { - }; - BaseAxisPointer2.prototype.createPointerEl = function(group, elOption, axisModel, axisPointerModel) { - var pointerOption = elOption.pointer; - if (pointerOption) { - var pointerEl = inner$b(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer)); - group.add(pointerEl); - } - }; - BaseAxisPointer2.prototype.createLabelEl = function(group, elOption, axisModel, axisPointerModel) { - if (elOption.label) { - var labelEl = inner$b(group).labelEl = new ZRText(clone(elOption.label)); - group.add(labelEl); - updateLabelShowHide(labelEl, axisPointerModel); - } - }; - BaseAxisPointer2.prototype.updatePointerEl = function(group, elOption, updateProps2) { - var pointerEl = inner$b(group).pointerEl; - if (pointerEl && elOption.pointer) { - pointerEl.setStyle(elOption.pointer.style); - updateProps2(pointerEl, { - shape: elOption.pointer.shape - }); - } - }; - BaseAxisPointer2.prototype.updateLabelEl = function(group, elOption, updateProps2, axisPointerModel) { - var labelEl = inner$b(group).labelEl; - if (labelEl) { - labelEl.setStyle(elOption.label.style); - updateProps2(labelEl, { - // Consider text length change in vertical axis, animation should - // be used on shape, otherwise the effect will be weird. - // TODOTODO - // shape: elOption.label.shape, - x: elOption.label.x, - y: elOption.label.y - }); - updateLabelShowHide(labelEl, axisPointerModel); - } - }; - BaseAxisPointer2.prototype._renderHandle = function(value) { - if (this._dragging || !this.updateHandleTransform) { - return; - } - var axisPointerModel = this._axisPointerModel; - var zr = this._api.getZr(); - var handle = this._handle; - var handleModel = axisPointerModel.getModel("handle"); - var status = axisPointerModel.get("status"); - if (!handleModel.get("show") || !status || status === "hide") { - handle && zr.remove(handle); - this._handle = null; - return; - } - var isInit; - if (!this._handle) { - isInit = true; - handle = this._handle = createIcon(handleModel.get("icon"), { - cursor: "move", - draggable: true, - onmousemove: function(e) { - stop(e.event); - }, - onmousedown: bind(this._onHandleDragMove, this, 0, 0), - drift: bind(this._onHandleDragMove, this), - ondragend: bind(this._onHandleDragEnd, this) - }); - zr.add(handle); - } - updateMandatoryProps(handle, axisPointerModel, false); - handle.setStyle(handleModel.getItemStyle(null, ["color", "borderColor", "borderWidth", "opacity", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"])); - var handleSize = handleModel.get("size"); - if (!isArray$1(handleSize)) { - handleSize = [handleSize, handleSize]; - } - handle.scaleX = handleSize[0] / 2; - handle.scaleY = handleSize[1] / 2; - createOrUpdate(this, "_doDispatchAxisPointer", handleModel.get("throttle") || 0, "fixRate"); - this._moveHandleToValue(value, isInit); - }; - BaseAxisPointer2.prototype._moveHandleToValue = function(value, isInit) { - updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel))); - }; - BaseAxisPointer2.prototype._onHandleDragMove = function(dx, dy) { - var handle = this._handle; - if (!handle) { - return; - } - this._dragging = true; - var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel); - this._payloadInfo = trans; - handle.stopAnimation(); - handle.attr(getHandleTransProps(trans)); - inner$b(handle).lastProp = null; - this._doDispatchAxisPointer(); - }; - BaseAxisPointer2.prototype._doDispatchAxisPointer = function() { - var handle = this._handle; - if (!handle) { - return; - } - var payloadInfo = this._payloadInfo; - var axisModel = this._axisModel; - this._api.dispatchAction({ - type: "updateAxisPointer", - x: payloadInfo.cursorPoint[0], - y: payloadInfo.cursorPoint[1], - tooltipOption: payloadInfo.tooltipOption, - axesInfo: [{ - axisDim: axisModel.axis.dim, - axisIndex: axisModel.componentIndex - }] - }); - }; - BaseAxisPointer2.prototype._onHandleDragEnd = function() { - this._dragging = false; - var handle = this._handle; - if (!handle) { - return; - } - var value = this._axisPointerModel.get("value"); - this._moveHandleToValue(value); - this._api.dispatchAction({ - type: "hideTip" - }); - }; - BaseAxisPointer2.prototype.clear = function(api) { - this._lastValue = null; - this._lastStatus = null; - var zr = api.getZr(); - var group = this._group; - var handle = this._handle; - if (zr && group) { - this._lastGraphicKey = null; - group && zr.remove(group); - handle && zr.remove(handle); - this._group = null; - this._handle = null; - this._payloadInfo = null; - } - clear$1(this, "_doDispatchAxisPointer"); - }; - BaseAxisPointer2.prototype.doClear = function() { - }; - BaseAxisPointer2.prototype.buildLabel = function(xy, wh, xDimIndex) { - xDimIndex = xDimIndex || 0; - return { - x: xy[xDimIndex], - y: xy[1 - xDimIndex], - width: wh[xDimIndex], - height: wh[1 - xDimIndex] - }; - }; - return BaseAxisPointer2; - }() -); -function updateProps(animationModel, moveAnimation, el, props) { - if (!propsEqual(inner$b(el).lastProp, props)) { - inner$b(el).lastProp = props; - moveAnimation ? updateProps$1(el, props, animationModel) : (el.stopAnimation(), el.attr(props)); - } -} -function propsEqual(lastProps, newProps) { - if (isObject(lastProps) && isObject(newProps)) { - var equals_1 = true; - each$9(newProps, function(item, key) { - equals_1 = equals_1 && propsEqual(lastProps[key], item); - }); - return !!equals_1; - } else { - return lastProps === newProps; - } -} -function updateLabelShowHide(labelEl, axisPointerModel) { - labelEl[axisPointerModel.get(["label", "show"]) ? "show" : "hide"](); -} -function getHandleTransProps(trans) { - return { - x: trans.x || 0, - y: trans.y || 0, - rotation: trans.rotation || 0 - }; -} -function updateMandatoryProps(group, axisPointerModel, silent) { - var z = axisPointerModel.get("z"); - var zlevel = axisPointerModel.get("zlevel"); - group && group.traverse(function(el) { - if (el.type !== "group") { - z != null && (el.z = z); - zlevel != null && (el.zlevel = zlevel); - el.silent = silent; - } - }); -} -const BaseAxisPointer$1 = BaseAxisPointer; -function buildElStyle(axisPointerModel) { - var axisPointerType = axisPointerModel.get("type"); - var styleModel = axisPointerModel.getModel(axisPointerType + "Style"); - var style; - if (axisPointerType === "line") { - style = styleModel.getLineStyle(); - style.fill = null; - } else if (axisPointerType === "shadow") { - style = styleModel.getAreaStyle(); - style.stroke = null; - } - return style; -} -function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) { - var value = axisPointerModel.get("value"); - var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get("seriesDataIndices"), { - precision: axisPointerModel.get(["label", "precision"]), - formatter: axisPointerModel.get(["label", "formatter"]) - }); - var labelModel = axisPointerModel.getModel("label"); - var paddings = normalizeCssArray(labelModel.get("padding") || 0); - var font = labelModel.getFont(); - var textRect = getBoundingRect(text, font); - var position = labelPos.position; - var width = textRect.width + paddings[1] + paddings[3]; - var height = textRect.height + paddings[0] + paddings[2]; - var align = labelPos.align; - align === "right" && (position[0] -= width); - align === "center" && (position[0] -= width / 2); - var verticalAlign = labelPos.verticalAlign; - verticalAlign === "bottom" && (position[1] -= height); - verticalAlign === "middle" && (position[1] -= height / 2); - confineInContainer(position, width, height, api); - var bgColor = labelModel.get("backgroundColor"); - if (!bgColor || bgColor === "auto") { - bgColor = axisModel.get(["axisLine", "lineStyle", "color"]); - } - elOption.label = { - // shape: {x: 0, y: 0, width: width, height: height, r: labelModel.get('borderRadius')}, - x: position[0], - y: position[1], - style: createTextStyle(labelModel, { - text, - font, - fill: labelModel.getTextColor(), - padding: paddings, - backgroundColor: bgColor - }), - // Label should be over axisPointer. - z2: 10 - }; -} -function confineInContainer(position, width, height, api) { - var viewWidth = api.getWidth(); - var viewHeight = api.getHeight(); - position[0] = Math.min(position[0] + width, viewWidth) - width; - position[1] = Math.min(position[1] + height, viewHeight) - height; - position[0] = Math.max(position[0], 0); - position[1] = Math.max(position[1], 0); -} -function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) { - value = axis.scale.parse(value); - var text = axis.scale.getLabel({ - value - }, { - // If `precision` is set, width can be fixed (like '12.00500'), which - // helps to debounce when when moving label. - precision: opt.precision - }); - var formatter = opt.formatter; - if (formatter) { - var params_1 = { - value: getAxisRawValue(axis, { - value - }), - axisDimension: axis.dim, - axisIndex: axis.index, - seriesData: [] - }; - each$9(seriesDataIndices, function(idxItem) { - var series = ecModel.getSeriesByIndex(idxItem.seriesIndex); - var dataIndex = idxItem.dataIndexInside; - var dataParams = series && series.getDataParams(dataIndex); - dataParams && params_1.seriesData.push(dataParams); - }); - if (isString(formatter)) { - text = formatter.replace("{value}", text); - } else if (isFunction(formatter)) { - text = formatter(params_1); - } - } - return text; -} -function getTransformedPosition(axis, value, layoutInfo) { - var transform = create$1(); - rotate(transform, transform, layoutInfo.rotation); - translate(transform, transform, layoutInfo.position); - return applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform); -} -function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) { - var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection); - layoutInfo.labelMargin = axisPointerModel.get(["label", "margin"]); - buildLabelElOption(elOption, axisModel, axisPointerModel, api, { - position: getTransformedPosition(axisModel.axis, value, layoutInfo), - align: textLayout.textAlign, - verticalAlign: textLayout.textVerticalAlign - }); -} -function makeLineShape(p1, p2, xDimIndex) { - xDimIndex = xDimIndex || 0; - return { - x1: p1[xDimIndex], - y1: p1[1 - xDimIndex], - x2: p2[xDimIndex], - y2: p2[1 - xDimIndex] - }; -} -function makeRectShape(xy, wh, xDimIndex) { - xDimIndex = xDimIndex || 0; - return { - x: xy[xDimIndex], - y: xy[1 - xDimIndex], - width: wh[xDimIndex], - height: wh[1 - xDimIndex] - }; -} -function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) { - return { - cx, - cy, - r0, - r, - startAngle, - endAngle, - clockwise: true - }; -} -var CartesianAxisPointer = ( - /** @class */ - function(_super) { - __extends(CartesianAxisPointer2, _super); - function CartesianAxisPointer2() { - return _super !== null && _super.apply(this, arguments) || this; - } - CartesianAxisPointer2.prototype.makeElOption = function(elOption, value, axisModel, axisPointerModel, api) { - var axis = axisModel.axis; - var grid = axis.grid; - var axisPointerType = axisPointerModel.get("type"); - var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent(); - var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true)); - if (axisPointerType && axisPointerType !== "none") { - var elStyle = buildElStyle(axisPointerModel); - var pointerOption = pointerShapeBuilder$2[axisPointerType](axis, pixelValue, otherExtent); - pointerOption.style = elStyle; - elOption.graphicKey = pointerOption.type; - elOption.pointer = pointerOption; - } - var layoutInfo = layout$2(grid.model, axisModel); - buildCartesianSingleLabelElOption( - // @ts-ignore - value, - elOption, - layoutInfo, - axisModel, - axisPointerModel, - api - ); - }; - CartesianAxisPointer2.prototype.getHandleTransform = function(value, axisModel, axisPointerModel) { - var layoutInfo = layout$2(axisModel.axis.grid.model, axisModel, { - labelInside: false - }); - layoutInfo.labelMargin = axisPointerModel.get(["handle", "margin"]); - var pos = getTransformedPosition(axisModel.axis, value, layoutInfo); - return { - x: pos[0], - y: pos[1], - rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0) - }; - }; - CartesianAxisPointer2.prototype.updateHandleTransform = function(transform, delta, axisModel, axisPointerModel) { - var axis = axisModel.axis; - var grid = axis.grid; - var axisExtent = axis.getGlobalExtent(true); - var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent(); - var dimIndex = axis.dim === "x" ? 0 : 1; - var currPosition = [transform.x, transform.y]; - currPosition[dimIndex] += delta[dimIndex]; - currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]); - currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]); - var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2; - var cursorPoint = [cursorOtherValue, cursorOtherValue]; - cursorPoint[dimIndex] = currPosition[dimIndex]; - var tooltipOptions = [{ - verticalAlign: "middle" - }, { - align: "center" - }]; - return { - x: currPosition[0], - y: currPosition[1], - rotation: transform.rotation, - cursorPoint, - tooltipOption: tooltipOptions[dimIndex] - }; - }; - return CartesianAxisPointer2; - }(BaseAxisPointer$1) -); -function getCartesian(grid, axis) { - var opt = {}; - opt[axis.dim + "AxisIndex"] = axis.index; - return grid.getCartesian(opt); -} -var pointerShapeBuilder$2 = { - line: function(axis, pixelValue, otherExtent) { - var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis)); - return { - type: "Line", - subPixelOptimize: true, - shape: targetShape - }; - }, - shadow: function(axis, pixelValue, otherExtent) { - var bandWidth = Math.max(1, axis.getBandWidth()); - var span = otherExtent[1] - otherExtent[0]; - return { - type: "Rect", - shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis)) - }; - } -}; -function getAxisDimIndex(axis) { - return axis.dim === "x" ? 0 : 1; -} -const CartesianAxisPointer$1 = CartesianAxisPointer; -var AxisPointerModel = ( - /** @class */ - function(_super) { - __extends(AxisPointerModel2, _super); - function AxisPointerModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = AxisPointerModel2.type; - return _this; - } - AxisPointerModel2.type = "axisPointer"; - AxisPointerModel2.defaultOption = { - // 'auto' means that show when triggered by tooltip or handle. - show: "auto", - // zlevel: 0, - z: 50, - type: "line", - // axispointer triggered by tootip determine snap automatically, - // see `modelHelper`. - snap: false, - triggerTooltip: true, - value: null, - status: null, - link: [], - // Do not set 'auto' here, otherwise global animation: false - // will not effect at this axispointer. - animation: null, - animationDurationUpdate: 200, - lineStyle: { - color: "#B9BEC9", - width: 1, - type: "dashed" - }, - shadowStyle: { - color: "rgba(210,219,238,0.2)" - }, - label: { - show: true, - formatter: null, - precision: "auto", - margin: 3, - color: "#fff", - padding: [5, 7, 5, 7], - backgroundColor: "auto", - borderColor: null, - borderWidth: 0, - borderRadius: 3 - }, - handle: { - show: false, - // eslint-disable-next-line - icon: "M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z", - size: 45, - // handle margin is from symbol center to axis, which is stable when circular move. - margin: 50, - // color: '#1b8bbd' - // color: '#2f4554' - color: "#333", - shadowBlur: 3, - shadowColor: "#aaa", - shadowOffsetX: 0, - shadowOffsetY: 2, - // For mobile performance - throttle: 40 - } - }; - return AxisPointerModel2; - }(ComponentModel) -); -const AxisPointerModel$1 = AxisPointerModel; -var inner$a = makeInner(); -var each$8 = each$9; -function register(key, api, handler) { - if (env.node) { - return; - } - var zr = api.getZr(); - inner$a(zr).records || (inner$a(zr).records = {}); - initGlobalListeners(zr, api); - var record = inner$a(zr).records[key] || (inner$a(zr).records[key] = {}); - record.handler = handler; -} -function initGlobalListeners(zr, api) { - if (inner$a(zr).initialized) { - return; - } - inner$a(zr).initialized = true; - useHandler("click", curry$1(doEnter, "click")); - useHandler("mousemove", curry$1(doEnter, "mousemove")); - useHandler("globalout", onLeave); - function useHandler(eventType, cb) { - zr.on(eventType, function(e) { - var dis = makeDispatchAction$1(api); - each$8(inner$a(zr).records, function(record) { - record && cb(record, e, dis.dispatchAction); - }); - dispatchTooltipFinally(dis.pendings, api); - }); - } -} -function dispatchTooltipFinally(pendings, api) { - var showLen = pendings.showTip.length; - var hideLen = pendings.hideTip.length; - var actuallyPayload; - if (showLen) { - actuallyPayload = pendings.showTip[showLen - 1]; - } else if (hideLen) { - actuallyPayload = pendings.hideTip[hideLen - 1]; - } - if (actuallyPayload) { - actuallyPayload.dispatchAction = null; - api.dispatchAction(actuallyPayload); - } -} -function onLeave(record, e, dispatchAction2) { - record.handler("leave", null, dispatchAction2); -} -function doEnter(currTrigger, record, e, dispatchAction2) { - record.handler(currTrigger, e, dispatchAction2); -} -function makeDispatchAction$1(api) { - var pendings = { - showTip: [], - hideTip: [] - }; - var dispatchAction2 = function(payload) { - var pendingList = pendings[payload.type]; - if (pendingList) { - pendingList.push(payload); - } else { - payload.dispatchAction = dispatchAction2; - api.dispatchAction(payload); - } - }; - return { - dispatchAction: dispatchAction2, - pendings - }; -} -function unregister(key, api) { - if (env.node) { - return; - } - var zr = api.getZr(); - var record = (inner$a(zr).records || {})[key]; - if (record) { - inner$a(zr).records[key] = null; - } -} -var AxisPointerView = ( - /** @class */ - function(_super) { - __extends(AxisPointerView2, _super); - function AxisPointerView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = AxisPointerView2.type; - return _this; - } - AxisPointerView2.prototype.render = function(globalAxisPointerModel, ecModel, api) { - var globalTooltipModel = ecModel.getComponent("tooltip"); - var triggerOn = globalAxisPointerModel.get("triggerOn") || globalTooltipModel && globalTooltipModel.get("triggerOn") || "mousemove|click"; - register("axisPointer", api, function(currTrigger, e, dispatchAction2) { - if (triggerOn !== "none" && (currTrigger === "leave" || triggerOn.indexOf(currTrigger) >= 0)) { - dispatchAction2({ - type: "updateAxisPointer", - currTrigger, - x: e && e.offsetX, - y: e && e.offsetY - }); - } - }); - }; - AxisPointerView2.prototype.remove = function(ecModel, api) { - unregister("axisPointer", api); - }; - AxisPointerView2.prototype.dispose = function(ecModel, api) { - unregister("axisPointer", api); - }; - AxisPointerView2.type = "axisPointer"; - return AxisPointerView2; - }(ComponentView) -); -const AxisPointerView$1 = AxisPointerView; -function findPointFromSeries(finder, ecModel) { - var point = []; - var seriesIndex = finder.seriesIndex; - var seriesModel; - if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) { - return { - point: [] - }; - } - var data = seriesModel.getData(); - var dataIndex = queryDataIndex(data, finder); - if (dataIndex == null || dataIndex < 0 || isArray$1(dataIndex)) { - return { - point: [] - }; - } - var el = data.getItemGraphicEl(dataIndex); - var coordSys = seriesModel.coordinateSystem; - if (seriesModel.getTooltipPosition) { - point = seriesModel.getTooltipPosition(dataIndex) || []; - } else if (coordSys && coordSys.dataToPoint) { - if (finder.isStacked) { - var baseAxis = coordSys.getBaseAxis(); - var valueAxis = coordSys.getOtherAxis(baseAxis); - var valueAxisDim = valueAxis.dim; - var baseAxisDim = baseAxis.dim; - var baseDataOffset = valueAxisDim === "x" || valueAxisDim === "radius" ? 1 : 0; - var baseDim = data.mapDimension(baseAxisDim); - var stackedData = []; - stackedData[baseDataOffset] = data.get(baseDim, dataIndex); - stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo("stackResultDimension"), dataIndex); - point = coordSys.dataToPoint(stackedData) || []; - } else { - point = coordSys.dataToPoint(data.getValues(map(coordSys.dimensions, function(dim) { - return data.mapDimension(dim); - }), dataIndex)) || []; - } - } else if (el) { - var rect = el.getBoundingRect().clone(); - rect.applyTransform(el.transform); - point = [rect.x + rect.width / 2, rect.y + rect.height / 2]; - } - return { - point, - el - }; -} -var inner$9 = makeInner(); -function axisTrigger(payload, ecModel, api) { - var currTrigger = payload.currTrigger; - var point = [payload.x, payload.y]; - var finder = payload; - var dispatchAction2 = payload.dispatchAction || bind$1(api.dispatchAction, api); - var coordSysAxesInfo = ecModel.getComponent("axisPointer").coordSysAxesInfo; - if (!coordSysAxesInfo) { - return; - } - if (illegalPoint(point)) { - point = findPointFromSeries({ - seriesIndex: finder.seriesIndex, - // Do not use dataIndexInside from other ec instance. - // FIXME: auto detect it? - dataIndex: finder.dataIndex - }, ecModel).point; - } - var isIllegalPoint = illegalPoint(point); - var inputAxesInfo = finder.axesInfo; - var axesInfo = coordSysAxesInfo.axesInfo; - var shouldHide = currTrigger === "leave" || illegalPoint(point); - var outputPayload = {}; - var showValueMap = {}; - var dataByCoordSys = { - list: [], - map: {} - }; - var updaters = { - showPointer: curry$1(showPointer, showValueMap), - showTooltip: curry$1(showTooltip, dataByCoordSys) - }; - each$9(coordSysAxesInfo.coordSysMap, function(coordSys, coordSysKey) { - var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point); - each$9(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function(axisInfo, key) { - var axis = axisInfo.axis; - var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo); - if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) { - var val = inputAxisInfo && inputAxisInfo.value; - if (val == null && !isIllegalPoint) { - val = axis.pointToData(point); - } - val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload); - } - }); - }); - var linkTriggers = {}; - each$9(axesInfo, function(tarAxisInfo, tarKey) { - var linkGroup = tarAxisInfo.linkGroup; - if (linkGroup && !showValueMap[tarKey]) { - each$9(linkGroup.axesInfo, function(srcAxisInfo, srcKey) { - var srcValItem = showValueMap[srcKey]; - if (srcAxisInfo !== tarAxisInfo && srcValItem) { - var val = srcValItem.value; - linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo)))); - linkTriggers[tarAxisInfo.key] = val; - } - }); - } - }); - each$9(linkTriggers, function(val, tarKey) { - processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload); - }); - updateModelActually(showValueMap, axesInfo, outputPayload); - dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction2); - dispatchHighDownActually(axesInfo, dispatchAction2, api); - return outputPayload; -} -function processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) { - var axis = axisInfo.axis; - if (axis.scale.isBlank() || !axis.containData(newValue)) { - return; - } - if (!axisInfo.involveSeries) { - updaters.showPointer(axisInfo, newValue); - return; - } - var payloadInfo = buildPayloadsBySeries(newValue, axisInfo); - var payloadBatch = payloadInfo.payloadBatch; - var snapToValue = payloadInfo.snapToValue; - if (payloadBatch[0] && outputFinder.seriesIndex == null) { - extend(outputFinder, payloadBatch[0]); - } - if (!noSnap && axisInfo.snap) { - if (axis.containData(snapToValue) && snapToValue != null) { - newValue = snapToValue; - } - } - updaters.showPointer(axisInfo, newValue, payloadBatch); - updaters.showTooltip(axisInfo, payloadInfo, snapToValue); -} -function buildPayloadsBySeries(value, axisInfo) { - var axis = axisInfo.axis; - var dim = axis.dim; - var snapToValue = value; - var payloadBatch = []; - var minDist = Number.MAX_VALUE; - var minDiff = -1; - each$9(axisInfo.seriesModels, function(series, idx) { - var dataDim = series.getData().mapDimensionsAll(dim); - var seriesNestestValue; - var dataIndices; - if (series.getAxisTooltipData) { - var result = series.getAxisTooltipData(dataDim, value, axis); - dataIndices = result.dataIndices; - seriesNestestValue = result.nestestValue; - } else { - dataIndices = series.getData().indicesOfNearest( - dataDim[0], - value, - // Add a threshold to avoid find the wrong dataIndex - // when data length is not same. - // false, - axis.type === "category" ? 0.5 : null - ); - if (!dataIndices.length) { - return; - } - seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]); - } - if (seriesNestestValue == null || !isFinite(seriesNestestValue)) { - return; - } - var diff = value - seriesNestestValue; - var dist = Math.abs(diff); - if (dist <= minDist) { - if (dist < minDist || diff >= 0 && minDiff < 0) { - minDist = dist; - minDiff = diff; - snapToValue = seriesNestestValue; - payloadBatch.length = 0; - } - each$9(dataIndices, function(dataIndex) { - payloadBatch.push({ - seriesIndex: series.seriesIndex, - dataIndexInside: dataIndex, - dataIndex: series.getData().getRawIndex(dataIndex) - }); - }); - } - }); - return { - payloadBatch, - snapToValue - }; -} -function showPointer(showValueMap, axisInfo, value, payloadBatch) { - showValueMap[axisInfo.key] = { - value, - payloadBatch - }; -} -function showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) { - var payloadBatch = payloadInfo.payloadBatch; - var axis = axisInfo.axis; - var axisModel = axis.model; - var axisPointerModel = axisInfo.axisPointerModel; - if (!axisInfo.triggerTooltip || !payloadBatch.length) { - return; - } - var coordSysModel = axisInfo.coordSys.model; - var coordSysKey = makeKey(coordSysModel); - var coordSysItem = dataByCoordSys.map[coordSysKey]; - if (!coordSysItem) { - coordSysItem = dataByCoordSys.map[coordSysKey] = { - coordSysId: coordSysModel.id, - coordSysIndex: coordSysModel.componentIndex, - coordSysType: coordSysModel.type, - coordSysMainType: coordSysModel.mainType, - dataByAxis: [] - }; - dataByCoordSys.list.push(coordSysItem); - } - coordSysItem.dataByAxis.push({ - axisDim: axis.dim, - axisIndex: axisModel.componentIndex, - axisType: axisModel.type, - axisId: axisModel.id, - value, - // Caustion: viewHelper.getValueLabel is actually on "view stage", which - // depends that all models have been updated. So it should not be performed - // here. Considering axisPointerModel used here is volatile, which is hard - // to be retrieve in TooltipView, we prepare parameters here. - valueLabelOpt: { - precision: axisPointerModel.get(["label", "precision"]), - formatter: axisPointerModel.get(["label", "formatter"]) - }, - seriesDataIndices: payloadBatch.slice() - }); -} -function updateModelActually(showValueMap, axesInfo, outputPayload) { - var outputAxesInfo = outputPayload.axesInfo = []; - each$9(axesInfo, function(axisInfo, key) { - var option = axisInfo.axisPointerModel.option; - var valItem = showValueMap[key]; - if (valItem) { - !axisInfo.useHandle && (option.status = "show"); - option.value = valItem.value; - option.seriesDataIndices = (valItem.payloadBatch || []).slice(); - } else { - !axisInfo.useHandle && (option.status = "hide"); - } - option.status === "show" && outputAxesInfo.push({ - axisDim: axisInfo.axis.dim, - axisIndex: axisInfo.axis.model.componentIndex, - value: option.value - }); - }); -} -function dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction2) { - if (illegalPoint(point) || !dataByCoordSys.list.length) { - dispatchAction2({ - type: "hideTip" - }); - return; - } - var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {}; - dispatchAction2({ - type: "showTip", - escapeConnect: true, - x: point[0], - y: point[1], - tooltipOption: payload.tooltipOption, - position: payload.position, - dataIndexInside: sampleItem.dataIndexInside, - dataIndex: sampleItem.dataIndex, - seriesIndex: sampleItem.seriesIndex, - dataByCoordSys: dataByCoordSys.list - }); -} -function dispatchHighDownActually(axesInfo, dispatchAction2, api) { - var zr = api.getZr(); - var highDownKey = "axisPointerLastHighlights"; - var lastHighlights = inner$9(zr)[highDownKey] || {}; - var newHighlights = inner$9(zr)[highDownKey] = {}; - each$9(axesInfo, function(axisInfo, key) { - var option = axisInfo.axisPointerModel.option; - option.status === "show" && each$9(option.seriesDataIndices, function(batchItem) { - var key2 = batchItem.seriesIndex + " | " + batchItem.dataIndex; - newHighlights[key2] = batchItem; - }); - }); - var toHighlight = []; - var toDownplay = []; - each$9(lastHighlights, function(batchItem, key) { - !newHighlights[key] && toDownplay.push(batchItem); - }); - each$9(newHighlights, function(batchItem, key) { - !lastHighlights[key] && toHighlight.push(batchItem); - }); - toDownplay.length && api.dispatchAction({ - type: "downplay", - escapeConnect: true, - // Not blur others when highlight in axisPointer. - notBlur: true, - batch: toDownplay - }); - toHighlight.length && api.dispatchAction({ - type: "highlight", - escapeConnect: true, - // Not blur others when highlight in axisPointer. - notBlur: true, - batch: toHighlight - }); -} -function findInputAxisInfo(inputAxesInfo, axisInfo) { - for (var i = 0; i < (inputAxesInfo || []).length; i++) { - var inputAxisInfo = inputAxesInfo[i]; - if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) { - return inputAxisInfo; - } - } -} -function makeMapperParam(axisInfo) { - var axisModel = axisInfo.axis.model; - var item = {}; - var dim = item.axisDim = axisInfo.axis.dim; - item.axisIndex = item[dim + "AxisIndex"] = axisModel.componentIndex; - item.axisName = item[dim + "AxisName"] = axisModel.name; - item.axisId = item[dim + "AxisId"] = axisModel.id; - return item; -} -function illegalPoint(point) { - return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]); -} -function install$q(registers) { - AxisView.registerAxisPointerClass("CartesianAxisPointer", CartesianAxisPointer$1); - registers.registerComponentModel(AxisPointerModel$1); - registers.registerComponentView(AxisPointerView$1); - registers.registerPreprocessor(function(option) { - if (option) { - (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {}); - var link = option.axisPointer.link; - if (link && !isArray$1(link)) { - option.axisPointer.link = [link]; - } - } - }); - registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function(ecModel, api) { - ecModel.getComponent("axisPointer").coordSysAxesInfo = collect(ecModel, api); - }); - registers.registerAction({ - type: "updateAxisPointer", - event: "updateAxisPointer", - update: ":updateAxisPointer" - }, axisTrigger); -} -function install$p(registers) { - use(install$r); - use(install$q); -} -var PolarAxisPointer = ( - /** @class */ - function(_super) { - __extends(PolarAxisPointer2, _super); - function PolarAxisPointer2() { - return _super !== null && _super.apply(this, arguments) || this; - } - PolarAxisPointer2.prototype.makeElOption = function(elOption, value, axisModel, axisPointerModel, api) { - var axis = axisModel.axis; - if (axis.dim === "angle") { - this.animationThreshold = Math.PI / 18; - } - var polar = axis.polar; - var otherAxis = polar.getOtherAxis(axis); - var otherExtent = otherAxis.getExtent(); - var coordValue = axis.dataToCoord(value); - var axisPointerType = axisPointerModel.get("type"); - if (axisPointerType && axisPointerType !== "none") { - var elStyle = buildElStyle(axisPointerModel); - var pointerOption = pointerShapeBuilder$1[axisPointerType](axis, polar, coordValue, otherExtent); - pointerOption.style = elStyle; - elOption.graphicKey = pointerOption.type; - elOption.pointer = pointerOption; - } - var labelMargin = axisPointerModel.get(["label", "margin"]); - var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin); - buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos); - }; - return PolarAxisPointer2; - }(BaseAxisPointer$1) -); -function getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) { - var axis = axisModel.axis; - var coord = axis.dataToCoord(value); - var axisAngle = polar.getAngleAxis().getExtent()[0]; - axisAngle = axisAngle / 180 * Math.PI; - var radiusExtent = polar.getRadiusAxis().getExtent(); - var position; - var align; - var verticalAlign; - if (axis.dim === "radius") { - var transform = create$1(); - rotate(transform, transform, axisAngle); - translate(transform, transform, [polar.cx, polar.cy]); - position = applyTransform([coord, -labelMargin], transform); - var labelRotation = axisModel.getModel("axisLabel").get("rotate") || 0; - var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1); - align = labelLayout.textAlign; - verticalAlign = labelLayout.textVerticalAlign; - } else { - var r = radiusExtent[1]; - position = polar.coordToPoint([r + labelMargin, coord]); - var cx = polar.cx; - var cy = polar.cy; - align = Math.abs(position[0] - cx) / r < 0.3 ? "center" : position[0] > cx ? "left" : "right"; - verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? "middle" : position[1] > cy ? "top" : "bottom"; - } - return { - position, - align, - verticalAlign - }; -} -var pointerShapeBuilder$1 = { - line: function(axis, polar, coordValue, otherExtent) { - return axis.dim === "angle" ? { - type: "Line", - shape: makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue])) - } : { - type: "Circle", - shape: { - cx: polar.cx, - cy: polar.cy, - r: coordValue - } - }; - }, - shadow: function(axis, polar, coordValue, otherExtent) { - var bandWidth = Math.max(1, axis.getBandWidth()); - var radian = Math.PI / 180; - return axis.dim === "angle" ? { - type: "Sector", - shape: makeSectorShape( - polar.cx, - polar.cy, - otherExtent[0], - otherExtent[1], - // In ECharts y is negative if angle is positive - (-coordValue - bandWidth / 2) * radian, - (-coordValue + bandWidth / 2) * radian - ) - } : { - type: "Sector", - shape: makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2) - }; - } -}; -const PolarAxisPointer$1 = PolarAxisPointer; -var PolarModel = ( - /** @class */ - function(_super) { - __extends(PolarModel2, _super); - function PolarModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = PolarModel2.type; - return _this; - } - PolarModel2.prototype.findAxisModel = function(axisType) { - var foundAxisModel; - var ecModel = this.ecModel; - ecModel.eachComponent(axisType, function(axisModel) { - if (axisModel.getCoordSysModel() === this) { - foundAxisModel = axisModel; - } - }, this); - return foundAxisModel; - }; - PolarModel2.type = "polar"; - PolarModel2.dependencies = ["radiusAxis", "angleAxis"]; - PolarModel2.defaultOption = { - // zlevel: 0, - z: 0, - center: ["50%", "50%"], - radius: "80%" - }; - return PolarModel2; - }(ComponentModel) -); -const PolarModel$1 = PolarModel; -var PolarAxisModel = ( - /** @class */ - function(_super) { - __extends(PolarAxisModel2, _super); - function PolarAxisModel2() { - return _super !== null && _super.apply(this, arguments) || this; - } - PolarAxisModel2.prototype.getCoordSysModel = function() { - return this.getReferringComponents("polar", SINGLE_REFERRING).models[0]; - }; - PolarAxisModel2.type = "polarAxis"; - return PolarAxisModel2; - }(ComponentModel) -); -mixin(PolarAxisModel, AxisModelCommonMixin); -var AngleAxisModel = ( - /** @class */ - function(_super) { - __extends(AngleAxisModel2, _super); - function AngleAxisModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = AngleAxisModel2.type; - return _this; - } - AngleAxisModel2.type = "angleAxis"; - return AngleAxisModel2; - }(PolarAxisModel) -); -var RadiusAxisModel = ( - /** @class */ - function(_super) { - __extends(RadiusAxisModel2, _super); - function RadiusAxisModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = RadiusAxisModel2.type; - return _this; - } - RadiusAxisModel2.type = "radiusAxis"; - return RadiusAxisModel2; - }(PolarAxisModel) -); -var RadiusAxis = ( - /** @class */ - function(_super) { - __extends(RadiusAxis2, _super); - function RadiusAxis2(scale, radiusExtent) { - return _super.call(this, "radius", scale, radiusExtent) || this; - } - RadiusAxis2.prototype.pointToData = function(point, clamp) { - return this.polar.pointToData(point, clamp)[this.dim === "radius" ? 0 : 1]; - }; - return RadiusAxis2; - }(Axis) -); -RadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord; -RadiusAxis.prototype.radiusToData = Axis.prototype.coordToData; -const RadiusAxis$1 = RadiusAxis; -var inner$8 = makeInner(); -var AngleAxis = ( - /** @class */ - function(_super) { - __extends(AngleAxis2, _super); - function AngleAxis2(scale, angleExtent) { - return _super.call(this, "angle", scale, angleExtent || [0, 360]) || this; - } - AngleAxis2.prototype.pointToData = function(point, clamp) { - return this.polar.pointToData(point, clamp)[this.dim === "radius" ? 0 : 1]; - }; - AngleAxis2.prototype.calculateCategoryInterval = function() { - var axis = this; - var labelModel = axis.getLabelModel(); - var ordinalScale = axis.scale; - var ordinalExtent = ordinalScale.getExtent(); - var tickCount = ordinalScale.count(); - if (ordinalExtent[1] - ordinalExtent[0] < 1) { - return 0; - } - var tickValue = ordinalExtent[0]; - var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue); - var unitH = Math.abs(unitSpan); - var rect = getBoundingRect(tickValue == null ? "" : tickValue + "", labelModel.getFont(), "center", "top"); - var maxH = Math.max(rect.height, 7); - var dh = maxH / unitH; - isNaN(dh) && (dh = Infinity); - var interval = Math.max(0, Math.floor(dh)); - var cache = inner$8(axis.model); - var lastAutoInterval = cache.lastAutoInterval; - var lastTickCount = cache.lastTickCount; - if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval) { - interval = lastAutoInterval; - } else { - cache.lastTickCount = tickCount; - cache.lastAutoInterval = interval; - } - return interval; - }; - return AngleAxis2; - }(Axis) -); -AngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord; -AngleAxis.prototype.angleToData = Axis.prototype.coordToData; -const AngleAxis$1 = AngleAxis; -var polarDimensions = ["radius", "angle"]; -var Polar = ( - /** @class */ - function() { - function Polar2(name) { - this.dimensions = polarDimensions; - this.type = "polar"; - this.cx = 0; - this.cy = 0; - this._radiusAxis = new RadiusAxis$1(); - this._angleAxis = new AngleAxis$1(); - this.axisPointerEnabled = true; - this.name = name || ""; - this._radiusAxis.polar = this._angleAxis.polar = this; - } - Polar2.prototype.containPoint = function(point) { - var coord = this.pointToCoord(point); - return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]); - }; - Polar2.prototype.containData = function(data) { - return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]); - }; - Polar2.prototype.getAxis = function(dim) { - var key = "_" + dim + "Axis"; - return this[key]; - }; - Polar2.prototype.getAxes = function() { - return [this._radiusAxis, this._angleAxis]; - }; - Polar2.prototype.getAxesByScale = function(scaleType) { - var axes = []; - var angleAxis = this._angleAxis; - var radiusAxis = this._radiusAxis; - angleAxis.scale.type === scaleType && axes.push(angleAxis); - radiusAxis.scale.type === scaleType && axes.push(radiusAxis); - return axes; - }; - Polar2.prototype.getAngleAxis = function() { - return this._angleAxis; - }; - Polar2.prototype.getRadiusAxis = function() { - return this._radiusAxis; - }; - Polar2.prototype.getOtherAxis = function(axis) { - var angleAxis = this._angleAxis; - return axis === angleAxis ? this._radiusAxis : angleAxis; - }; - Polar2.prototype.getBaseAxis = function() { - return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAngleAxis(); - }; - Polar2.prototype.getTooltipAxes = function(dim) { - var baseAxis = dim != null && dim !== "auto" ? this.getAxis(dim) : this.getBaseAxis(); - return { - baseAxes: [baseAxis], - otherAxes: [this.getOtherAxis(baseAxis)] - }; - }; - Polar2.prototype.dataToPoint = function(data, clamp) { - return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]); - }; - Polar2.prototype.pointToData = function(point, clamp) { - var coord = this.pointToCoord(point); - return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)]; - }; - Polar2.prototype.pointToCoord = function(point) { - var dx = point[0] - this.cx; - var dy = point[1] - this.cy; - var angleAxis = this.getAngleAxis(); - var extent = angleAxis.getExtent(); - var minAngle = Math.min(extent[0], extent[1]); - var maxAngle = Math.max(extent[0], extent[1]); - angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360; - var radius = Math.sqrt(dx * dx + dy * dy); - dx /= radius; - dy /= radius; - var radian = Math.atan2(-dy, dx) / Math.PI * 180; - var dir = radian < minAngle ? 1 : -1; - while (radian < minAngle || radian > maxAngle) { - radian += dir * 360; - } - return [radius, radian]; - }; - Polar2.prototype.coordToPoint = function(coord) { - var radius = coord[0]; - var radian = coord[1] / 180 * Math.PI; - var x = Math.cos(radian) * radius + this.cx; - var y = -Math.sin(radian) * radius + this.cy; - return [x, y]; - }; - Polar2.prototype.getArea = function() { - var angleAxis = this.getAngleAxis(); - var radiusAxis = this.getRadiusAxis(); - var radiusExtent = radiusAxis.getExtent().slice(); - radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse(); - var angleExtent = angleAxis.getExtent(); - var RADIAN = Math.PI / 180; - return { - cx: this.cx, - cy: this.cy, - r0: radiusExtent[0], - r: radiusExtent[1], - startAngle: -angleExtent[0] * RADIAN, - endAngle: -angleExtent[1] * RADIAN, - clockwise: angleAxis.inverse, - contain: function(x, y) { - var dx = x - this.cx; - var dy = y - this.cy; - var d2 = dx * dx + dy * dy - 1e-4; - var r = this.r; - var r0 = this.r0; - return d2 <= r * r && d2 >= r0 * r0; - } - }; - }; - Polar2.prototype.convertToPixel = function(ecModel, finder, value) { - var coordSys = getCoordSys$2(finder); - return coordSys === this ? this.dataToPoint(value) : null; - }; - Polar2.prototype.convertFromPixel = function(ecModel, finder, pixel) { - var coordSys = getCoordSys$2(finder); - return coordSys === this ? this.pointToData(pixel) : null; - }; - return Polar2; - }() -); -function getCoordSys$2(finder) { - var seriesModel = finder.seriesModel; - var polarModel = finder.polarModel; - return polarModel && polarModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem; -} -const Polar$1 = Polar; -function resizePolar(polar, polarModel, api) { - var center = polarModel.get("center"); - var width = api.getWidth(); - var height = api.getHeight(); - polar.cx = parsePercent(center[0], width); - polar.cy = parsePercent(center[1], height); - var radiusAxis = polar.getRadiusAxis(); - var size = Math.min(width, height) / 2; - var radius = polarModel.get("radius"); - if (radius == null) { - radius = [0, "100%"]; - } else if (!isArray$1(radius)) { - radius = [0, radius]; - } - var parsedRadius = [parsePercent(radius[0], size), parsePercent(radius[1], size)]; - radiusAxis.inverse ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0]) : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]); -} -function updatePolarScale(ecModel, api) { - var polar = this; - var angleAxis = polar.getAngleAxis(); - var radiusAxis = polar.getRadiusAxis(); - angleAxis.scale.setExtent(Infinity, -Infinity); - radiusAxis.scale.setExtent(Infinity, -Infinity); - ecModel.eachSeries(function(seriesModel) { - if (seriesModel.coordinateSystem === polar) { - var data_1 = seriesModel.getData(); - each$9(getDataDimensionsOnAxis(data_1, "radius"), function(dim) { - radiusAxis.scale.unionExtentFromData(data_1, dim); - }); - each$9(getDataDimensionsOnAxis(data_1, "angle"), function(dim) { - angleAxis.scale.unionExtentFromData(data_1, dim); - }); - } - }); - niceScaleExtent(angleAxis.scale, angleAxis.model); - niceScaleExtent(radiusAxis.scale, radiusAxis.model); - if (angleAxis.type === "category" && !angleAxis.onBand) { - var extent = angleAxis.getExtent(); - var diff = 360 / angleAxis.scale.count(); - angleAxis.inverse ? extent[1] += diff : extent[1] -= diff; - angleAxis.setExtent(extent[0], extent[1]); - } -} -function isAngleAxisModel(axisModel) { - return axisModel.mainType === "angleAxis"; -} -function setAxis(axis, axisModel) { - axis.type = axisModel.get("type"); - axis.scale = createScaleByModel$1(axisModel); - axis.onBand = axisModel.get("boundaryGap") && axis.type === "category"; - axis.inverse = axisModel.get("inverse"); - if (isAngleAxisModel(axisModel)) { - axis.inverse = axis.inverse !== axisModel.get("clockwise"); - var startAngle = axisModel.get("startAngle"); - axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360)); - } - axisModel.axis = axis; - axis.model = axisModel; -} -var polarCreator = { - dimensions: polarDimensions, - create: function(ecModel, api) { - var polarList = []; - ecModel.eachComponent("polar", function(polarModel, idx) { - var polar = new Polar$1(idx + ""); - polar.update = updatePolarScale; - var radiusAxis = polar.getRadiusAxis(); - var angleAxis = polar.getAngleAxis(); - var radiusAxisModel = polarModel.findAxisModel("radiusAxis"); - var angleAxisModel = polarModel.findAxisModel("angleAxis"); - setAxis(radiusAxis, radiusAxisModel); - setAxis(angleAxis, angleAxisModel); - resizePolar(polar, polarModel, api); - polarList.push(polar); - polarModel.coordinateSystem = polar; - polar.model = polarModel; - }); - ecModel.eachSeries(function(seriesModel) { - if (seriesModel.get("coordinateSystem") === "polar") { - var polarModel = seriesModel.getReferringComponents("polar", SINGLE_REFERRING).models[0]; - seriesModel.coordinateSystem = polarModel.coordinateSystem; - } - }); - return polarList; - } -}; -const polarCreator$1 = polarCreator; -var elementList = ["axisLine", "axisLabel", "axisTick", "minorTick", "splitLine", "minorSplitLine", "splitArea"]; -function getAxisLineShape(polar, rExtent, angle) { - rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse()); - var start = polar.coordToPoint([rExtent[0], angle]); - var end = polar.coordToPoint([rExtent[1], angle]); - return { - x1: start[0], - y1: start[1], - x2: end[0], - y2: end[1] - }; -} -function getRadiusIdx(polar) { - var radiusAxis = polar.getRadiusAxis(); - return radiusAxis.inverse ? 0 : 1; -} -function fixAngleOverlap(list) { - var firstItem = list[0]; - var lastItem = list[list.length - 1]; - if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) { - list.pop(); - } -} -var AngleAxisView = ( - /** @class */ - function(_super) { - __extends(AngleAxisView2, _super); - function AngleAxisView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = AngleAxisView2.type; - _this.axisPointerClass = "PolarAxisPointer"; - return _this; - } - AngleAxisView2.prototype.render = function(angleAxisModel, ecModel) { - this.group.removeAll(); - if (!angleAxisModel.get("show")) { - return; - } - var angleAxis = angleAxisModel.axis; - var polar = angleAxis.polar; - var radiusExtent = polar.getRadiusAxis().getExtent(); - var ticksAngles = angleAxis.getTicksCoords(); - var minorTickAngles = angleAxis.getMinorTicksCoords(); - var labels = map(angleAxis.getViewLabels(), function(labelItem) { - labelItem = clone$1(labelItem); - var scale = angleAxis.scale; - var tickValue = scale.type === "ordinal" ? scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue; - labelItem.coord = angleAxis.dataToCoord(tickValue); - return labelItem; - }); - fixAngleOverlap(labels); - fixAngleOverlap(ticksAngles); - each$9(elementList, function(name) { - if (angleAxisModel.get([name, "show"]) && (!angleAxis.scale.isBlank() || name === "axisLine")) { - angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels); - } - }, this); - }; - AngleAxisView2.type = "angleAxis"; - return AngleAxisView2; - }(AxisView) -); -var angelAxisElementsBuilders = { - axisLine: function(group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) { - var lineStyleModel = angleAxisModel.getModel(["axisLine", "lineStyle"]); - var rId = getRadiusIdx(polar); - var r0Id = rId ? 0 : 1; - var shape; - if (radiusExtent[r0Id] === 0) { - shape = new Circle({ - shape: { - cx: polar.cx, - cy: polar.cy, - r: radiusExtent[rId] - }, - style: lineStyleModel.getLineStyle(), - z2: 1, - silent: true - }); - } else { - shape = new Ring({ - shape: { - cx: polar.cx, - cy: polar.cy, - r: radiusExtent[rId], - r0: radiusExtent[r0Id] - }, - style: lineStyleModel.getLineStyle(), - z2: 1, - silent: true - }); - } - shape.style.fill = null; - group.add(shape); - }, - axisTick: function(group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) { - var tickModel = angleAxisModel.getModel("axisTick"); - var tickLen = (tickModel.get("inside") ? -1 : 1) * tickModel.get("length"); - var radius = radiusExtent[getRadiusIdx(polar)]; - var lines = map(ticksAngles, function(tickAngleItem) { - return new Line({ - shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord) - }); - }); - group.add(mergePath(lines, { - style: defaults(tickModel.getModel("lineStyle").getLineStyle(), { - stroke: angleAxisModel.get(["axisLine", "lineStyle", "color"]) - }) - })); - }, - minorTick: function(group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) { - if (!minorTickAngles.length) { - return; - } - var tickModel = angleAxisModel.getModel("axisTick"); - var minorTickModel = angleAxisModel.getModel("minorTick"); - var tickLen = (tickModel.get("inside") ? -1 : 1) * minorTickModel.get("length"); - var radius = radiusExtent[getRadiusIdx(polar)]; - var lines = []; - for (var i = 0; i < minorTickAngles.length; i++) { - for (var k = 0; k < minorTickAngles[i].length; k++) { - lines.push(new Line({ - shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord) - })); - } - } - group.add(mergePath(lines, { - style: defaults(minorTickModel.getModel("lineStyle").getLineStyle(), defaults(tickModel.getLineStyle(), { - stroke: angleAxisModel.get(["axisLine", "lineStyle", "color"]) - })) - })); - }, - axisLabel: function(group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) { - var rawCategoryData = angleAxisModel.getCategories(true); - var commonLabelModel = angleAxisModel.getModel("axisLabel"); - var labelMargin = commonLabelModel.get("margin"); - var triggerEvent = angleAxisModel.get("triggerEvent"); - each$9(labels, function(labelItem, idx) { - var labelModel = commonLabelModel; - var tickValue = labelItem.tickValue; - var r = radiusExtent[getRadiusIdx(polar)]; - var p = polar.coordToPoint([r + labelMargin, labelItem.coord]); - var cx = polar.cx; - var cy = polar.cy; - var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? "center" : p[0] > cx ? "left" : "right"; - var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? "middle" : p[1] > cy ? "top" : "bottom"; - if (rawCategoryData && rawCategoryData[tickValue]) { - var rawCategoryItem = rawCategoryData[tickValue]; - if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) { - labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel); - } - } - var textEl = new ZRText({ - silent: AxisBuilder.isLabelSilent(angleAxisModel), - style: createTextStyle(labelModel, { - x: p[0], - y: p[1], - fill: labelModel.getTextColor() || angleAxisModel.get(["axisLine", "lineStyle", "color"]), - text: labelItem.formattedLabel, - align: labelTextAlign, - verticalAlign: labelTextVerticalAlign - }) - }); - group.add(textEl); - if (triggerEvent) { - var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel); - eventData.targetType = "axisLabel"; - eventData.value = labelItem.rawLabel; - getECData(textEl).eventData = eventData; - } - }, this); - }, - splitLine: function(group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) { - var splitLineModel = angleAxisModel.getModel("splitLine"); - var lineStyleModel = splitLineModel.getModel("lineStyle"); - var lineColors = lineStyleModel.get("color"); - var lineCount = 0; - lineColors = lineColors instanceof Array ? lineColors : [lineColors]; - var splitLines = []; - for (var i = 0; i < ticksAngles.length; i++) { - var colorIndex = lineCount++ % lineColors.length; - splitLines[colorIndex] = splitLines[colorIndex] || []; - splitLines[colorIndex].push(new Line({ - shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord) - })); - } - for (var i = 0; i < splitLines.length; i++) { - group.add(mergePath(splitLines[i], { - style: defaults({ - stroke: lineColors[i % lineColors.length] - }, lineStyleModel.getLineStyle()), - silent: true, - z: angleAxisModel.get("z") - })); - } - }, - minorSplitLine: function(group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) { - if (!minorTickAngles.length) { - return; - } - var minorSplitLineModel = angleAxisModel.getModel("minorSplitLine"); - var lineStyleModel = minorSplitLineModel.getModel("lineStyle"); - var lines = []; - for (var i = 0; i < minorTickAngles.length; i++) { - for (var k = 0; k < minorTickAngles[i].length; k++) { - lines.push(new Line({ - shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord) - })); - } - } - group.add(mergePath(lines, { - style: lineStyleModel.getLineStyle(), - silent: true, - z: angleAxisModel.get("z") - })); - }, - splitArea: function(group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) { - if (!ticksAngles.length) { - return; - } - var splitAreaModel = angleAxisModel.getModel("splitArea"); - var areaStyleModel = splitAreaModel.getModel("areaStyle"); - var areaColors = areaStyleModel.get("color"); - var lineCount = 0; - areaColors = areaColors instanceof Array ? areaColors : [areaColors]; - var splitAreas = []; - var RADIAN = Math.PI / 180; - var prevAngle = -ticksAngles[0].coord * RADIAN; - var r0 = Math.min(radiusExtent[0], radiusExtent[1]); - var r1 = Math.max(radiusExtent[0], radiusExtent[1]); - var clockwise = angleAxisModel.get("clockwise"); - for (var i = 1, len = ticksAngles.length; i <= len; i++) { - var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord; - var colorIndex = lineCount++ % areaColors.length; - splitAreas[colorIndex] = splitAreas[colorIndex] || []; - splitAreas[colorIndex].push(new Sector({ - shape: { - cx: polar.cx, - cy: polar.cy, - r0, - r: r1, - startAngle: prevAngle, - endAngle: -coord * RADIAN, - clockwise - }, - silent: true - })); - prevAngle = -coord * RADIAN; - } - for (var i = 0; i < splitAreas.length; i++) { - group.add(mergePath(splitAreas[i], { - style: defaults({ - fill: areaColors[i % areaColors.length] - }, areaStyleModel.getAreaStyle()), - silent: true - })); - } - } -}; -const AngleAxisView$1 = AngleAxisView; -var axisBuilderAttrs$1 = ["axisLine", "axisTickLabel", "axisName"]; -var selfBuilderAttrs$1 = ["splitLine", "splitArea", "minorSplitLine"]; -var RadiusAxisView = ( - /** @class */ - function(_super) { - __extends(RadiusAxisView2, _super); - function RadiusAxisView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = RadiusAxisView2.type; - _this.axisPointerClass = "PolarAxisPointer"; - return _this; - } - RadiusAxisView2.prototype.render = function(radiusAxisModel, ecModel) { - this.group.removeAll(); - if (!radiusAxisModel.get("show")) { - return; - } - var oldAxisGroup = this._axisGroup; - var newAxisGroup = this._axisGroup = new Group$2(); - this.group.add(newAxisGroup); - var radiusAxis = radiusAxisModel.axis; - var polar = radiusAxis.polar; - var angleAxis = polar.getAngleAxis(); - var ticksCoords = radiusAxis.getTicksCoords(); - var minorTicksCoords = radiusAxis.getMinorTicksCoords(); - var axisAngle = angleAxis.getExtent()[0]; - var radiusExtent = radiusAxis.getExtent(); - var layout2 = layoutAxis(polar, radiusAxisModel, axisAngle); - var axisBuilder = new AxisBuilder(radiusAxisModel, layout2); - each$9(axisBuilderAttrs$1, axisBuilder.add, axisBuilder); - newAxisGroup.add(axisBuilder.getGroup()); - groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel); - each$9(selfBuilderAttrs$1, function(name) { - if (radiusAxisModel.get([name, "show"]) && !radiusAxis.scale.isBlank()) { - axisElementBuilders$1[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords); - } - }, this); - }; - RadiusAxisView2.type = "radiusAxis"; - return RadiusAxisView2; - }(AxisView) -); -var axisElementBuilders$1 = { - splitLine: function(group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) { - var splitLineModel = radiusAxisModel.getModel("splitLine"); - var lineStyleModel = splitLineModel.getModel("lineStyle"); - var lineColors = lineStyleModel.get("color"); - var lineCount = 0; - lineColors = lineColors instanceof Array ? lineColors : [lineColors]; - var splitLines = []; - for (var i = 0; i < ticksCoords.length; i++) { - var colorIndex = lineCount++ % lineColors.length; - splitLines[colorIndex] = splitLines[colorIndex] || []; - splitLines[colorIndex].push(new Circle({ - shape: { - cx: polar.cx, - cy: polar.cy, - // ensure circle radius >= 0 - r: Math.max(ticksCoords[i].coord, 0) - } - })); - } - for (var i = 0; i < splitLines.length; i++) { - group.add(mergePath(splitLines[i], { - style: defaults({ - stroke: lineColors[i % lineColors.length], - fill: null - }, lineStyleModel.getLineStyle()), - silent: true - })); - } - }, - minorSplitLine: function(group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) { - if (!minorTicksCoords.length) { - return; - } - var minorSplitLineModel = radiusAxisModel.getModel("minorSplitLine"); - var lineStyleModel = minorSplitLineModel.getModel("lineStyle"); - var lines = []; - for (var i = 0; i < minorTicksCoords.length; i++) { - for (var k = 0; k < minorTicksCoords[i].length; k++) { - lines.push(new Circle({ - shape: { - cx: polar.cx, - cy: polar.cy, - r: minorTicksCoords[i][k].coord - } - })); - } - } - group.add(mergePath(lines, { - style: defaults({ - fill: null - }, lineStyleModel.getLineStyle()), - silent: true - })); - }, - splitArea: function(group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) { - if (!ticksCoords.length) { - return; - } - var splitAreaModel = radiusAxisModel.getModel("splitArea"); - var areaStyleModel = splitAreaModel.getModel("areaStyle"); - var areaColors = areaStyleModel.get("color"); - var lineCount = 0; - areaColors = areaColors instanceof Array ? areaColors : [areaColors]; - var splitAreas = []; - var prevRadius = ticksCoords[0].coord; - for (var i = 1; i < ticksCoords.length; i++) { - var colorIndex = lineCount++ % areaColors.length; - splitAreas[colorIndex] = splitAreas[colorIndex] || []; - splitAreas[colorIndex].push(new Sector({ - shape: { - cx: polar.cx, - cy: polar.cy, - r0: prevRadius, - r: ticksCoords[i].coord, - startAngle: 0, - endAngle: Math.PI * 2 - }, - silent: true - })); - prevRadius = ticksCoords[i].coord; - } - for (var i = 0; i < splitAreas.length; i++) { - group.add(mergePath(splitAreas[i], { - style: defaults({ - fill: areaColors[i % areaColors.length] - }, areaStyleModel.getAreaStyle()), - silent: true - })); - } - } -}; -function layoutAxis(polar, radiusAxisModel, axisAngle) { - return { - position: [polar.cx, polar.cy], - rotation: axisAngle / 180 * Math.PI, - labelDirection: -1, - tickDirection: -1, - nameDirection: 1, - labelRotate: radiusAxisModel.getModel("axisLabel").get("rotate"), - // Over splitLine and splitArea - z2: 1 - }; -} -const RadiusAxisView$1 = RadiusAxisView; -function getSeriesStackId(seriesModel) { - return seriesModel.get("stack") || "__ec_stack_" + seriesModel.seriesIndex; -} -function getAxisKey(polar, axis) { - return axis.dim + polar.model.componentIndex; -} -function barLayoutPolar(seriesType, ecModel, api) { - var lastStackCoords = {}; - var barWidthAndOffset = calRadialBar(filter(ecModel.getSeriesByType(seriesType), function(seriesModel) { - return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === "polar"; - })); - ecModel.eachSeriesByType(seriesType, function(seriesModel) { - if (seriesModel.coordinateSystem.type !== "polar") { - return; - } - var data = seriesModel.getData(); - var polar = seriesModel.coordinateSystem; - var baseAxis = polar.getBaseAxis(); - var axisKey = getAxisKey(polar, baseAxis); - var stackId = getSeriesStackId(seriesModel); - var columnLayoutInfo = barWidthAndOffset[axisKey][stackId]; - var columnOffset = columnLayoutInfo.offset; - var columnWidth = columnLayoutInfo.width; - var valueAxis = polar.getOtherAxis(baseAxis); - var cx = seriesModel.coordinateSystem.cx; - var cy = seriesModel.coordinateSystem.cy; - var barMinHeight = seriesModel.get("barMinHeight") || 0; - var barMinAngle = seriesModel.get("barMinAngle") || 0; - lastStackCoords[stackId] = lastStackCoords[stackId] || []; - var valueDim = data.mapDimension(valueAxis.dim); - var baseDim = data.mapDimension(baseAxis.dim); - var stacked = isDimensionStacked( - data, - valueDim - /* , baseDim */ - ); - var clampLayout = baseAxis.dim !== "radius" || !seriesModel.get("roundCap", true); - var valueAxisStart = valueAxis.dataToCoord(0); - for (var idx = 0, len = data.count(); idx < len; idx++) { - var value = data.get(valueDim, idx); - var baseValue = data.get(baseDim, idx); - var sign = value >= 0 ? "p" : "n"; - var baseCoord = valueAxisStart; - if (stacked) { - if (!lastStackCoords[stackId][baseValue]) { - lastStackCoords[stackId][baseValue] = { - p: valueAxisStart, - n: valueAxisStart - // Negative stack - }; - } - baseCoord = lastStackCoords[stackId][baseValue][sign]; - } - var r0 = void 0; - var r = void 0; - var startAngle = void 0; - var endAngle = void 0; - if (valueAxis.dim === "radius") { - var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart; - var angle = baseAxis.dataToCoord(baseValue); - if (Math.abs(radiusSpan) < barMinHeight) { - radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight; - } - r0 = baseCoord; - r = baseCoord + radiusSpan; - startAngle = angle - columnOffset; - endAngle = startAngle - columnWidth; - stacked && (lastStackCoords[stackId][baseValue][sign] = r); - } else { - var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart; - var radius = baseAxis.dataToCoord(baseValue); - if (Math.abs(angleSpan) < barMinAngle) { - angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle; - } - r0 = radius + columnOffset; - r = r0 + columnWidth; - startAngle = baseCoord; - endAngle = baseCoord + angleSpan; - stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle); - } - data.setItemLayout(idx, { - cx, - cy, - r0, - r, - // Consider that positive angle is anti-clockwise, - // while positive radian of sector is clockwise - startAngle: -startAngle * Math.PI / 180, - endAngle: -endAngle * Math.PI / 180, - /** - * Keep the same logic with bar in catesion: use end value to - * control direction. Notice that if clockwise is true (by - * default), the sector will always draw clockwisely, no matter - * whether endAngle is greater or less than startAngle. - */ - clockwise: startAngle >= endAngle - }); - } - }); -} -function calRadialBar(barSeries) { - var columnsMap = {}; - each$9(barSeries, function(seriesModel, idx) { - var data = seriesModel.getData(); - var polar = seriesModel.coordinateSystem; - var baseAxis = polar.getBaseAxis(); - var axisKey = getAxisKey(polar, baseAxis); - var axisExtent = baseAxis.getExtent(); - var bandWidth = baseAxis.type === "category" ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count(); - var columnsOnAxis = columnsMap[axisKey] || { - bandWidth, - remainedWidth: bandWidth, - autoWidthCount: 0, - categoryGap: "20%", - gap: "30%", - stacks: {} - }; - var stacks = columnsOnAxis.stacks; - columnsMap[axisKey] = columnsOnAxis; - var stackId = getSeriesStackId(seriesModel); - if (!stacks[stackId]) { - columnsOnAxis.autoWidthCount++; - } - stacks[stackId] = stacks[stackId] || { - width: 0, - maxWidth: 0 - }; - var barWidth = parsePercent(seriesModel.get("barWidth"), bandWidth); - var barMaxWidth = parsePercent(seriesModel.get("barMaxWidth"), bandWidth); - var barGap = seriesModel.get("barGap"); - var barCategoryGap = seriesModel.get("barCategoryGap"); - if (barWidth && !stacks[stackId].width) { - barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth); - stacks[stackId].width = barWidth; - columnsOnAxis.remainedWidth -= barWidth; - } - barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth); - barGap != null && (columnsOnAxis.gap = barGap); - barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap); - }); - var result = {}; - each$9(columnsMap, function(columnsOnAxis, coordSysName) { - result[coordSysName] = {}; - var stacks = columnsOnAxis.stacks; - var bandWidth = columnsOnAxis.bandWidth; - var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth); - var barGapPercent = parsePercent(columnsOnAxis.gap, 1); - var remainedWidth = columnsOnAxis.remainedWidth; - var autoWidthCount = columnsOnAxis.autoWidthCount; - var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent); - autoWidth = Math.max(autoWidth, 0); - each$9(stacks, function(column, stack) { - var maxWidth = column.maxWidth; - if (maxWidth && maxWidth < autoWidth) { - maxWidth = Math.min(maxWidth, remainedWidth); - if (column.width) { - maxWidth = Math.min(maxWidth, column.width); - } - remainedWidth -= maxWidth; - column.width = maxWidth; - autoWidthCount--; - } - }); - autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent); - autoWidth = Math.max(autoWidth, 0); - var widthSum = 0; - var lastColumn; - each$9(stacks, function(column, idx) { - if (!column.width) { - column.width = autoWidth; - } - lastColumn = column; - widthSum += column.width * (1 + barGapPercent); - }); - if (lastColumn) { - widthSum -= lastColumn.width * barGapPercent; - } - var offset = -widthSum / 2; - each$9(stacks, function(column, stackId) { - result[coordSysName][stackId] = result[coordSysName][stackId] || { - offset, - width: column.width - }; - offset += column.width * (1 + barGapPercent); - }); - }); - return result; -} -var angleAxisExtraOption = { - startAngle: 90, - clockwise: true, - splitNumber: 12, - axisLabel: { - rotate: 0 - } -}; -var radiusAxisExtraOption = { - splitNumber: 5 -}; -var PolarView = ( - /** @class */ - function(_super) { - __extends(PolarView2, _super); - function PolarView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = PolarView2.type; - return _this; - } - PolarView2.type = "polar"; - return PolarView2; - }(ComponentView) -); -function install$o(registers) { - use(install$q); - AxisView.registerAxisPointerClass("PolarAxisPointer", PolarAxisPointer$1); - registers.registerCoordinateSystem("polar", polarCreator$1); - registers.registerComponentModel(PolarModel$1); - registers.registerComponentView(PolarView); - axisModelCreator(registers, "angle", AngleAxisModel, angleAxisExtraOption); - axisModelCreator(registers, "radius", RadiusAxisModel, radiusAxisExtraOption); - registers.registerComponentView(AngleAxisView$1); - registers.registerComponentView(RadiusAxisView$1); - registers.registerLayout(curry$1(barLayoutPolar, "bar")); -} -function layout$1(axisModel, opt) { - opt = opt || {}; - var single = axisModel.coordinateSystem; - var axis = axisModel.axis; - var layout2 = {}; - var axisPosition = axis.position; - var orient = axis.orient; - var rect = single.getRect(); - var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height]; - var positionMap = { - horizontal: { - top: rectBound[2], - bottom: rectBound[3] - }, - vertical: { - left: rectBound[0], - right: rectBound[1] - } - }; - layout2.position = [orient === "vertical" ? positionMap.vertical[axisPosition] : rectBound[0], orient === "horizontal" ? positionMap.horizontal[axisPosition] : rectBound[3]]; - var r = { - horizontal: 0, - vertical: 1 - }; - layout2.rotation = Math.PI / 2 * r[orient]; - var directionMap = { - top: -1, - bottom: 1, - right: 1, - left: -1 - }; - layout2.labelDirection = layout2.tickDirection = layout2.nameDirection = directionMap[axisPosition]; - if (axisModel.get(["axisTick", "inside"])) { - layout2.tickDirection = -layout2.tickDirection; - } - if (retrieve(opt.labelInside, axisModel.get(["axisLabel", "inside"]))) { - layout2.labelDirection = -layout2.labelDirection; - } - var labelRotation = opt.rotate; - labelRotation == null && (labelRotation = axisModel.get(["axisLabel", "rotate"])); - layout2.labelRotation = axisPosition === "top" ? -labelRotation : labelRotation; - layout2.z2 = 1; - return layout2; -} -var axisBuilderAttrs = ["axisLine", "axisTickLabel", "axisName"]; -var selfBuilderAttrs = ["splitArea", "splitLine"]; -var SingleAxisView = ( - /** @class */ - function(_super) { - __extends(SingleAxisView2, _super); - function SingleAxisView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SingleAxisView2.type; - _this.axisPointerClass = "SingleAxisPointer"; - return _this; - } - SingleAxisView2.prototype.render = function(axisModel, ecModel, api, payload) { - var group = this.group; - group.removeAll(); - var oldAxisGroup = this._axisGroup; - this._axisGroup = new Group$2(); - var layout2 = layout$1(axisModel); - var axisBuilder = new AxisBuilder(axisModel, layout2); - each$9(axisBuilderAttrs, axisBuilder.add, axisBuilder); - group.add(this._axisGroup); - group.add(axisBuilder.getGroup()); - each$9(selfBuilderAttrs, function(name) { - if (axisModel.get([name, "show"])) { - axisElementBuilders[name](this, this.group, this._axisGroup, axisModel); - } - }, this); - groupTransition(oldAxisGroup, this._axisGroup, axisModel); - _super.prototype.render.call(this, axisModel, ecModel, api, payload); - }; - SingleAxisView2.prototype.remove = function() { - rectCoordAxisHandleRemove(this); - }; - SingleAxisView2.type = "singleAxis"; - return SingleAxisView2; - }(AxisView) -); -var axisElementBuilders = { - splitLine: function(axisView, group, axisGroup, axisModel) { - var axis = axisModel.axis; - if (axis.scale.isBlank()) { - return; - } - var splitLineModel = axisModel.getModel("splitLine"); - var lineStyleModel = splitLineModel.getModel("lineStyle"); - var lineColors = lineStyleModel.get("color"); - lineColors = lineColors instanceof Array ? lineColors : [lineColors]; - var lineWidth = lineStyleModel.get("width"); - var gridRect = axisModel.coordinateSystem.getRect(); - var isHorizontal = axis.isHorizontal(); - var splitLines = []; - var lineCount = 0; - var ticksCoords = axis.getTicksCoords({ - tickModel: splitLineModel - }); - var p1 = []; - var p2 = []; - for (var i = 0; i < ticksCoords.length; ++i) { - var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord); - if (isHorizontal) { - p1[0] = tickCoord; - p1[1] = gridRect.y; - p2[0] = tickCoord; - p2[1] = gridRect.y + gridRect.height; - } else { - p1[0] = gridRect.x; - p1[1] = tickCoord; - p2[0] = gridRect.x + gridRect.width; - p2[1] = tickCoord; - } - var line = new Line({ - shape: { - x1: p1[0], - y1: p1[1], - x2: p2[0], - y2: p2[1] - }, - silent: true - }); - subPixelOptimizeLine(line.shape, lineWidth); - var colorIndex = lineCount++ % lineColors.length; - splitLines[colorIndex] = splitLines[colorIndex] || []; - splitLines[colorIndex].push(line); - } - var lineStyle = lineStyleModel.getLineStyle(["color"]); - for (var i = 0; i < splitLines.length; ++i) { - group.add(mergePath(splitLines[i], { - style: defaults({ - stroke: lineColors[i % lineColors.length] - }, lineStyle), - silent: true - })); - } - }, - splitArea: function(axisView, group, axisGroup, axisModel) { - rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel); - } -}; -const SingleAxisView$1 = SingleAxisView; -var SingleAxisModel = ( - /** @class */ - function(_super) { - __extends(SingleAxisModel2, _super); - function SingleAxisModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SingleAxisModel2.type; - return _this; - } - SingleAxisModel2.prototype.getCoordSysModel = function() { - return this; - }; - SingleAxisModel2.type = "singleAxis"; - SingleAxisModel2.layoutMode = "box"; - SingleAxisModel2.defaultOption = { - left: "5%", - top: "5%", - right: "5%", - bottom: "5%", - type: "value", - position: "bottom", - orient: "horizontal", - axisLine: { - show: true, - lineStyle: { - width: 1, - type: "solid" - } - }, - // Single coordinate system and single axis is the, - // which is used as the parent tooltip model. - // same model, so we set default tooltip show as true. - tooltip: { - show: true - }, - axisTick: { - show: true, - length: 6, - lineStyle: { - width: 1 - } - }, - axisLabel: { - show: true, - interval: "auto" - }, - splitLine: { - show: true, - lineStyle: { - type: "dashed", - opacity: 0.2 - } - } - }; - return SingleAxisModel2; - }(ComponentModel) -); -mixin(SingleAxisModel, AxisModelCommonMixin.prototype); -const SingleAxisModel$1 = SingleAxisModel; -var SingleAxis = ( - /** @class */ - function(_super) { - __extends(SingleAxis2, _super); - function SingleAxis2(dim, scale, coordExtent, axisType, position) { - var _this = _super.call(this, dim, scale, coordExtent) || this; - _this.type = axisType || "value"; - _this.position = position || "bottom"; - return _this; - } - SingleAxis2.prototype.isHorizontal = function() { - var position = this.position; - return position === "top" || position === "bottom"; - }; - SingleAxis2.prototype.pointToData = function(point, clamp) { - return this.coordinateSystem.pointToData(point)[0]; - }; - return SingleAxis2; - }(Axis) -); -const SingleAxis$1 = SingleAxis; -var singleDimensions = ["single"]; -var Single = ( - /** @class */ - function() { - function Single2(axisModel, ecModel, api) { - this.type = "single"; - this.dimension = "single"; - this.dimensions = singleDimensions; - this.axisPointerEnabled = true; - this.model = axisModel; - this._init(axisModel, ecModel, api); - } - Single2.prototype._init = function(axisModel, ecModel, api) { - var dim = this.dimension; - var axis = new SingleAxis$1(dim, createScaleByModel$1(axisModel), [0, 0], axisModel.get("type"), axisModel.get("position")); - var isCategory = axis.type === "category"; - axis.onBand = isCategory && axisModel.get("boundaryGap"); - axis.inverse = axisModel.get("inverse"); - axis.orient = axisModel.get("orient"); - axisModel.axis = axis; - axis.model = axisModel; - axis.coordinateSystem = this; - this._axis = axis; - }; - Single2.prototype.update = function(ecModel, api) { - ecModel.eachSeries(function(seriesModel) { - if (seriesModel.coordinateSystem === this) { - var data_1 = seriesModel.getData(); - each$9(data_1.mapDimensionsAll(this.dimension), function(dim) { - this._axis.scale.unionExtentFromData(data_1, dim); - }, this); - niceScaleExtent(this._axis.scale, this._axis.model); - } - }, this); - }; - Single2.prototype.resize = function(axisModel, api) { - this._rect = getLayoutRect({ - left: axisModel.get("left"), - top: axisModel.get("top"), - right: axisModel.get("right"), - bottom: axisModel.get("bottom"), - width: axisModel.get("width"), - height: axisModel.get("height") - }, { - width: api.getWidth(), - height: api.getHeight() - }); - this._adjustAxis(); - }; - Single2.prototype.getRect = function() { - return this._rect; - }; - Single2.prototype._adjustAxis = function() { - var rect = this._rect; - var axis = this._axis; - var isHorizontal = axis.isHorizontal(); - var extent = isHorizontal ? [0, rect.width] : [0, rect.height]; - var idx = axis.inverse ? 1 : 0; - axis.setExtent(extent[idx], extent[1 - idx]); - this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y); - }; - Single2.prototype._updateAxisTransform = function(axis, coordBase) { - var axisExtent = axis.getExtent(); - var extentSum = axisExtent[0] + axisExtent[1]; - var isHorizontal = axis.isHorizontal(); - axis.toGlobalCoord = isHorizontal ? function(coord) { - return coord + coordBase; - } : function(coord) { - return extentSum - coord + coordBase; - }; - axis.toLocalCoord = isHorizontal ? function(coord) { - return coord - coordBase; - } : function(coord) { - return extentSum - coord + coordBase; - }; - }; - Single2.prototype.getAxis = function() { - return this._axis; - }; - Single2.prototype.getBaseAxis = function() { - return this._axis; - }; - Single2.prototype.getAxes = function() { - return [this._axis]; - }; - Single2.prototype.getTooltipAxes = function() { - return { - baseAxes: [this.getAxis()], - // Empty otherAxes - otherAxes: [] - }; - }; - Single2.prototype.containPoint = function(point) { - var rect = this.getRect(); - var axis = this.getAxis(); - var orient = axis.orient; - if (orient === "horizontal") { - return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height; - } else { - return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height; - } - }; - Single2.prototype.pointToData = function(point) { - var axis = this.getAxis(); - return [axis.coordToData(axis.toLocalCoord(point[axis.orient === "horizontal" ? 0 : 1]))]; - }; - Single2.prototype.dataToPoint = function(val) { - var axis = this.getAxis(); - var rect = this.getRect(); - var pt = []; - var idx = axis.orient === "horizontal" ? 0 : 1; - if (val instanceof Array) { - val = val[0]; - } - pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val)); - pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2; - return pt; - }; - Single2.prototype.convertToPixel = function(ecModel, finder, value) { - var coordSys = getCoordSys$1(finder); - return coordSys === this ? this.dataToPoint(value) : null; - }; - Single2.prototype.convertFromPixel = function(ecModel, finder, pixel) { - var coordSys = getCoordSys$1(finder); - return coordSys === this ? this.pointToData(pixel) : null; - }; - return Single2; - }() -); -function getCoordSys$1(finder) { - var seriesModel = finder.seriesModel; - var singleModel = finder.singleAxisModel; - return singleModel && singleModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem; -} -function create(ecModel, api) { - var singles = []; - ecModel.eachComponent("singleAxis", function(axisModel, idx) { - var single = new Single(axisModel, ecModel, api); - single.name = "single_" + idx; - single.resize(axisModel, api); - axisModel.coordinateSystem = single; - singles.push(single); - }); - ecModel.eachSeries(function(seriesModel) { - if (seriesModel.get("coordinateSystem") === "singleAxis") { - var singleAxisModel = seriesModel.getReferringComponents("singleAxis", SINGLE_REFERRING).models[0]; - seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem; - } - }); - return singles; -} -var singleCreator = { - create, - dimensions: singleDimensions -}; -const singleCreator$1 = singleCreator; -var XY$1 = ["x", "y"]; -var WH$1 = ["width", "height"]; -var SingleAxisPointer = ( - /** @class */ - function(_super) { - __extends(SingleAxisPointer2, _super); - function SingleAxisPointer2() { - return _super !== null && _super.apply(this, arguments) || this; - } - SingleAxisPointer2.prototype.makeElOption = function(elOption, value, axisModel, axisPointerModel, api) { - var axis = axisModel.axis; - var coordSys = axis.coordinateSystem; - var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis)); - var pixelValue = coordSys.dataToPoint(value)[0]; - var axisPointerType = axisPointerModel.get("type"); - if (axisPointerType && axisPointerType !== "none") { - var elStyle = buildElStyle(axisPointerModel); - var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent); - pointerOption.style = elStyle; - elOption.graphicKey = pointerOption.type; - elOption.pointer = pointerOption; - } - var layoutInfo = layout$1(axisModel); - buildCartesianSingleLabelElOption( - // @ts-ignore - value, - elOption, - layoutInfo, - axisModel, - axisPointerModel, - api - ); - }; - SingleAxisPointer2.prototype.getHandleTransform = function(value, axisModel, axisPointerModel) { - var layoutInfo = layout$1(axisModel, { - labelInside: false - }); - layoutInfo.labelMargin = axisPointerModel.get(["handle", "margin"]); - var position = getTransformedPosition(axisModel.axis, value, layoutInfo); - return { - x: position[0], - y: position[1], - rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0) - }; - }; - SingleAxisPointer2.prototype.updateHandleTransform = function(transform, delta, axisModel, axisPointerModel) { - var axis = axisModel.axis; - var coordSys = axis.coordinateSystem; - var dimIndex = getPointDimIndex(axis); - var axisExtent = getGlobalExtent(coordSys, dimIndex); - var currPosition = [transform.x, transform.y]; - currPosition[dimIndex] += delta[dimIndex]; - currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]); - currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]); - var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex); - var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2; - var cursorPoint = [cursorOtherValue, cursorOtherValue]; - cursorPoint[dimIndex] = currPosition[dimIndex]; - return { - x: currPosition[0], - y: currPosition[1], - rotation: transform.rotation, - cursorPoint, - tooltipOption: { - verticalAlign: "middle" - } - }; - }; - return SingleAxisPointer2; - }(BaseAxisPointer$1) -); -var pointerShapeBuilder = { - line: function(axis, pixelValue, otherExtent) { - var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis)); - return { - type: "Line", - subPixelOptimize: true, - shape: targetShape - }; - }, - shadow: function(axis, pixelValue, otherExtent) { - var bandWidth = axis.getBandWidth(); - var span = otherExtent[1] - otherExtent[0]; - return { - type: "Rect", - shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis)) - }; - } -}; -function getPointDimIndex(axis) { - return axis.isHorizontal() ? 0 : 1; -} -function getGlobalExtent(coordSys, dimIndex) { - var rect = coordSys.getRect(); - return [rect[XY$1[dimIndex]], rect[XY$1[dimIndex]] + rect[WH$1[dimIndex]]]; -} -const SingleAxisPointer$1 = SingleAxisPointer; -var SingleView = ( - /** @class */ - function(_super) { - __extends(SingleView2, _super); - function SingleView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SingleView2.type; - return _this; - } - SingleView2.type = "single"; - return SingleView2; - }(ComponentView) -); -function install$n(registers) { - use(install$q); - AxisView.registerAxisPointerClass("SingleAxisPointer", SingleAxisPointer$1); - registers.registerComponentView(SingleView); - registers.registerComponentView(SingleAxisView$1); - registers.registerComponentModel(SingleAxisModel$1); - axisModelCreator(registers, "single", SingleAxisModel$1, SingleAxisModel$1.defaultOption); - registers.registerCoordinateSystem("single", singleCreator$1); -} -var CalendarModel = ( - /** @class */ - function(_super) { - __extends(CalendarModel2, _super); - function CalendarModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = CalendarModel2.type; - return _this; - } - CalendarModel2.prototype.init = function(option, parentModel, ecModel) { - var inputPositionParams = getLayoutParams(option); - _super.prototype.init.apply(this, arguments); - mergeAndNormalizeLayoutParams$1(option, inputPositionParams); - }; - CalendarModel2.prototype.mergeOption = function(option) { - _super.prototype.mergeOption.apply(this, arguments); - mergeAndNormalizeLayoutParams$1(this.option, option); - }; - CalendarModel2.prototype.getCellSize = function() { - return this.option.cellSize; - }; - CalendarModel2.type = "calendar"; - CalendarModel2.defaultOption = { - // zlevel: 0, - z: 2, - left: 80, - top: 60, - cellSize: 20, - // horizontal vertical - orient: "horizontal", - // month separate line style - splitLine: { - show: true, - lineStyle: { - color: "#000", - width: 1, - type: "solid" - } - }, - // rect style temporarily unused emphasis - itemStyle: { - color: "#fff", - borderWidth: 1, - borderColor: "#ccc" - }, - // week text style - dayLabel: { - show: true, - firstDay: 0, - // start end - position: "start", - margin: "50%", - color: "#000" - }, - // month text style - monthLabel: { - show: true, - // start end - position: "start", - margin: 5, - // center or left - align: "center", - formatter: null, - color: "#000" - }, - // year text style - yearLabel: { - show: true, - // top bottom left right - position: null, - margin: 30, - formatter: null, - color: "#ccc", - fontFamily: "sans-serif", - fontWeight: "bolder", - fontSize: 20 - } - }; - return CalendarModel2; - }(ComponentModel) -); -function mergeAndNormalizeLayoutParams$1(target, raw) { - var cellSize = target.cellSize; - var cellSizeArr; - if (!isArray$1(cellSize)) { - cellSizeArr = target.cellSize = [cellSize, cellSize]; - } else { - cellSizeArr = cellSize; - } - if (cellSizeArr.length === 1) { - cellSizeArr[1] = cellSizeArr[0]; - } - var ignoreSize = map([0, 1], function(hvIdx) { - if (sizeCalculable(raw, hvIdx)) { - cellSizeArr[hvIdx] = "auto"; - } - return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== "auto"; - }); - mergeLayoutParam(target, raw, { - type: "box", - ignoreSize - }); -} -const CalendarModel$1 = CalendarModel; -var CalendarView = ( - /** @class */ - function(_super) { - __extends(CalendarView2, _super); - function CalendarView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = CalendarView2.type; - return _this; - } - CalendarView2.prototype.render = function(calendarModel, ecModel, api) { - var group = this.group; - group.removeAll(); - var coordSys = calendarModel.coordinateSystem; - var rangeData = coordSys.getRangeInfo(); - var orient = coordSys.getOrient(); - var localeModel = ecModel.getLocaleModel(); - this._renderDayRect(calendarModel, rangeData, group); - this._renderLines(calendarModel, rangeData, orient, group); - this._renderYearText(calendarModel, rangeData, orient, group); - this._renderMonthText(calendarModel, localeModel, orient, group); - this._renderWeekText(calendarModel, localeModel, rangeData, orient, group); - }; - CalendarView2.prototype._renderDayRect = function(calendarModel, rangeData, group) { - var coordSys = calendarModel.coordinateSystem; - var itemRectStyleModel = calendarModel.getModel("itemStyle").getItemStyle(); - var sw = coordSys.getCellWidth(); - var sh = coordSys.getCellHeight(); - for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) { - var point = coordSys.dataToRect([i], false).tl; - var rect = new Rect$1({ - shape: { - x: point[0], - y: point[1], - width: sw, - height: sh - }, - cursor: "default", - style: itemRectStyleModel - }); - group.add(rect); - } - }; - CalendarView2.prototype._renderLines = function(calendarModel, rangeData, orient, group) { - var self = this; - var coordSys = calendarModel.coordinateSystem; - var lineStyleModel = calendarModel.getModel(["splitLine", "lineStyle"]).getLineStyle(); - var show = calendarModel.get(["splitLine", "show"]); - var lineWidth = lineStyleModel.lineWidth; - this._tlpoints = []; - this._blpoints = []; - this._firstDayOfMonth = []; - this._firstDayPoints = []; - var firstDay = rangeData.start; - for (var i = 0; firstDay.time <= rangeData.end.time; i++) { - addPoints(firstDay.formatedDate); - if (i === 0) { - firstDay = coordSys.getDateInfo(rangeData.start.y + "-" + rangeData.start.m); - } - var date = firstDay.date; - date.setMonth(date.getMonth() + 1); - firstDay = coordSys.getDateInfo(date); - } - addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate); - function addPoints(date2) { - self._firstDayOfMonth.push(coordSys.getDateInfo(date2)); - self._firstDayPoints.push(coordSys.dataToRect([date2], false).tl); - var points = self._getLinePointsOfOneWeek(calendarModel, date2, orient); - self._tlpoints.push(points[0]); - self._blpoints.push(points[points.length - 1]); - show && self._drawSplitline(points, lineStyleModel, group); - } - show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group); - show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group); - }; - CalendarView2.prototype._getEdgesPoints = function(points, lineWidth, orient) { - var rs = [points[0].slice(), points[points.length - 1].slice()]; - var idx = orient === "horizontal" ? 0 : 1; - rs[0][idx] = rs[0][idx] - lineWidth / 2; - rs[1][idx] = rs[1][idx] + lineWidth / 2; - return rs; - }; - CalendarView2.prototype._drawSplitline = function(points, lineStyle, group) { - var poyline = new Polyline({ - z2: 20, - shape: { - points - }, - style: lineStyle - }); - group.add(poyline); - }; - CalendarView2.prototype._getLinePointsOfOneWeek = function(calendarModel, date, orient) { - var coordSys = calendarModel.coordinateSystem; - var parsedDate = coordSys.getDateInfo(date); - var points = []; - for (var i = 0; i < 7; i++) { - var tmpD = coordSys.getNextNDay(parsedDate.time, i); - var point = coordSys.dataToRect([tmpD.time], false); - points[2 * tmpD.day] = point.tl; - points[2 * tmpD.day + 1] = point[orient === "horizontal" ? "bl" : "tr"]; - } - return points; - }; - CalendarView2.prototype._formatterLabel = function(formatter, params) { - if (isString(formatter) && formatter) { - return formatTplSimple(formatter, params); - } - if (isFunction(formatter)) { - return formatter(params); - } - return params.nameMap; - }; - CalendarView2.prototype._yearTextPositionControl = function(textEl, point, orient, position, margin) { - var x = point[0]; - var y = point[1]; - var aligns = ["center", "bottom"]; - if (position === "bottom") { - y += margin; - aligns = ["center", "top"]; - } else if (position === "left") { - x -= margin; - } else if (position === "right") { - x += margin; - aligns = ["center", "top"]; - } else { - y -= margin; - } - var rotate2 = 0; - if (position === "left" || position === "right") { - rotate2 = Math.PI / 2; - } - return { - rotation: rotate2, - x, - y, - style: { - align: aligns[0], - verticalAlign: aligns[1] - } - }; - }; - CalendarView2.prototype._renderYearText = function(calendarModel, rangeData, orient, group) { - var yearLabel = calendarModel.getModel("yearLabel"); - if (!yearLabel.get("show")) { - return; - } - var margin = yearLabel.get("margin"); - var pos = yearLabel.get("position"); - if (!pos) { - pos = orient !== "horizontal" ? "top" : "left"; - } - var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]]; - var xc = (points[0][0] + points[1][0]) / 2; - var yc = (points[0][1] + points[1][1]) / 2; - var idx = orient === "horizontal" ? 0 : 1; - var posPoints = { - top: [xc, points[idx][1]], - bottom: [xc, points[1 - idx][1]], - left: [points[1 - idx][0], yc], - right: [points[idx][0], yc] - }; - var name = rangeData.start.y; - if (+rangeData.end.y > +rangeData.start.y) { - name = name + "-" + rangeData.end.y; - } - var formatter = yearLabel.get("formatter"); - var params = { - start: rangeData.start.y, - end: rangeData.end.y, - nameMap: name - }; - var content = this._formatterLabel(formatter, params); - var yearText = new ZRText({ - z2: 30, - style: createTextStyle(yearLabel, { - text: content - }) - }); - yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin)); - group.add(yearText); - }; - CalendarView2.prototype._monthTextPositionControl = function(point, isCenter, orient, position, margin) { - var align = "left"; - var vAlign = "top"; - var x = point[0]; - var y = point[1]; - if (orient === "horizontal") { - y = y + margin; - if (isCenter) { - align = "center"; - } - if (position === "start") { - vAlign = "bottom"; - } - } else { - x = x + margin; - if (isCenter) { - vAlign = "middle"; - } - if (position === "start") { - align = "right"; - } - } - return { - x, - y, - align, - verticalAlign: vAlign - }; - }; - CalendarView2.prototype._renderMonthText = function(calendarModel, localeModel, orient, group) { - var monthLabel = calendarModel.getModel("monthLabel"); - if (!monthLabel.get("show")) { - return; - } - var nameMap = monthLabel.get("nameMap"); - var margin = monthLabel.get("margin"); - var pos = monthLabel.get("position"); - var align = monthLabel.get("align"); - var termPoints = [this._tlpoints, this._blpoints]; - if (!nameMap || isString(nameMap)) { - if (nameMap) { - localeModel = getLocaleModel(nameMap) || localeModel; - } - nameMap = localeModel.get(["time", "monthAbbr"]) || []; - } - var idx = pos === "start" ? 0 : 1; - var axis = orient === "horizontal" ? 0 : 1; - margin = pos === "start" ? -margin : margin; - var isCenter = align === "center"; - for (var i = 0; i < termPoints[idx].length - 1; i++) { - var tmp = termPoints[idx][i].slice(); - var firstDay = this._firstDayOfMonth[i]; - if (isCenter) { - var firstDayPoints = this._firstDayPoints[i]; - tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2; - } - var formatter = monthLabel.get("formatter"); - var name_1 = nameMap[+firstDay.m - 1]; - var params = { - yyyy: firstDay.y, - yy: (firstDay.y + "").slice(2), - MM: firstDay.m, - M: +firstDay.m, - nameMap: name_1 - }; - var content = this._formatterLabel(formatter, params); - var monthText = new ZRText({ - z2: 30, - style: extend(createTextStyle(monthLabel, { - text: content - }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin)) - }); - group.add(monthText); - } - }; - CalendarView2.prototype._weekTextPositionControl = function(point, orient, position, margin, cellSize) { - var align = "center"; - var vAlign = "middle"; - var x = point[0]; - var y = point[1]; - var isStart = position === "start"; - if (orient === "horizontal") { - x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2; - align = isStart ? "right" : "left"; - } else { - y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2; - vAlign = isStart ? "bottom" : "top"; - } - return { - x, - y, - align, - verticalAlign: vAlign - }; - }; - CalendarView2.prototype._renderWeekText = function(calendarModel, localeModel, rangeData, orient, group) { - var dayLabel = calendarModel.getModel("dayLabel"); - if (!dayLabel.get("show")) { - return; - } - var coordSys = calendarModel.coordinateSystem; - var pos = dayLabel.get("position"); - var nameMap = dayLabel.get("nameMap"); - var margin = dayLabel.get("margin"); - var firstDayOfWeek = coordSys.getFirstDayOfWeek(); - if (!nameMap || isString(nameMap)) { - if (nameMap) { - localeModel = getLocaleModel(nameMap) || localeModel; - } - var dayOfWeekShort = localeModel.get(["time", "dayOfWeekShort"]); - nameMap = dayOfWeekShort || map(localeModel.get(["time", "dayOfWeekAbbr"]), function(val) { - return val[0]; - }); - } - var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time; - var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()]; - margin = parsePercent(margin, Math.min(cellSize[1], cellSize[0])); - if (pos === "start") { - start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time; - margin = -margin; - } - for (var i = 0; i < 7; i++) { - var tmpD = coordSys.getNextNDay(start, i); - var point = coordSys.dataToRect([tmpD.time], false).center; - var day = i; - day = Math.abs((i + firstDayOfWeek) % 7); - var weekText = new ZRText({ - z2: 30, - style: extend(createTextStyle(dayLabel, { - text: nameMap[day] - }), this._weekTextPositionControl(point, orient, pos, margin, cellSize)) - }); - group.add(weekText); - } - }; - CalendarView2.type = "calendar"; - return CalendarView2; - }(ComponentView) -); -const CalendarView$1 = CalendarView; -var PROXIMATE_ONE_DAY = 864e5; -var Calendar = ( - /** @class */ - function() { - function Calendar2(calendarModel, ecModel, api) { - this.type = "calendar"; - this.dimensions = Calendar2.dimensions; - this.getDimensionsInfo = Calendar2.getDimensionsInfo; - this._model = calendarModel; - } - Calendar2.getDimensionsInfo = function() { - return [{ - name: "time", - type: "time" - }, "value"]; - }; - Calendar2.prototype.getRangeInfo = function() { - return this._rangeInfo; - }; - Calendar2.prototype.getModel = function() { - return this._model; - }; - Calendar2.prototype.getRect = function() { - return this._rect; - }; - Calendar2.prototype.getCellWidth = function() { - return this._sw; - }; - Calendar2.prototype.getCellHeight = function() { - return this._sh; - }; - Calendar2.prototype.getOrient = function() { - return this._orient; - }; - Calendar2.prototype.getFirstDayOfWeek = function() { - return this._firstDayOfWeek; - }; - Calendar2.prototype.getDateInfo = function(date) { - date = parseDate(date); - var y = date.getFullYear(); - var m = date.getMonth() + 1; - var mStr = m < 10 ? "0" + m : "" + m; - var d2 = date.getDate(); - var dStr = d2 < 10 ? "0" + d2 : "" + d2; - var day = date.getDay(); - day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7); - return { - y: y + "", - m: mStr, - d: dStr, - day, - time: date.getTime(), - formatedDate: y + "-" + mStr + "-" + dStr, - date - }; - }; - Calendar2.prototype.getNextNDay = function(date, n) { - n = n || 0; - if (n === 0) { - return this.getDateInfo(date); - } - date = new Date(this.getDateInfo(date).time); - date.setDate(date.getDate() + n); - return this.getDateInfo(date); - }; - Calendar2.prototype.update = function(ecModel, api) { - this._firstDayOfWeek = +this._model.getModel("dayLabel").get("firstDay"); - this._orient = this._model.get("orient"); - this._lineWidth = this._model.getModel("itemStyle").getItemStyle().lineWidth || 0; - this._rangeInfo = this._getRangeInfo(this._initRangeOption()); - var weeks = this._rangeInfo.weeks || 1; - var whNames = ["width", "height"]; - var cellSize = this._model.getCellSize().slice(); - var layoutParams = this._model.getBoxLayoutParams(); - var cellNumbers = this._orient === "horizontal" ? [weeks, 7] : [7, weeks]; - each$9([0, 1], function(idx) { - if (cellSizeSpecified(cellSize, idx)) { - layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx]; - } - }); - var whGlobal = { - width: api.getWidth(), - height: api.getHeight() - }; - var calendarRect = this._rect = getLayoutRect(layoutParams, whGlobal); - each$9([0, 1], function(idx) { - if (!cellSizeSpecified(cellSize, idx)) { - cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx]; - } - }); - function cellSizeSpecified(cellSize2, idx) { - return cellSize2[idx] != null && cellSize2[idx] !== "auto"; - } - this._sw = cellSize[0]; - this._sh = cellSize[1]; - }; - Calendar2.prototype.dataToPoint = function(data, clamp) { - isArray$1(data) && (data = data[0]); - clamp == null && (clamp = true); - var dayInfo = this.getDateInfo(data); - var range = this._rangeInfo; - var date = dayInfo.formatedDate; - if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) { - return [NaN, NaN]; - } - var week = dayInfo.day; - var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek; - if (this._orient === "vertical") { - return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2]; - } - return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2]; - }; - Calendar2.prototype.pointToData = function(point) { - var date = this.pointToDate(point); - return date && date.time; - }; - Calendar2.prototype.dataToRect = function(data, clamp) { - var point = this.dataToPoint(data, clamp); - return { - contentShape: { - x: point[0] - (this._sw - this._lineWidth) / 2, - y: point[1] - (this._sh - this._lineWidth) / 2, - width: this._sw - this._lineWidth, - height: this._sh - this._lineWidth - }, - center: point, - tl: [point[0] - this._sw / 2, point[1] - this._sh / 2], - tr: [point[0] + this._sw / 2, point[1] - this._sh / 2], - br: [point[0] + this._sw / 2, point[1] + this._sh / 2], - bl: [point[0] - this._sw / 2, point[1] + this._sh / 2] - }; - }; - Calendar2.prototype.pointToDate = function(point) { - var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1; - var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1; - var range = this._rangeInfo.range; - if (this._orient === "vertical") { - return this._getDateByWeeksAndDay(nthY, nthX - 1, range); - } - return this._getDateByWeeksAndDay(nthX, nthY - 1, range); - }; - Calendar2.prototype.convertToPixel = function(ecModel, finder, value) { - var coordSys = getCoordSys(finder); - return coordSys === this ? coordSys.dataToPoint(value) : null; - }; - Calendar2.prototype.convertFromPixel = function(ecModel, finder, pixel) { - var coordSys = getCoordSys(finder); - return coordSys === this ? coordSys.pointToData(pixel) : null; - }; - Calendar2.prototype.containPoint = function(point) { - console.warn("Not implemented."); - return false; - }; - Calendar2.prototype._initRangeOption = function() { - var range = this._model.get("range"); - var normalizedRange; - if (isArray$1(range) && range.length === 1) { - range = range[0]; - } - if (!isArray$1(range)) { - var rangeStr = range.toString(); - if (/^\d{4}$/.test(rangeStr)) { - normalizedRange = [rangeStr + "-01-01", rangeStr + "-12-31"]; - } - if (/^\d{4}[\/|-]\d{1,2}$/.test(rangeStr)) { - var start = this.getDateInfo(rangeStr); - var firstDay = start.date; - firstDay.setMonth(firstDay.getMonth() + 1); - var end = this.getNextNDay(firstDay, -1); - normalizedRange = [start.formatedDate, end.formatedDate]; - } - if (/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(rangeStr)) { - normalizedRange = [rangeStr, rangeStr]; - } - } else { - normalizedRange = range; - } - if (!normalizedRange) { - return range; - } - var tmp = this._getRangeInfo(normalizedRange); - if (tmp.start.time > tmp.end.time) { - normalizedRange.reverse(); - } - return normalizedRange; - }; - Calendar2.prototype._getRangeInfo = function(range) { - var parsedRange = [this.getDateInfo(range[0]), this.getDateInfo(range[1])]; - var reversed; - if (parsedRange[0].time > parsedRange[1].time) { - reversed = true; - parsedRange.reverse(); - } - var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY) - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1; - var date = new Date(parsedRange[0].time); - var startDateNum = date.getDate(); - var endDateNum = parsedRange[1].date.getDate(); - date.setDate(startDateNum + allDay - 1); - var dateNum = date.getDate(); - if (dateNum !== endDateNum) { - var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1; - while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - parsedRange[1].time) * sign > 0) { - allDay -= sign; - date.setDate(dateNum - sign); - } - } - var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7); - var nthWeek = reversed ? -weeks + 1 : weeks - 1; - reversed && parsedRange.reverse(); - return { - range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate], - start: parsedRange[0], - end: parsedRange[1], - allDay, - weeks, - // From 0. - nthWeek, - fweek: parsedRange[0].day, - lweek: parsedRange[1].day - }; - }; - Calendar2.prototype._getDateByWeeksAndDay = function(nthWeek, day, range) { - var rangeInfo = this._getRangeInfo(range); - if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) { - return null; - } - var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day; - var date = new Date(rangeInfo.start.time); - date.setDate(+rangeInfo.start.d + nthDay); - return this.getDateInfo(date); - }; - Calendar2.create = function(ecModel, api) { - var calendarList = []; - ecModel.eachComponent("calendar", function(calendarModel) { - var calendar = new Calendar2(calendarModel); - calendarList.push(calendar); - calendarModel.coordinateSystem = calendar; - }); - ecModel.eachSeries(function(calendarSeries) { - if (calendarSeries.get("coordinateSystem") === "calendar") { - calendarSeries.coordinateSystem = calendarList[calendarSeries.get("calendarIndex") || 0]; - } - }); - return calendarList; - }; - Calendar2.dimensions = ["time", "value"]; - return Calendar2; - }() -); -function getCoordSys(finder) { - var calendarModel = finder.calendarModel; - var seriesModel = finder.seriesModel; - var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null; - return coordSys; -} -const Calendar$1 = Calendar; -function install$m(registers) { - registers.registerComponentModel(CalendarModel$1); - registers.registerComponentView(CalendarView$1); - registers.registerCoordinateSystem("calendar", Calendar$1); -} -function setKeyInfoToNewElOption(resultItem, newElOption) { - var existElOption = resultItem.existing; - newElOption.id = resultItem.keyInfo.id; - !newElOption.type && existElOption && (newElOption.type = existElOption.type); - if (newElOption.parentId == null) { - var newElParentOption = newElOption.parentOption; - if (newElParentOption) { - newElOption.parentId = newElParentOption.id; - } else if (existElOption) { - newElOption.parentId = existElOption.parentId; - } - } - newElOption.parentOption = null; -} -function isSetLoc(obj, props) { - var isSet; - each$9(props, function(prop) { - obj[prop] != null && obj[prop] !== "auto" && (isSet = true); - }); - return isSet; -} -function mergeNewElOptionToExist(existList, index, newElOption) { - var newElOptCopy = extend({}, newElOption); - var existElOption = existList[index]; - var $action = newElOption.$action || "merge"; - if ($action === "merge") { - if (existElOption) { - merge(existElOption, newElOptCopy, true); - mergeLayoutParam(existElOption, newElOptCopy, { - ignoreSize: true - }); - copyLayoutParams(newElOption, existElOption); - copyTransitionInfo(newElOption, existElOption); - copyTransitionInfo(newElOption, existElOption, "shape"); - copyTransitionInfo(newElOption, existElOption, "style"); - copyTransitionInfo(newElOption, existElOption, "extra"); - newElOption.clipPath = existElOption.clipPath; - } else { - existList[index] = newElOptCopy; - } - } else if ($action === "replace") { - existList[index] = newElOptCopy; - } else if ($action === "remove") { - existElOption && (existList[index] = null); - } -} -var TRANSITION_PROPS_TO_COPY = ["transition", "enterFrom", "leaveTo"]; -var ROOT_TRANSITION_PROPS_TO_COPY = TRANSITION_PROPS_TO_COPY.concat(["enterAnimation", "updateAnimation", "leaveAnimation"]); -function copyTransitionInfo(target, source, targetProp) { - if (targetProp) { - if (!target[targetProp] && source[targetProp]) { - target[targetProp] = {}; - } - target = target[targetProp]; - source = source[targetProp]; - } - if (!target || !source) { - return; - } - var props = targetProp ? TRANSITION_PROPS_TO_COPY : ROOT_TRANSITION_PROPS_TO_COPY; - for (var i = 0; i < props.length; i++) { - var prop = props[i]; - if (target[prop] == null && source[prop] != null) { - target[prop] = source[prop]; - } - } -} -function setLayoutInfoToExist(existItem, newElOption) { - if (!existItem) { - return; - } - existItem.hv = newElOption.hv = [ - // Rigid body, don't care about `width`. - isSetLoc(newElOption, ["left", "right"]), - // Rigid body, don't care about `height`. - isSetLoc(newElOption, ["top", "bottom"]) - ]; - if (existItem.type === "group") { - var existingGroupOpt = existItem; - var newGroupOpt = newElOption; - existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0); - existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0); - } -} -var GraphicComponentModel = ( - /** @class */ - function(_super) { - __extends(GraphicComponentModel2, _super); - function GraphicComponentModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = GraphicComponentModel2.type; - _this.preventAutoZ = true; - return _this; - } - GraphicComponentModel2.prototype.mergeOption = function(option, ecModel) { - var elements = this.option.elements; - this.option.elements = null; - _super.prototype.mergeOption.call(this, option, ecModel); - this.option.elements = elements; - }; - GraphicComponentModel2.prototype.optionUpdated = function(newOption, isInit) { - var thisOption = this.option; - var newList = (isInit ? thisOption : newOption).elements; - var existList = thisOption.elements = isInit ? [] : thisOption.elements; - var flattenedList = []; - this._flatten(newList, flattenedList, null); - var mappingResult = mappingToExists(existList, flattenedList, "normalMerge"); - var elOptionsToUpdate = this._elOptionsToUpdate = []; - each$9(mappingResult, function(resultItem, index) { - var newElOption = resultItem.newOption; - if (!newElOption) { - return; - } - elOptionsToUpdate.push(newElOption); - setKeyInfoToNewElOption(resultItem, newElOption); - mergeNewElOptionToExist(existList, index, newElOption); - setLayoutInfoToExist(existList[index], newElOption); - }, this); - thisOption.elements = filter(existList, function(item) { - item && delete item.$action; - return item != null; - }); - }; - GraphicComponentModel2.prototype._flatten = function(optionList, result, parentOption) { - each$9(optionList, function(option) { - if (!option) { - return; - } - if (parentOption) { - option.parentOption = parentOption; - } - result.push(option); - var children = option.children; - if (children && children.length) { - this._flatten(children, result, option); - } - delete option.children; - }, this); - }; - GraphicComponentModel2.prototype.useElOptionsToUpdate = function() { - var els = this._elOptionsToUpdate; - this._elOptionsToUpdate = null; - return els; - }; - GraphicComponentModel2.type = "graphic"; - GraphicComponentModel2.defaultOption = { - elements: [] - // parentId: null - }; - return GraphicComponentModel2; - }(ComponentModel) -); -var nonShapeGraphicElements = { - // Reserved but not supported in graphic component. - path: null, - compoundPath: null, - // Supported in graphic component. - group: Group$2, - image: ZRImage, - text: ZRText -}; -var inner$7 = makeInner(); -var GraphicComponentView = ( - /** @class */ - function(_super) { - __extends(GraphicComponentView2, _super); - function GraphicComponentView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = GraphicComponentView2.type; - return _this; - } - GraphicComponentView2.prototype.init = function() { - this._elMap = createHashMap(); - }; - GraphicComponentView2.prototype.render = function(graphicModel, ecModel, api) { - if (graphicModel !== this._lastGraphicModel) { - this._clear(); - } - this._lastGraphicModel = graphicModel; - this._updateElements(graphicModel); - this._relocate(graphicModel, api); - }; - GraphicComponentView2.prototype._updateElements = function(graphicModel) { - var elOptionsToUpdate = graphicModel.useElOptionsToUpdate(); - if (!elOptionsToUpdate) { - return; - } - var elMap = this._elMap; - var rootGroup = this.group; - var globalZ = graphicModel.get("z"); - var globalZLevel = graphicModel.get("zlevel"); - each$9(elOptionsToUpdate, function(elOption) { - var id = convertOptionIdName(elOption.id, null); - var elExisting = id != null ? elMap.get(id) : null; - var parentId = convertOptionIdName(elOption.parentId, null); - var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup; - var elType = elOption.type; - var elOptionStyle = elOption.style; - if (elType === "text" && elOptionStyle) { - if (elOption.hv && elOption.hv[1]) { - elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null; - } - } - var textContentOption = elOption.textContent; - var textConfig = elOption.textConfig; - if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) { - var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true); - if (!textConfig && convertResult.textConfig) { - textConfig = elOption.textConfig = convertResult.textConfig; - } - if (!textContentOption && convertResult.textContent) { - textContentOption = convertResult.textContent; - } - } - var elOptionCleaned = getCleanedElOption(elOption); - var $action = elOption.$action || "merge"; - var isMerge = $action === "merge"; - var isReplace = $action === "replace"; - if (isMerge) { - var isInit = !elExisting; - var el_1 = elExisting; - if (isInit) { - el_1 = createEl(id, targetElParent, elOption.type, elMap); - } else { - el_1 && (inner$7(el_1).isNew = false); - stopPreviousKeyframeAnimationAndRestore(el_1); - } - if (el_1) { - applyUpdateTransition(el_1, elOptionCleaned, graphicModel, { - isInit - }); - updateCommonAttrs(el_1, elOption, globalZ, globalZLevel); - } - } else if (isReplace) { - removeEl(elExisting, elOption, elMap, graphicModel); - var el_2 = createEl(id, targetElParent, elOption.type, elMap); - if (el_2) { - applyUpdateTransition(el_2, elOptionCleaned, graphicModel, { - isInit: true - }); - updateCommonAttrs(el_2, elOption, globalZ, globalZLevel); - } - } else if ($action === "remove") { - updateLeaveTo(elExisting, elOption); - removeEl(elExisting, elOption, elMap, graphicModel); - } - var el = elMap.get(id); - if (el && textContentOption) { - if (isMerge) { - var textContentExisting = el.getTextContent(); - textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new ZRText(textContentOption)); - } else if (isReplace) { - el.setTextContent(new ZRText(textContentOption)); - } - } - if (el) { - var clipPathOption = elOption.clipPath; - if (clipPathOption) { - var clipPathType = clipPathOption.type; - var clipPath = void 0; - var isInit = false; - if (isMerge) { - var oldClipPath = el.getClipPath(); - isInit = !oldClipPath || inner$7(oldClipPath).type !== clipPathType; - clipPath = isInit ? newEl(clipPathType) : oldClipPath; - } else if (isReplace) { - isInit = true; - clipPath = newEl(clipPathType); - } - el.setClipPath(clipPath); - applyUpdateTransition(clipPath, clipPathOption, graphicModel, { - isInit - }); - applyKeyframeAnimation(clipPath, clipPathOption.keyframeAnimation, graphicModel); - } - var elInner = inner$7(el); - el.setTextConfig(textConfig); - elInner.option = elOption; - setEventData(el, graphicModel, elOption); - setTooltipConfig({ - el, - componentModel: graphicModel, - itemName: el.name, - itemTooltipOption: elOption.tooltip - }); - applyKeyframeAnimation(el, elOption.keyframeAnimation, graphicModel); - } - }); - }; - GraphicComponentView2.prototype._relocate = function(graphicModel, api) { - var elOptions = graphicModel.option.elements; - var rootGroup = this.group; - var elMap = this._elMap; - var apiWidth = api.getWidth(); - var apiHeight = api.getHeight(); - var xy = ["x", "y"]; - for (var i = 0; i < elOptions.length; i++) { - var elOption = elOptions[i]; - var id = convertOptionIdName(elOption.id, null); - var el = id != null ? elMap.get(id) : null; - if (!el || !el.isGroup) { - continue; - } - var parentEl = el.parent; - var isParentRoot = parentEl === rootGroup; - var elInner = inner$7(el); - var parentElInner = inner$7(parentEl); - elInner.width = parsePercent(elInner.option.width, isParentRoot ? apiWidth : parentElInner.width) || 0; - elInner.height = parsePercent(elInner.option.height, isParentRoot ? apiHeight : parentElInner.height) || 0; - } - for (var i = elOptions.length - 1; i >= 0; i--) { - var elOption = elOptions[i]; - var id = convertOptionIdName(elOption.id, null); - var el = id != null ? elMap.get(id) : null; - if (!el) { - continue; - } - var parentEl = el.parent; - var parentElInner = inner$7(parentEl); - var containerInfo = parentEl === rootGroup ? { - width: apiWidth, - height: apiHeight - } : { - width: parentElInner.width, - height: parentElInner.height - }; - var layoutPos = {}; - var layouted = positionElement(el, elOption, containerInfo, null, { - hv: elOption.hv, - boundingMode: elOption.bounding - }, layoutPos); - if (!inner$7(el).isNew && layouted) { - var transition = elOption.transition; - var animatePos = {}; - for (var k = 0; k < xy.length; k++) { - var key = xy[k]; - var val = layoutPos[key]; - if (transition && (isTransitionAll(transition) || indexOf(transition, key) >= 0)) { - animatePos[key] = val; - } else { - el[key] = val; - } - } - updateProps$1(el, animatePos, graphicModel, 0); - } else { - el.attr(layoutPos); - } - } - }; - GraphicComponentView2.prototype._clear = function() { - var _this = this; - var elMap = this._elMap; - elMap.each(function(el) { - removeEl(el, inner$7(el).option, elMap, _this._lastGraphicModel); - }); - this._elMap = createHashMap(); - }; - GraphicComponentView2.prototype.dispose = function() { - this._clear(); - }; - GraphicComponentView2.type = "graphic"; - return GraphicComponentView2; - }(ComponentView) -); -function newEl(graphicType) { - var Clz = hasOwn(nonShapeGraphicElements, graphicType) ? nonShapeGraphicElements[graphicType] : getShapeClass(graphicType); - var el = new Clz({}); - inner$7(el).type = graphicType; - return el; -} -function createEl(id, targetElParent, graphicType, elMap) { - var el = newEl(graphicType); - targetElParent.add(el); - elMap.set(id, el); - inner$7(el).id = id; - inner$7(el).isNew = true; - return el; -} -function removeEl(elExisting, elOption, elMap, graphicModel) { - var existElParent = elExisting && elExisting.parent; - if (existElParent) { - elExisting.type === "group" && elExisting.traverse(function(el) { - removeEl(el, elOption, elMap, graphicModel); - }); - applyLeaveTransition(elExisting, elOption, graphicModel); - elMap.removeKey(inner$7(elExisting).id); - } -} -function updateCommonAttrs(el, elOption, defaultZ, defaultZlevel) { - if (!el.isGroup) { - each$9([ - ["cursor", Displayable.prototype.cursor], - // We should not support configure z and zlevel in the element level. - // But seems we didn't limit it previously. So here still use it to avoid breaking. - ["zlevel", defaultZlevel || 0], - ["z", defaultZ || 0], - // z2 must not be null/undefined, otherwise sort error may occur. - ["z2", 0] - ], function(item) { - var prop = item[0]; - if (hasOwn(elOption, prop)) { - el[prop] = retrieve2(elOption[prop], item[1]); - } else if (el[prop] == null) { - el[prop] = item[1]; - } - }); - } - each$9(keys(elOption), function(key) { - if (key.indexOf("on") === 0) { - var val = elOption[key]; - el[key] = isFunction(val) ? val : null; - } - }); - if (hasOwn(elOption, "draggable")) { - el.draggable = elOption.draggable; - } - elOption.name != null && (el.name = elOption.name); - elOption.id != null && (el.id = elOption.id); -} -function getCleanedElOption(elOption) { - elOption = extend({}, elOption); - each$9(["id", "parentId", "$action", "hv", "bounding", "textContent", "clipPath"].concat(LOCATION_PARAMS), function(name) { - delete elOption[name]; - }); - return elOption; -} -function setEventData(el, graphicModel, elOption) { - var eventData = getECData(el).eventData; - if (!el.silent && !el.ignore && !eventData) { - eventData = getECData(el).eventData = { - componentType: "graphic", - componentIndex: graphicModel.componentIndex, - name: el.name - }; - } - if (eventData) { - eventData.info = elOption.info; - } -} -function install$l(registers) { - registers.registerComponentModel(GraphicComponentModel); - registers.registerComponentView(GraphicComponentView); - registers.registerPreprocessor(function(option) { - var graphicOption = option.graphic; - if (isArray$1(graphicOption)) { - if (!graphicOption[0] || !graphicOption[0].elements) { - option.graphic = [{ - elements: graphicOption - }]; - } else { - option.graphic = [option.graphic[0]]; - } - } else if (graphicOption && !graphicOption.elements) { - option.graphic = [{ - elements: [graphicOption] - }]; - } - }); -} -var DATA_ZOOM_AXIS_DIMENSIONS = ["x", "y", "radius", "angle", "single"]; -var SERIES_COORDS = ["cartesian2d", "polar", "singleAxis"]; -function isCoordSupported(seriesModel) { - var coordType = seriesModel.get("coordinateSystem"); - return indexOf(SERIES_COORDS, coordType) >= 0; -} -function getAxisMainType(axisDim) { - return axisDim + "Axis"; -} -function findEffectedDataZooms(ecModel, payload) { - var axisRecords = createHashMap(); - var effectedModels = []; - var effectedModelMap = createHashMap(); - ecModel.eachComponent({ - mainType: "dataZoom", - query: payload - }, function(dataZoomModel) { - if (!effectedModelMap.get(dataZoomModel.uid)) { - addToEffected(dataZoomModel); - } - }); - var foundNewLink; - do { - foundNewLink = false; - ecModel.eachComponent("dataZoom", processSingle); - } while (foundNewLink); - function processSingle(dataZoomModel) { - if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) { - addToEffected(dataZoomModel); - foundNewLink = true; - } - } - function addToEffected(dataZoom) { - effectedModelMap.set(dataZoom.uid, true); - effectedModels.push(dataZoom); - markAxisControlled(dataZoom); - } - function isLinked(dataZoomModel) { - var isLink = false; - dataZoomModel.eachTargetAxis(function(axisDim, axisIndex) { - var axisIdxArr = axisRecords.get(axisDim); - if (axisIdxArr && axisIdxArr[axisIndex]) { - isLink = true; - } - }); - return isLink; - } - function markAxisControlled(dataZoomModel) { - dataZoomModel.eachTargetAxis(function(axisDim, axisIndex) { - (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true; - }); - } - return effectedModels; -} -function collectReferCoordSysModelInfo(dataZoomModel) { - var ecModel = dataZoomModel.ecModel; - var coordSysInfoWrap = { - infoList: [], - infoMap: createHashMap() - }; - dataZoomModel.eachTargetAxis(function(axisDim, axisIndex) { - var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex); - if (!axisModel) { - return; - } - var coordSysModel = axisModel.getCoordSysModel(); - if (!coordSysModel) { - return; - } - var coordSysUid = coordSysModel.uid; - var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid); - if (!coordSysInfo) { - coordSysInfo = { - model: coordSysModel, - axisModels: [] - }; - coordSysInfoWrap.infoList.push(coordSysInfo); - coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo); - } - coordSysInfo.axisModels.push(axisModel); - }); - return coordSysInfoWrap; -} -var DataZoomAxisInfo = ( - /** @class */ - function() { - function DataZoomAxisInfo2() { - this.indexList = []; - this.indexMap = []; - } - DataZoomAxisInfo2.prototype.add = function(axisCmptIdx) { - if (!this.indexMap[axisCmptIdx]) { - this.indexList.push(axisCmptIdx); - this.indexMap[axisCmptIdx] = true; - } - }; - return DataZoomAxisInfo2; - }() -); -var DataZoomModel = ( - /** @class */ - function(_super) { - __extends(DataZoomModel2, _super); - function DataZoomModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = DataZoomModel2.type; - _this._autoThrottle = true; - _this._noTarget = true; - _this._rangePropMode = ["percent", "percent"]; - return _this; - } - DataZoomModel2.prototype.init = function(option, parentModel, ecModel) { - var inputRawOption = retrieveRawOption(option); - this.settledOption = inputRawOption; - this.mergeDefaultAndTheme(option, ecModel); - this._doInit(inputRawOption); - }; - DataZoomModel2.prototype.mergeOption = function(newOption) { - var inputRawOption = retrieveRawOption(newOption); - merge(this.option, newOption, true); - merge(this.settledOption, inputRawOption, true); - this._doInit(inputRawOption); - }; - DataZoomModel2.prototype._doInit = function(inputRawOption) { - var thisOption = this.option; - this._setDefaultThrottle(inputRawOption); - this._updateRangeUse(inputRawOption); - var settledOption = this.settledOption; - each$9([["start", "startValue"], ["end", "endValue"]], function(names, index) { - if (this._rangePropMode[index] === "value") { - thisOption[names[0]] = settledOption[names[0]] = null; - } - }, this); - this._resetTarget(); - }; - DataZoomModel2.prototype._resetTarget = function() { - var optionOrient = this.get("orient", true); - var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap(); - var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap); - if (hasAxisSpecified) { - this._orient = optionOrient || this._makeAutoOrientByTargetAxis(); - } else { - this._orient = optionOrient || "horizontal"; - this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient); - } - this._noTarget = true; - targetAxisIndexMap.each(function(axisInfo) { - if (axisInfo.indexList.length) { - this._noTarget = false; - } - }, this); - }; - DataZoomModel2.prototype._fillSpecifiedTargetAxis = function(targetAxisIndexMap) { - var hasAxisSpecified = false; - each$9(DATA_ZOOM_AXIS_DIMENSIONS, function(axisDim) { - var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING); - if (!refering.specified) { - return; - } - hasAxisSpecified = true; - var axisInfo = new DataZoomAxisInfo(); - each$9(refering.models, function(axisModel) { - axisInfo.add(axisModel.componentIndex); - }); - targetAxisIndexMap.set(axisDim, axisInfo); - }, this); - return hasAxisSpecified; - }; - DataZoomModel2.prototype._fillAutoTargetAxisByOrient = function(targetAxisIndexMap, orient) { - var ecModel = this.ecModel; - var needAuto = true; - if (needAuto) { - var axisDim = orient === "vertical" ? "y" : "x"; - var axisModels = ecModel.findComponents({ - mainType: axisDim + "Axis" - }); - setParallelAxis(axisModels, axisDim); - } - if (needAuto) { - var axisModels = ecModel.findComponents({ - mainType: "singleAxis", - filter: function(axisModel) { - return axisModel.get("orient", true) === orient; - } - }); - setParallelAxis(axisModels, "single"); - } - function setParallelAxis(axisModels2, axisDim2) { - var axisModel = axisModels2[0]; - if (!axisModel) { - return; - } - var axisInfo = new DataZoomAxisInfo(); - axisInfo.add(axisModel.componentIndex); - targetAxisIndexMap.set(axisDim2, axisInfo); - needAuto = false; - if (axisDim2 === "x" || axisDim2 === "y") { - var gridModel_1 = axisModel.getReferringComponents("grid", SINGLE_REFERRING).models[0]; - gridModel_1 && each$9(axisModels2, function(axModel) { - if (axisModel.componentIndex !== axModel.componentIndex && gridModel_1 === axModel.getReferringComponents("grid", SINGLE_REFERRING).models[0]) { - axisInfo.add(axModel.componentIndex); - } - }); - } - } - if (needAuto) { - each$9(DATA_ZOOM_AXIS_DIMENSIONS, function(axisDim2) { - if (!needAuto) { - return; - } - var axisModels2 = ecModel.findComponents({ - mainType: getAxisMainType(axisDim2), - filter: function(axisModel) { - return axisModel.get("type", true) === "category"; - } - }); - if (axisModels2[0]) { - var axisInfo = new DataZoomAxisInfo(); - axisInfo.add(axisModels2[0].componentIndex); - targetAxisIndexMap.set(axisDim2, axisInfo); - needAuto = false; - } - }, this); - } - }; - DataZoomModel2.prototype._makeAutoOrientByTargetAxis = function() { - var dim; - this.eachTargetAxis(function(axisDim) { - !dim && (dim = axisDim); - }, this); - return dim === "y" ? "vertical" : "horizontal"; - }; - DataZoomModel2.prototype._setDefaultThrottle = function(inputRawOption) { - if (inputRawOption.hasOwnProperty("throttle")) { - this._autoThrottle = false; - } - if (this._autoThrottle) { - var globalOption = this.ecModel.option; - this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20; - } - }; - DataZoomModel2.prototype._updateRangeUse = function(inputRawOption) { - var rangePropMode = this._rangePropMode; - var rangeModeInOption = this.get("rangeMode"); - each$9([["start", "startValue"], ["end", "endValue"]], function(names, index) { - var percentSpecified = inputRawOption[names[0]] != null; - var valueSpecified = inputRawOption[names[1]] != null; - if (percentSpecified && !valueSpecified) { - rangePropMode[index] = "percent"; - } else if (!percentSpecified && valueSpecified) { - rangePropMode[index] = "value"; - } else if (rangeModeInOption) { - rangePropMode[index] = rangeModeInOption[index]; - } else if (percentSpecified) { - rangePropMode[index] = "percent"; - } - }); - }; - DataZoomModel2.prototype.noTarget = function() { - return this._noTarget; - }; - DataZoomModel2.prototype.getFirstTargetAxisModel = function() { - var firstAxisModel; - this.eachTargetAxis(function(axisDim, axisIndex) { - if (firstAxisModel == null) { - firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex); - } - }, this); - return firstAxisModel; - }; - DataZoomModel2.prototype.eachTargetAxis = function(callback, context) { - this._targetAxisInfoMap.each(function(axisInfo, axisDim) { - each$9(axisInfo.indexList, function(axisIndex) { - callback.call(context, axisDim, axisIndex); - }); - }); - }; - DataZoomModel2.prototype.getAxisProxy = function(axisDim, axisIndex) { - var axisModel = this.getAxisModel(axisDim, axisIndex); - if (axisModel) { - return axisModel.__dzAxisProxy; - } - }; - DataZoomModel2.prototype.getAxisModel = function(axisDim, axisIndex) { - var axisInfo = this._targetAxisInfoMap.get(axisDim); - if (axisInfo && axisInfo.indexMap[axisIndex]) { - return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex); - } - }; - DataZoomModel2.prototype.setRawRange = function(opt) { - var thisOption = this.option; - var settledOption = this.settledOption; - each$9([["start", "startValue"], ["end", "endValue"]], function(names) { - if (opt[names[0]] != null || opt[names[1]] != null) { - thisOption[names[0]] = settledOption[names[0]] = opt[names[0]]; - thisOption[names[1]] = settledOption[names[1]] = opt[names[1]]; - } - }, this); - this._updateRangeUse(opt); - }; - DataZoomModel2.prototype.setCalculatedRange = function(opt) { - var option = this.option; - each$9(["start", "startValue", "end", "endValue"], function(name) { - option[name] = opt[name]; - }); - }; - DataZoomModel2.prototype.getPercentRange = function() { - var axisProxy = this.findRepresentativeAxisProxy(); - if (axisProxy) { - return axisProxy.getDataPercentWindow(); - } - }; - DataZoomModel2.prototype.getValueRange = function(axisDim, axisIndex) { - if (axisDim == null && axisIndex == null) { - var axisProxy = this.findRepresentativeAxisProxy(); - if (axisProxy) { - return axisProxy.getDataValueWindow(); - } - } else { - return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow(); - } - }; - DataZoomModel2.prototype.findRepresentativeAxisProxy = function(axisModel) { - if (axisModel) { - return axisModel.__dzAxisProxy; - } - var firstProxy; - var axisDimList = this._targetAxisInfoMap.keys(); - for (var i = 0; i < axisDimList.length; i++) { - var axisDim = axisDimList[i]; - var axisInfo = this._targetAxisInfoMap.get(axisDim); - for (var j = 0; j < axisInfo.indexList.length; j++) { - var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]); - if (proxy.hostedBy(this)) { - return proxy; - } - if (!firstProxy) { - firstProxy = proxy; - } - } - } - return firstProxy; - }; - DataZoomModel2.prototype.getRangePropMode = function() { - return this._rangePropMode.slice(); - }; - DataZoomModel2.prototype.getOrient = function() { - return this._orient; - }; - DataZoomModel2.type = "dataZoom"; - DataZoomModel2.dependencies = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "series", "toolbox"]; - DataZoomModel2.defaultOption = { - // zlevel: 0, - z: 4, - filterMode: "filter", - start: 0, - end: 100 - }; - return DataZoomModel2; - }(ComponentModel) -); -function retrieveRawOption(option) { - var ret = {}; - each$9(["start", "end", "startValue", "endValue", "throttle"], function(name) { - option.hasOwnProperty(name) && (ret[name] = option[name]); - }); - return ret; -} -const DataZoomModel$1 = DataZoomModel; -var SelectDataZoomModel = ( - /** @class */ - function(_super) { - __extends(SelectDataZoomModel2, _super); - function SelectDataZoomModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SelectDataZoomModel2.type; - return _this; - } - SelectDataZoomModel2.type = "dataZoom.select"; - return SelectDataZoomModel2; - }(DataZoomModel$1) -); -const SelectZoomModel = SelectDataZoomModel; -var DataZoomView = ( - /** @class */ - function(_super) { - __extends(DataZoomView2, _super); - function DataZoomView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = DataZoomView2.type; - return _this; - } - DataZoomView2.prototype.render = function(dataZoomModel, ecModel, api, payload) { - this.dataZoomModel = dataZoomModel; - this.ecModel = ecModel; - this.api = api; - }; - DataZoomView2.type = "dataZoom"; - return DataZoomView2; - }(ComponentView) -); -const DataZoomView$1 = DataZoomView; -var SelectDataZoomView = ( - /** @class */ - function(_super) { - __extends(SelectDataZoomView2, _super); - function SelectDataZoomView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SelectDataZoomView2.type; - return _this; - } - SelectDataZoomView2.type = "dataZoom.select"; - return SelectDataZoomView2; - }(DataZoomView$1) -); -const SelectZoomView = SelectDataZoomView; -var each$7 = each$9; -var asc$1 = asc$2; -var AxisProxy = ( - /** @class */ - function() { - function AxisProxy2(dimName, axisIndex, dataZoomModel, ecModel) { - this._dimName = dimName; - this._axisIndex = axisIndex; - this.ecModel = ecModel; - this._dataZoomModel = dataZoomModel; - } - AxisProxy2.prototype.hostedBy = function(dataZoomModel) { - return this._dataZoomModel === dataZoomModel; - }; - AxisProxy2.prototype.getDataValueWindow = function() { - return this._valueWindow.slice(); - }; - AxisProxy2.prototype.getDataPercentWindow = function() { - return this._percentWindow.slice(); - }; - AxisProxy2.prototype.getTargetSeriesModels = function() { - var seriesModels = []; - this.ecModel.eachSeries(function(seriesModel) { - if (isCoordSupported(seriesModel)) { - var axisMainType = getAxisMainType(this._dimName); - var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0]; - if (axisModel && this._axisIndex === axisModel.componentIndex) { - seriesModels.push(seriesModel); - } - } - }, this); - return seriesModels; - }; - AxisProxy2.prototype.getAxisModel = function() { - return this.ecModel.getComponent(this._dimName + "Axis", this._axisIndex); - }; - AxisProxy2.prototype.getMinMaxSpan = function() { - return clone$1(this._minMaxSpan); - }; - AxisProxy2.prototype.calculateDataWindow = function(opt) { - var dataExtent = this._dataExtent; - var axisModel = this.getAxisModel(); - var scale = axisModel.axis.scale; - var rangePropMode = this._dataZoomModel.getRangePropMode(); - var percentExtent = [0, 100]; - var percentWindow = []; - var valueWindow = []; - var hasPropModeValue; - each$7(["start", "end"], function(prop, idx) { - var boundPercent = opt[prop]; - var boundValue = opt[prop + "Value"]; - if (rangePropMode[idx] === "percent") { - boundPercent == null && (boundPercent = percentExtent[idx]); - boundValue = scale.parse(linearMap$2(boundPercent, percentExtent, dataExtent)); - } else { - hasPropModeValue = true; - boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue); - boundPercent = linearMap$2(boundValue, dataExtent, percentExtent); - } - valueWindow[idx] = boundValue == null || isNaN(boundValue) ? dataExtent[idx] : boundValue; - percentWindow[idx] = boundPercent == null || isNaN(boundPercent) ? percentExtent[idx] : boundPercent; - }); - asc$1(valueWindow); - asc$1(percentWindow); - var spans = this._minMaxSpan; - hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true); - function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) { - var suffix = toValue ? "Span" : "ValueSpan"; - sliderMove(0, fromWindow, fromExtent, "all", spans["min" + suffix], spans["max" + suffix]); - for (var i = 0; i < 2; i++) { - toWindow[i] = linearMap$2(fromWindow[i], fromExtent, toExtent, true); - toValue && (toWindow[i] = scale.parse(toWindow[i])); - } - } - return { - valueWindow, - percentWindow - }; - }; - AxisProxy2.prototype.reset = function(dataZoomModel) { - if (dataZoomModel !== this._dataZoomModel) { - return; - } - var targetSeries = this.getTargetSeriesModels(); - this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries); - this._updateMinMaxSpan(); - var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption); - this._valueWindow = dataWindow.valueWindow; - this._percentWindow = dataWindow.percentWindow; - this._setAxisModel(); - }; - AxisProxy2.prototype.filterData = function(dataZoomModel, api) { - if (dataZoomModel !== this._dataZoomModel) { - return; - } - var axisDim = this._dimName; - var seriesModels = this.getTargetSeriesModels(); - var filterMode = dataZoomModel.get("filterMode"); - var valueWindow = this._valueWindow; - if (filterMode === "none") { - return; - } - each$7(seriesModels, function(seriesModel) { - var seriesData = seriesModel.getData(); - var dataDims = seriesData.mapDimensionsAll(axisDim); - if (!dataDims.length) { - return; - } - if (filterMode === "weakFilter") { - var store_1 = seriesData.getStore(); - var dataDimIndices_1 = map(dataDims, function(dim) { - return seriesData.getDimensionIndex(dim); - }, seriesData); - seriesData.filterSelf(function(dataIndex) { - var leftOut; - var rightOut; - var hasValue; - for (var i = 0; i < dataDims.length; i++) { - var value = store_1.get(dataDimIndices_1[i], dataIndex); - var thisHasValue = !isNaN(value); - var thisLeftOut = value < valueWindow[0]; - var thisRightOut = value > valueWindow[1]; - if (thisHasValue && !thisLeftOut && !thisRightOut) { - return true; - } - thisHasValue && (hasValue = true); - thisLeftOut && (leftOut = true); - thisRightOut && (rightOut = true); - } - return hasValue && leftOut && rightOut; - }); - } else { - each$7(dataDims, function(dim) { - if (filterMode === "empty") { - seriesModel.setData(seriesData = seriesData.map(dim, function(value) { - return !isInWindow(value) ? NaN : value; - })); - } else { - var range = {}; - range[dim] = valueWindow; - seriesData.selectRange(range); - } - }); - } - each$7(dataDims, function(dim) { - seriesData.setApproximateExtent(valueWindow, dim); - }); - }); - function isInWindow(value) { - return value >= valueWindow[0] && value <= valueWindow[1]; - } - }; - AxisProxy2.prototype._updateMinMaxSpan = function() { - var minMaxSpan = this._minMaxSpan = {}; - var dataZoomModel = this._dataZoomModel; - var dataExtent = this._dataExtent; - each$7(["min", "max"], function(minMax) { - var percentSpan = dataZoomModel.get(minMax + "Span"); - var valueSpan = dataZoomModel.get(minMax + "ValueSpan"); - valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan)); - if (valueSpan != null) { - percentSpan = linearMap$2(dataExtent[0] + valueSpan, dataExtent, [0, 100], true); - } else if (percentSpan != null) { - valueSpan = linearMap$2(percentSpan, [0, 100], dataExtent, true) - dataExtent[0]; - } - minMaxSpan[minMax + "Span"] = percentSpan; - minMaxSpan[minMax + "ValueSpan"] = valueSpan; - }, this); - }; - AxisProxy2.prototype._setAxisModel = function() { - var axisModel = this.getAxisModel(); - var percentWindow = this._percentWindow; - var valueWindow = this._valueWindow; - if (!percentWindow) { - return; - } - var precision = getPixelPrecision(valueWindow, [0, 500]); - precision = Math.min(precision, 20); - var rawExtentInfo = axisModel.axis.scale.rawExtentInfo; - if (percentWindow[0] !== 0) { - rawExtentInfo.setDeterminedMinMax("min", +valueWindow[0].toFixed(precision)); - } - if (percentWindow[1] !== 100) { - rawExtentInfo.setDeterminedMinMax("max", +valueWindow[1].toFixed(precision)); - } - rawExtentInfo.freeze(); - }; - return AxisProxy2; - }() -); -function calculateDataExtent(axisProxy, axisDim, seriesModels) { - var dataExtent = [Infinity, -Infinity]; - each$7(seriesModels, function(seriesModel) { - unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim); - }); - var axisModel = axisProxy.getAxisModel(); - var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate(); - return [rawExtentResult.min, rawExtentResult.max]; -} -const AxisProxy$1 = AxisProxy; -var dataZoomProcessor = { - // `dataZoomProcessor` will only be performed in needed series. Consider if - // there is a line series and a pie series, it is better not to update the - // line series if only pie series is needed to be updated. - getTargetSeries: function(ecModel) { - function eachAxisModel(cb) { - ecModel.eachComponent("dataZoom", function(dataZoomModel) { - dataZoomModel.eachTargetAxis(function(axisDim, axisIndex) { - var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex); - cb(axisDim, axisIndex, axisModel, dataZoomModel); - }); - }); - } - eachAxisModel(function(axisDim, axisIndex, axisModel, dataZoomModel) { - axisModel.__dzAxisProxy = null; - }); - var proxyList = []; - eachAxisModel(function(axisDim, axisIndex, axisModel, dataZoomModel) { - if (!axisModel.__dzAxisProxy) { - axisModel.__dzAxisProxy = new AxisProxy$1(axisDim, axisIndex, dataZoomModel, ecModel); - proxyList.push(axisModel.__dzAxisProxy); - } - }); - var seriesModelMap = createHashMap(); - each$9(proxyList, function(axisProxy) { - each$9(axisProxy.getTargetSeriesModels(), function(seriesModel) { - seriesModelMap.set(seriesModel.uid, seriesModel); - }); - }); - return seriesModelMap; - }, - // Consider appendData, where filter should be performed. Because data process is - // in block mode currently, it is not need to worry about that the overallProgress - // execute every frame. - overallReset: function(ecModel, api) { - ecModel.eachComponent("dataZoom", function(dataZoomModel) { - dataZoomModel.eachTargetAxis(function(axisDim, axisIndex) { - dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel); - }); - dataZoomModel.eachTargetAxis(function(axisDim, axisIndex) { - dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api); - }); - }); - ecModel.eachComponent("dataZoom", function(dataZoomModel) { - var axisProxy = dataZoomModel.findRepresentativeAxisProxy(); - if (axisProxy) { - var percentRange = axisProxy.getDataPercentWindow(); - var valueRange = axisProxy.getDataValueWindow(); - dataZoomModel.setCalculatedRange({ - start: percentRange[0], - end: percentRange[1], - startValue: valueRange[0], - endValue: valueRange[1] - }); - } - }); - } -}; -const dataZoomProcessor$1 = dataZoomProcessor; -function installDataZoomAction(registers) { - registers.registerAction("dataZoom", function(payload, ecModel) { - var effectedModels = findEffectedDataZooms(ecModel, payload); - each$9(effectedModels, function(dataZoomModel) { - dataZoomModel.setRawRange({ - start: payload.start, - end: payload.end, - startValue: payload.startValue, - endValue: payload.endValue - }); - }); - }); -} -var installed$1 = false; -function installCommon$1(registers) { - if (installed$1) { - return; - } - installed$1 = true; - registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, dataZoomProcessor$1); - installDataZoomAction(registers); - registers.registerSubTypeDefaulter("dataZoom", function() { - return "slider"; - }); -} -function install$k(registers) { - registers.registerComponentModel(SelectZoomModel); - registers.registerComponentView(SelectZoomView); - installCommon$1(registers); -} -var ToolboxFeature = ( - /** @class */ - function() { - function ToolboxFeature2() { - } - return ToolboxFeature2; - }() -); -var features = {}; -function registerFeature(name, ctor) { - features[name] = ctor; -} -function getFeature(name) { - return features[name]; -} -var ToolboxModel = ( - /** @class */ - function(_super) { - __extends(ToolboxModel2, _super); - function ToolboxModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ToolboxModel2.type; - return _this; - } - ToolboxModel2.prototype.optionUpdated = function() { - _super.prototype.optionUpdated.apply(this, arguments); - var ecModel = this.ecModel; - each$9(this.option.feature, function(featureOpt, featureName) { - var Feature = getFeature(featureName); - if (Feature) { - if (Feature.getDefaultOption) { - Feature.defaultOption = Feature.getDefaultOption(ecModel); - } - merge(featureOpt, Feature.defaultOption); - } - }); - }; - ToolboxModel2.type = "toolbox"; - ToolboxModel2.layoutMode = { - type: "box", - ignoreSize: true - }; - ToolboxModel2.defaultOption = { - show: true, - z: 6, - // zlevel: 0, - orient: "horizontal", - left: "right", - top: "top", - // right - // bottom - backgroundColor: "transparent", - borderColor: "#ccc", - borderRadius: 0, - borderWidth: 0, - padding: 5, - itemSize: 15, - itemGap: 8, - showTitle: true, - iconStyle: { - borderColor: "#666", - color: "none" - }, - emphasis: { - iconStyle: { - borderColor: "#3E98C5" - } - }, - // textStyle: {}, - // feature - tooltip: { - show: false, - position: "bottom" - } - }; - return ToolboxModel2; - }(ComponentModel) -); -const ToolboxModel$1 = ToolboxModel; -function layout(group, componentModel, api) { - var boxLayoutParams = componentModel.getBoxLayoutParams(); - var padding = componentModel.get("padding"); - var viewportSize = { - width: api.getWidth(), - height: api.getHeight() - }; - var rect = getLayoutRect(boxLayoutParams, viewportSize, padding); - box(componentModel.get("orient"), group, componentModel.get("itemGap"), rect.width, rect.height); - positionElement(group, boxLayoutParams, viewportSize, padding); -} -function makeBackground(rect, componentModel) { - var padding = normalizeCssArray(componentModel.get("padding")); - var style = componentModel.getItemStyle(["color", "opacity"]); - style.fill = componentModel.get("backgroundColor"); - rect = new Rect$1({ - shape: { - x: rect.x - padding[3], - y: rect.y - padding[0], - width: rect.width + padding[1] + padding[3], - height: rect.height + padding[0] + padding[2], - r: componentModel.get("borderRadius") - }, - style, - silent: true, - z2: -1 - }); - return rect; -} -var ToolboxView = ( - /** @class */ - function(_super) { - __extends(ToolboxView2, _super); - function ToolboxView2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ToolboxView2.prototype.render = function(toolboxModel, ecModel, api, payload) { - var group = this.group; - group.removeAll(); - if (!toolboxModel.get("show")) { - return; - } - var itemSize = +toolboxModel.get("itemSize"); - var isVertical = toolboxModel.get("orient") === "vertical"; - var featureOpts = toolboxModel.get("feature") || {}; - var features2 = this._features || (this._features = {}); - var featureNames = []; - each$9(featureOpts, function(opt, name) { - featureNames.push(name); - }); - new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(curry$1(processFeature, null)).execute(); - this._featureNames = featureNames; - function processFeature(newIndex, oldIndex) { - var featureName = featureNames[newIndex]; - var oldName = featureNames[oldIndex]; - var featureOpt = featureOpts[featureName]; - var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel); - var feature; - if (payload && payload.newTitle != null && payload.featureName === featureName) { - featureOpt.title = payload.newTitle; - } - if (featureName && !oldName) { - if (isUserFeatureName(featureName)) { - feature = { - onclick: featureModel.option.onclick, - featureName - }; - } else { - var Feature = getFeature(featureName); - if (!Feature) { - return; - } - feature = new Feature(); - } - features2[featureName] = feature; - } else { - feature = features2[oldName]; - if (!feature) { - return; - } - } - feature.uid = getUID("toolbox-feature"); - feature.model = featureModel; - feature.ecModel = ecModel; - feature.api = api; - var isToolboxFeature = feature instanceof ToolboxFeature; - if (!featureName && oldName) { - isToolboxFeature && feature.dispose && feature.dispose(ecModel, api); - return; - } - if (!featureModel.get("show") || isToolboxFeature && feature.unusable) { - isToolboxFeature && feature.remove && feature.remove(ecModel, api); - return; - } - createIconPaths(featureModel, feature, featureName); - featureModel.setIconStatus = function(iconName, status) { - var option = this.option; - var iconPaths = this.iconPaths; - option.iconStatus = option.iconStatus || {}; - option.iconStatus[iconName] = status; - if (iconPaths[iconName]) { - (status === "emphasis" ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]); - } - }; - if (feature instanceof ToolboxFeature) { - if (feature.render) { - feature.render(featureModel, ecModel, api, payload); - } - } - } - function createIconPaths(featureModel, feature, featureName) { - var iconStyleModel = featureModel.getModel("iconStyle"); - var iconStyleEmphasisModel = featureModel.getModel(["emphasis", "iconStyle"]); - var icons = feature instanceof ToolboxFeature && feature.getIcons ? feature.getIcons() : featureModel.get("icon"); - var titles = featureModel.get("title") || {}; - var iconsMap; - var titlesMap; - if (isString(icons)) { - iconsMap = {}; - iconsMap[featureName] = icons; - } else { - iconsMap = icons; - } - if (isString(titles)) { - titlesMap = {}; - titlesMap[featureName] = titles; - } else { - titlesMap = titles; - } - var iconPaths = featureModel.iconPaths = {}; - each$9(iconsMap, function(iconStr, iconName) { - var path = createIcon(iconStr, {}, { - x: -itemSize / 2, - y: -itemSize / 2, - width: itemSize, - height: itemSize - }); - path.setStyle(iconStyleModel.getItemStyle()); - var pathEmphasisState = path.ensureState("emphasis"); - pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle(); - var textContent = new ZRText({ - style: { - text: titlesMap[iconName], - align: iconStyleEmphasisModel.get("textAlign"), - borderRadius: iconStyleEmphasisModel.get("textBorderRadius"), - padding: iconStyleEmphasisModel.get("textPadding"), - fill: null - }, - ignore: true - }); - path.setTextContent(textContent); - setTooltipConfig({ - el: path, - componentModel: toolboxModel, - itemName: iconName, - formatterParamsExtra: { - title: titlesMap[iconName] - } - }); - path.__title = titlesMap[iconName]; - path.on("mouseover", function() { - var hoverStyle = iconStyleEmphasisModel.getItemStyle(); - var defaultTextPosition = isVertical ? toolboxModel.get("right") == null && toolboxModel.get("left") !== "right" ? "right" : "left" : toolboxModel.get("bottom") == null && toolboxModel.get("top") !== "bottom" ? "bottom" : "top"; - textContent.setStyle({ - fill: iconStyleEmphasisModel.get("textFill") || hoverStyle.fill || hoverStyle.stroke || "#000", - backgroundColor: iconStyleEmphasisModel.get("textBackgroundColor") - }); - path.setTextConfig({ - position: iconStyleEmphasisModel.get("textPosition") || defaultTextPosition - }); - textContent.ignore = !toolboxModel.get("showTitle"); - api.enterEmphasis(this); - }).on("mouseout", function() { - if (featureModel.get(["iconStatus", iconName]) !== "emphasis") { - api.leaveEmphasis(this); - } - textContent.hide(); - }); - (featureModel.get(["iconStatus", iconName]) === "emphasis" ? enterEmphasis : leaveEmphasis)(path); - group.add(path); - path.on("click", bind$1(feature.onclick, feature, ecModel, api, iconName)); - iconPaths[iconName] = path; - }); - } - layout(group, toolboxModel, api); - group.add(makeBackground(group.getBoundingRect(), toolboxModel)); - isVertical || group.eachChild(function(icon) { - var titleText = icon.__title; - var emphasisState = icon.ensureState("emphasis"); - var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {}); - var textContent = icon.getTextContent(); - var emphasisTextState = textContent && textContent.ensureState("emphasis"); - if (emphasisTextState && !isFunction(emphasisTextState) && titleText) { - var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {}); - var rect = getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle)); - var offsetX = icon.x + group.x; - var offsetY = icon.y + group.y + itemSize; - var needPutOnTop = false; - if (offsetY + rect.height > api.getHeight()) { - emphasisTextConfig.position = "top"; - needPutOnTop = true; - } - var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 10; - if (offsetX + rect.width / 2 > api.getWidth()) { - emphasisTextConfig.position = ["100%", topOffset]; - emphasisTextStyle.align = "right"; - } else if (offsetX - rect.width / 2 < 0) { - emphasisTextConfig.position = [0, topOffset]; - emphasisTextStyle.align = "left"; - } - } - }); - }; - ToolboxView2.prototype.updateView = function(toolboxModel, ecModel, api, payload) { - each$9(this._features, function(feature) { - feature instanceof ToolboxFeature && feature.updateView && feature.updateView(feature.model, ecModel, api, payload); - }); - }; - ToolboxView2.prototype.remove = function(ecModel, api) { - each$9(this._features, function(feature) { - feature instanceof ToolboxFeature && feature.remove && feature.remove(ecModel, api); - }); - this.group.removeAll(); - }; - ToolboxView2.prototype.dispose = function(ecModel, api) { - each$9(this._features, function(feature) { - feature instanceof ToolboxFeature && feature.dispose && feature.dispose(ecModel, api); - }); - }; - ToolboxView2.type = "toolbox"; - return ToolboxView2; - }(ComponentView) -); -function isUserFeatureName(featureName) { - return featureName.indexOf("my") === 0; -} -const ToolboxView$1 = ToolboxView; -var SaveAsImage = ( - /** @class */ - function(_super) { - __extends(SaveAsImage2, _super); - function SaveAsImage2() { - return _super !== null && _super.apply(this, arguments) || this; - } - SaveAsImage2.prototype.onclick = function(ecModel, api) { - var model = this.model; - var title = model.get("name") || ecModel.get("title.0.text") || "echarts"; - var isSvg = api.getZr().painter.getType() === "svg"; - var type = isSvg ? "svg" : model.get("type", true) || "png"; - var url = api.getConnectedDataURL({ - type, - backgroundColor: model.get("backgroundColor", true) || ecModel.get("backgroundColor") || "#fff", - connectedBackgroundColor: model.get("connectedBackgroundColor"), - excludeComponents: model.get("excludeComponents"), - pixelRatio: model.get("pixelRatio") - }); - var browser = env.browser; - if (isFunction(MouseEvent) && (browser.newEdge || !browser.ie && !browser.edge)) { - var $a = document.createElement("a"); - $a.download = title + "." + type; - $a.target = "_blank"; - $a.href = url; - var evt = new MouseEvent("click", { - // some micro front-end framework, window maybe is a Proxy - view: document.defaultView, - bubbles: true, - cancelable: false - }); - $a.dispatchEvent(evt); - } else { - if (window.navigator.msSaveOrOpenBlob || isSvg) { - var parts = url.split(","); - var base64Encoded = parts[0].indexOf("base64") > -1; - var bstr = isSvg ? decodeURIComponent(parts[1]) : parts[1]; - base64Encoded && (bstr = window.atob(bstr)); - var filename = title + "." + type; - if (window.navigator.msSaveOrOpenBlob) { - var n = bstr.length; - var u8arr = new Uint8Array(n); - while (n--) { - u8arr[n] = bstr.charCodeAt(n); - } - var blob = new Blob([u8arr]); - window.navigator.msSaveOrOpenBlob(blob, filename); - } else { - var frame = document.createElement("iframe"); - document.body.appendChild(frame); - var cw = frame.contentWindow; - var doc = cw.document; - doc.open("image/svg+xml", "replace"); - doc.write(bstr); - doc.close(); - cw.focus(); - doc.execCommand("SaveAs", true, filename); - document.body.removeChild(frame); - } - } else { - var lang = model.get("lang"); - var html = ''; - var tab = window.open(); - tab.document.write(html); - tab.document.title = title; - } - } - }; - SaveAsImage2.getDefaultOption = function(ecModel) { - var defaultOption2 = { - show: true, - icon: "M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0", - title: ecModel.getLocaleModel().get(["toolbox", "saveAsImage", "title"]), - type: "png", - // Default use option.backgroundColor - // backgroundColor: '#fff', - connectedBackgroundColor: "#fff", - name: "", - excludeComponents: ["toolbox"], - // use current pixel ratio of device by default - // pixelRatio: 1, - lang: ecModel.getLocaleModel().get(["toolbox", "saveAsImage", "lang"]) - }; - return defaultOption2; - }; - return SaveAsImage2; - }(ToolboxFeature) -); -const SaveAsImage$1 = SaveAsImage; -var INNER_STACK_KEYWORD = "__ec_magicType_stack__"; -var radioTypes = [["line", "bar"], ["stack"]]; -var MagicType = ( - /** @class */ - function(_super) { - __extends(MagicType2, _super); - function MagicType2() { - return _super !== null && _super.apply(this, arguments) || this; - } - MagicType2.prototype.getIcons = function() { - var model = this.model; - var availableIcons = model.get("icon"); - var icons = {}; - each$9(model.get("type"), function(type) { - if (availableIcons[type]) { - icons[type] = availableIcons[type]; - } - }); - return icons; - }; - MagicType2.getDefaultOption = function(ecModel) { - var defaultOption2 = { - show: true, - type: [], - // Icon group - icon: { - line: "M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4", - bar: "M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7", - // eslint-disable-next-line - stack: "M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z" - // jshint ignore:line - }, - // `line`, `bar`, `stack`, `tiled` - title: ecModel.getLocaleModel().get(["toolbox", "magicType", "title"]), - option: {}, - seriesIndex: {} - }; - return defaultOption2; - }; - MagicType2.prototype.onclick = function(ecModel, api, type) { - var model = this.model; - var seriesIndex = model.get(["seriesIndex", type]); - if (!seriesOptGenreator[type]) { - return; - } - var newOption = { - series: [] - }; - var generateNewSeriesTypes = function(seriesModel) { - var seriesType = seriesModel.subType; - var seriesId = seriesModel.id; - var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model); - if (newSeriesOpt) { - defaults(newSeriesOpt, seriesModel.option); - newOption.series.push(newSeriesOpt); - } - var coordSys = seriesModel.coordinateSystem; - if (coordSys && coordSys.type === "cartesian2d" && (type === "line" || type === "bar")) { - var categoryAxis = coordSys.getAxesByScale("ordinal")[0]; - if (categoryAxis) { - var axisDim = categoryAxis.dim; - var axisType = axisDim + "Axis"; - var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0]; - var axisIndex = axisModel.componentIndex; - newOption[axisType] = newOption[axisType] || []; - for (var i = 0; i <= axisIndex; i++) { - newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {}; - } - newOption[axisType][axisIndex].boundaryGap = type === "bar"; - } - } - }; - each$9(radioTypes, function(radio) { - if (indexOf(radio, type) >= 0) { - each$9(radio, function(item) { - model.setIconStatus(item, "normal"); - }); - } - }); - model.setIconStatus(type, "emphasis"); - ecModel.eachComponent({ - mainType: "series", - query: seriesIndex == null ? null : { - seriesIndex - } - }, generateNewSeriesTypes); - var newTitle; - var currentType = type; - if (type === "stack") { - newTitle = merge({ - stack: model.option.title.tiled, - tiled: model.option.title.stack - }, model.option.title); - if (model.get(["iconStatus", type]) !== "emphasis") { - currentType = "tiled"; - } - } - api.dispatchAction({ - type: "changeMagicType", - currentType, - newOption, - newTitle, - featureName: "magicType" - }); - }; - return MagicType2; - }(ToolboxFeature) -); -var seriesOptGenreator = { - "line": function(seriesType, seriesId, seriesModel, model) { - if (seriesType === "bar") { - return merge({ - id: seriesId, - type: "line", - // Preserve data related option - data: seriesModel.get("data"), - stack: seriesModel.get("stack"), - markPoint: seriesModel.get("markPoint"), - markLine: seriesModel.get("markLine") - }, model.get(["option", "line"]) || {}, true); - } - }, - "bar": function(seriesType, seriesId, seriesModel, model) { - if (seriesType === "line") { - return merge({ - id: seriesId, - type: "bar", - // Preserve data related option - data: seriesModel.get("data"), - stack: seriesModel.get("stack"), - markPoint: seriesModel.get("markPoint"), - markLine: seriesModel.get("markLine") - }, model.get(["option", "bar"]) || {}, true); - } - }, - "stack": function(seriesType, seriesId, seriesModel, model) { - var isStack = seriesModel.get("stack") === INNER_STACK_KEYWORD; - if (seriesType === "line" || seriesType === "bar") { - model.setIconStatus("stack", isStack ? "normal" : "emphasis"); - return merge({ - id: seriesId, - stack: isStack ? "" : INNER_STACK_KEYWORD - }, model.get(["option", "stack"]) || {}, true); - } - } -}; -registerAction({ - type: "changeMagicType", - event: "magicTypeChanged", - update: "prepareAndUpdate" -}, function(payload, ecModel) { - ecModel.mergeOption(payload.newOption); -}); -const MagicType$1 = MagicType; -var BLOCK_SPLITER = new Array(60).join("-"); -var ITEM_SPLITER = " "; -function groupSeries(ecModel) { - var seriesGroupByCategoryAxis = {}; - var otherSeries = []; - var meta = []; - ecModel.eachRawSeries(function(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - if (coordSys && (coordSys.type === "cartesian2d" || coordSys.type === "polar")) { - var baseAxis = coordSys.getBaseAxis(); - if (baseAxis.type === "category") { - var key = baseAxis.dim + "_" + baseAxis.index; - if (!seriesGroupByCategoryAxis[key]) { - seriesGroupByCategoryAxis[key] = { - categoryAxis: baseAxis, - valueAxis: coordSys.getOtherAxis(baseAxis), - series: [] - }; - meta.push({ - axisDim: baseAxis.dim, - axisIndex: baseAxis.index - }); - } - seriesGroupByCategoryAxis[key].series.push(seriesModel); - } else { - otherSeries.push(seriesModel); - } - } else { - otherSeries.push(seriesModel); - } - }); - return { - seriesGroupByCategoryAxis, - other: otherSeries, - meta - }; -} -function assembleSeriesWithCategoryAxis(groups) { - var tables = []; - each$9(groups, function(group, key) { - var categoryAxis = group.categoryAxis; - var valueAxis = group.valueAxis; - var valueAxisDim = valueAxis.dim; - var headers = [" "].concat(map(group.series, function(series) { - return series.name; - })); - var columns = [categoryAxis.model.getCategories()]; - each$9(group.series, function(series) { - var rawData = series.getRawData(); - columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function(val) { - return val; - })); - }); - var lines = [headers.join(ITEM_SPLITER)]; - for (var i = 0; i < columns[0].length; i++) { - var items = []; - for (var j = 0; j < columns.length; j++) { - items.push(columns[j][i]); - } - lines.push(items.join(ITEM_SPLITER)); - } - tables.push(lines.join("\n")); - }); - return tables.join("\n\n" + BLOCK_SPLITER + "\n\n"); -} -function assembleOtherSeries(series) { - return map(series, function(series2) { - var data = series2.getRawData(); - var lines = [series2.name]; - var vals = []; - data.each(data.dimensions, function() { - var argLen = arguments.length; - var dataIndex = arguments[argLen - 1]; - var name = data.getName(dataIndex); - for (var i = 0; i < argLen - 1; i++) { - vals[i] = arguments[i]; - } - lines.push((name ? name + ITEM_SPLITER : "") + vals.join(ITEM_SPLITER)); - }); - return lines.join("\n"); - }).join("\n\n" + BLOCK_SPLITER + "\n\n"); -} -function getContentFromModel(ecModel) { - var result = groupSeries(ecModel); - return { - value: filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function(str) { - return !!str.replace(/[\n\t\s]/g, ""); - }).join("\n\n" + BLOCK_SPLITER + "\n\n"), - meta: result.meta - }; -} -function trim(str) { - return str.replace(/^\s\s*/, "").replace(/\s\s*$/, ""); -} -function isTSVFormat(block) { - var firstLine = block.slice(0, block.indexOf("\n")); - if (firstLine.indexOf(ITEM_SPLITER) >= 0) { - return true; - } -} -var itemSplitRegex = new RegExp("[" + ITEM_SPLITER + "]+", "g"); -function parseTSVContents(tsv) { - var tsvLines = tsv.split(/\n+/g); - var headers = trim(tsvLines.shift()).split(itemSplitRegex); - var categories = []; - var series = map(headers, function(header) { - return { - name: header, - data: [] - }; - }); - for (var i = 0; i < tsvLines.length; i++) { - var items = trim(tsvLines[i]).split(itemSplitRegex); - categories.push(items.shift()); - for (var j = 0; j < items.length; j++) { - series[j] && (series[j].data[i] = items[j]); - } - } - return { - series, - categories - }; -} -function parseListContents(str) { - var lines = str.split(/\n+/g); - var seriesName = trim(lines.shift()); - var data = []; - for (var i = 0; i < lines.length; i++) { - var line = trim(lines[i]); - if (!line) { - continue; - } - var items = line.split(itemSplitRegex); - var name_1 = ""; - var value = void 0; - var hasName = false; - if (isNaN(items[0])) { - hasName = true; - name_1 = items[0]; - items = items.slice(1); - data[i] = { - name: name_1, - value: [] - }; - value = data[i].value; - } else { - value = data[i] = []; - } - for (var j = 0; j < items.length; j++) { - value.push(+items[j]); - } - if (value.length === 1) { - hasName ? data[i].value = value[0] : data[i] = value[0]; - } - } - return { - name: seriesName, - data - }; -} -function parseContents(str, blockMetaList) { - var blocks = str.split(new RegExp("\n*" + BLOCK_SPLITER + "\n*", "g")); - var newOption = { - series: [] - }; - each$9(blocks, function(block, idx) { - if (isTSVFormat(block)) { - var result = parseTSVContents(block); - var blockMeta = blockMetaList[idx]; - var axisKey = blockMeta.axisDim + "Axis"; - if (blockMeta) { - newOption[axisKey] = newOption[axisKey] || []; - newOption[axisKey][blockMeta.axisIndex] = { - data: result.categories - }; - newOption.series = newOption.series.concat(result.series); - } - } else { - var result = parseListContents(block); - newOption.series.push(result); - } - }); - return newOption; -} -var DataView = ( - /** @class */ - function(_super) { - __extends(DataView2, _super); - function DataView2() { - return _super !== null && _super.apply(this, arguments) || this; - } - DataView2.prototype.onclick = function(ecModel, api) { - setTimeout(function() { - api.dispatchAction({ - type: "hideTip" - }); - }); - var container = api.getDom(); - var model = this.model; - if (this._dom) { - container.removeChild(this._dom); - } - var root = document.createElement("div"); - root.style.cssText = "position:absolute;top:0;bottom:0;left:0;right:0;padding:5px"; - root.style.backgroundColor = model.get("backgroundColor") || "#fff"; - var header = document.createElement("h4"); - var lang = model.get("lang") || []; - header.innerHTML = lang[0] || model.get("title"); - header.style.cssText = "margin:10px 20px"; - header.style.color = model.get("textColor"); - var viewMain = document.createElement("div"); - var textarea = document.createElement("textarea"); - viewMain.style.cssText = "overflow:auto"; - var optionToContent = model.get("optionToContent"); - var contentToOption = model.get("contentToOption"); - var result = getContentFromModel(ecModel); - if (isFunction(optionToContent)) { - var htmlOrDom = optionToContent(api.getOption()); - if (isString(htmlOrDom)) { - viewMain.innerHTML = htmlOrDom; - } else if (isDom(htmlOrDom)) { - viewMain.appendChild(htmlOrDom); - } - } else { - textarea.readOnly = model.get("readOnly"); - var style = textarea.style; - style.cssText = "display:block;width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;resize:none;box-sizing:border-box;outline:none"; - style.color = model.get("textColor"); - style.borderColor = model.get("textareaBorderColor"); - style.backgroundColor = model.get("textareaColor"); - textarea.value = result.value; - viewMain.appendChild(textarea); - } - var blockMetaList = result.meta; - var buttonContainer = document.createElement("div"); - buttonContainer.style.cssText = "position:absolute;bottom:5px;left:0;right:0"; - var buttonStyle = "float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px"; - var closeButton = document.createElement("div"); - var refreshButton = document.createElement("div"); - buttonStyle += ";background-color:" + model.get("buttonColor"); - buttonStyle += ";color:" + model.get("buttonTextColor"); - var self = this; - function close() { - container.removeChild(root); - self._dom = null; - } - addEventListener(closeButton, "click", close); - addEventListener(refreshButton, "click", function() { - if (contentToOption == null && optionToContent != null || contentToOption != null && optionToContent == null) { - close(); - return; - } - var newOption; - try { - if (isFunction(contentToOption)) { - newOption = contentToOption(viewMain, api.getOption()); - } else { - newOption = parseContents(textarea.value, blockMetaList); - } - } catch (e) { - close(); - throw new Error("Data view format error " + e); - } - if (newOption) { - api.dispatchAction({ - type: "changeDataView", - newOption - }); - } - close(); - }); - closeButton.innerHTML = lang[1]; - refreshButton.innerHTML = lang[2]; - refreshButton.style.cssText = closeButton.style.cssText = buttonStyle; - !model.get("readOnly") && buttonContainer.appendChild(refreshButton); - buttonContainer.appendChild(closeButton); - root.appendChild(header); - root.appendChild(viewMain); - root.appendChild(buttonContainer); - viewMain.style.height = container.clientHeight - 80 + "px"; - container.appendChild(root); - this._dom = root; - }; - DataView2.prototype.remove = function(ecModel, api) { - this._dom && api.getDom().removeChild(this._dom); - }; - DataView2.prototype.dispose = function(ecModel, api) { - this.remove(ecModel, api); - }; - DataView2.getDefaultOption = function(ecModel) { - var defaultOption2 = { - show: true, - readOnly: false, - optionToContent: null, - contentToOption: null, - // eslint-disable-next-line - icon: "M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28", - title: ecModel.getLocaleModel().get(["toolbox", "dataView", "title"]), - lang: ecModel.getLocaleModel().get(["toolbox", "dataView", "lang"]), - backgroundColor: "#fff", - textColor: "#000", - textareaColor: "#fff", - textareaBorderColor: "#333", - buttonColor: "#c23531", - buttonTextColor: "#fff" - }; - return defaultOption2; - }; - return DataView2; - }(ToolboxFeature) -); -function tryMergeDataOption(newData, originalData) { - return map(newData, function(newVal, idx) { - var original = originalData && originalData[idx]; - if (isObject(original) && !isArray$1(original)) { - var newValIsObject = isObject(newVal) && !isArray$1(newVal); - if (!newValIsObject) { - newVal = { - value: newVal - }; - } - var shouldDeleteName = original.name != null && newVal.name == null; - newVal = defaults(newVal, original); - shouldDeleteName && delete newVal.name; - return newVal; - } else { - return newVal; - } - }); -} -registerAction({ - type: "changeDataView", - event: "dataViewChanged", - update: "prepareAndUpdate" -}, function(payload, ecModel) { - var newSeriesOptList = []; - each$9(payload.newOption.series, function(seriesOpt) { - var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0]; - if (!seriesModel) { - newSeriesOptList.push(extend({ - // Default is scatter - type: "scatter" - }, seriesOpt)); - } else { - var originalData = seriesModel.get("data"); - newSeriesOptList.push({ - name: seriesOpt.name, - data: tryMergeDataOption(seriesOpt.data, originalData) - }); - } - }); - ecModel.mergeOption(defaults({ - series: newSeriesOptList - }, payload.newOption)); -}); -const DataView$1 = DataView; -var each$6 = each$9; -var inner$6 = makeInner(); -function push(ecModel, newSnapshot) { - var storedSnapshots = getStoreSnapshots(ecModel); - each$6(newSnapshot, function(batchItem, dataZoomId) { - var i = storedSnapshots.length - 1; - for (; i >= 0; i--) { - var snapshot = storedSnapshots[i]; - if (snapshot[dataZoomId]) { - break; - } - } - if (i < 0) { - var dataZoomModel = ecModel.queryComponents({ - mainType: "dataZoom", - subType: "select", - id: dataZoomId - })[0]; - if (dataZoomModel) { - var percentRange = dataZoomModel.getPercentRange(); - storedSnapshots[0][dataZoomId] = { - dataZoomId, - start: percentRange[0], - end: percentRange[1] - }; - } - } - }); - storedSnapshots.push(newSnapshot); -} -function pop(ecModel) { - var storedSnapshots = getStoreSnapshots(ecModel); - var head = storedSnapshots[storedSnapshots.length - 1]; - storedSnapshots.length > 1 && storedSnapshots.pop(); - var snapshot = {}; - each$6(head, function(batchItem, dataZoomId) { - for (var i = storedSnapshots.length - 1; i >= 0; i--) { - batchItem = storedSnapshots[i][dataZoomId]; - if (batchItem) { - snapshot[dataZoomId] = batchItem; - break; - } - } - }); - return snapshot; -} -function clear(ecModel) { - inner$6(ecModel).snapshots = null; -} -function count(ecModel) { - return getStoreSnapshots(ecModel).length; -} -function getStoreSnapshots(ecModel) { - var store = inner$6(ecModel); - if (!store.snapshots) { - store.snapshots = [{}]; - } - return store.snapshots; -} -var RestoreOption = ( - /** @class */ - function(_super) { - __extends(RestoreOption2, _super); - function RestoreOption2() { - return _super !== null && _super.apply(this, arguments) || this; - } - RestoreOption2.prototype.onclick = function(ecModel, api) { - clear(ecModel); - api.dispatchAction({ - type: "restore", - from: this.uid - }); - }; - RestoreOption2.getDefaultOption = function(ecModel) { - var defaultOption2 = { - show: true, - // eslint-disable-next-line - icon: "M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5", - title: ecModel.getLocaleModel().get(["toolbox", "restore", "title"]) - }; - return defaultOption2; - }; - return RestoreOption2; - }(ToolboxFeature) -); -registerAction({ - type: "restore", - event: "restore", - update: "prepareAndUpdate" -}, function(payload, ecModel) { - ecModel.resetOption("recreate"); -}); -const Restore = RestoreOption; -var INCLUDE_FINDER_MAIN_TYPES = ["grid", "xAxis", "yAxis", "geo", "graph", "polar", "radiusAxis", "angleAxis", "bmap"]; -var BrushTargetManager = ( - /** @class */ - function() { - function BrushTargetManager2(finder, ecModel, opt) { - var _this = this; - this._targetInfoList = []; - var foundCpts = parseFinder(ecModel, finder); - each$9(targetInfoBuilders, function(builder, type) { - if (!opt || !opt.include || indexOf(opt.include, type) >= 0) { - builder(foundCpts, _this._targetInfoList); - } - }); - } - BrushTargetManager2.prototype.setOutputRanges = function(areas, ecModel) { - this.matchOutputRanges(areas, ecModel, function(area, coordRange, coordSys) { - (area.coordRanges || (area.coordRanges = [])).push(coordRange); - if (!area.coordRange) { - area.coordRange = coordRange; - var result = coordConvert[area.brushType](0, coordSys, coordRange); - area.__rangeOffset = { - offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]), - xyMinMax: result.xyMinMax - }; - } - }); - return areas; - }; - BrushTargetManager2.prototype.matchOutputRanges = function(areas, ecModel, cb) { - each$9(areas, function(area) { - var targetInfo = this.findTargetInfo(area, ecModel); - if (targetInfo && targetInfo !== true) { - each$9(targetInfo.coordSyses, function(coordSys) { - var result = coordConvert[area.brushType](1, coordSys, area.range, true); - cb(area, result.values, coordSys, ecModel); - }); - } - }, this); - }; - BrushTargetManager2.prototype.setInputRanges = function(areas, ecModel) { - each$9(areas, function(area) { - var targetInfo = this.findTargetInfo(area, ecModel); - area.range = area.range || []; - if (targetInfo && targetInfo !== true) { - area.panelId = targetInfo.panelId; - var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange); - var rangeOffset = area.__rangeOffset; - area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values; - } - }, this); - }; - BrushTargetManager2.prototype.makePanelOpts = function(api, getDefaultBrushType) { - return map(this._targetInfoList, function(targetInfo) { - var rect = targetInfo.getPanelRect(); - return { - panelId: targetInfo.panelId, - defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null, - clipPath: makeRectPanelClipPath(rect), - isTargetByCursor: makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel), - getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect) - }; - }); - }; - BrushTargetManager2.prototype.controlSeries = function(area, seriesModel, ecModel) { - var targetInfo = this.findTargetInfo(area, ecModel); - return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0; - }; - BrushTargetManager2.prototype.findTargetInfo = function(area, ecModel) { - var targetInfoList = this._targetInfoList; - var foundCpts = parseFinder(ecModel, area); - for (var i = 0; i < targetInfoList.length; i++) { - var targetInfo = targetInfoList[i]; - var areaPanelId = area.panelId; - if (areaPanelId) { - if (targetInfo.panelId === areaPanelId) { - return targetInfo; - } - } else { - for (var j = 0; j < targetInfoMatchers.length; j++) { - if (targetInfoMatchers[j](foundCpts, targetInfo)) { - return targetInfo; - } - } - } - } - return true; - }; - return BrushTargetManager2; - }() -); -function formatMinMax(minMax) { - minMax[0] > minMax[1] && minMax.reverse(); - return minMax; -} -function parseFinder(ecModel, finder) { - return parseFinder$1(ecModel, finder, { - includeMainTypes: INCLUDE_FINDER_MAIN_TYPES - }); -} -var targetInfoBuilders = { - grid: function(foundCpts, targetInfoList) { - var xAxisModels = foundCpts.xAxisModels; - var yAxisModels = foundCpts.yAxisModels; - var gridModels = foundCpts.gridModels; - var gridModelMap = createHashMap(); - var xAxesHas = {}; - var yAxesHas = {}; - if (!xAxisModels && !yAxisModels && !gridModels) { - return; - } - each$9(xAxisModels, function(axisModel) { - var gridModel = axisModel.axis.grid.model; - gridModelMap.set(gridModel.id, gridModel); - xAxesHas[gridModel.id] = true; - }); - each$9(yAxisModels, function(axisModel) { - var gridModel = axisModel.axis.grid.model; - gridModelMap.set(gridModel.id, gridModel); - yAxesHas[gridModel.id] = true; - }); - each$9(gridModels, function(gridModel) { - gridModelMap.set(gridModel.id, gridModel); - xAxesHas[gridModel.id] = true; - yAxesHas[gridModel.id] = true; - }); - gridModelMap.each(function(gridModel) { - var grid = gridModel.coordinateSystem; - var cartesians = []; - each$9(grid.getCartesians(), function(cartesian, index) { - if (indexOf(xAxisModels, cartesian.getAxis("x").model) >= 0 || indexOf(yAxisModels, cartesian.getAxis("y").model) >= 0) { - cartesians.push(cartesian); - } - }); - targetInfoList.push({ - panelId: "grid--" + gridModel.id, - gridModel, - coordSysModel: gridModel, - // Use the first one as the representitive coordSys. - coordSys: cartesians[0], - coordSyses: cartesians, - getPanelRect: panelRectBuilders.grid, - xAxisDeclared: xAxesHas[gridModel.id], - yAxisDeclared: yAxesHas[gridModel.id] - }); - }); - }, - geo: function(foundCpts, targetInfoList) { - each$9(foundCpts.geoModels, function(geoModel) { - var coordSys = geoModel.coordinateSystem; - targetInfoList.push({ - panelId: "geo--" + geoModel.id, - geoModel, - coordSysModel: geoModel, - coordSys, - coordSyses: [coordSys], - getPanelRect: panelRectBuilders.geo - }); - }); - } -}; -var targetInfoMatchers = [ - // grid - function(foundCpts, targetInfo) { - var xAxisModel = foundCpts.xAxisModel; - var yAxisModel = foundCpts.yAxisModel; - var gridModel = foundCpts.gridModel; - !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model); - !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model); - return gridModel && gridModel === targetInfo.gridModel; - }, - // geo - function(foundCpts, targetInfo) { - var geoModel = foundCpts.geoModel; - return geoModel && geoModel === targetInfo.geoModel; - } -]; -var panelRectBuilders = { - grid: function() { - return this.coordSys.master.getRect().clone(); - }, - geo: function() { - var coordSys = this.coordSys; - var rect = coordSys.getBoundingRect().clone(); - rect.applyTransform(getTransform(coordSys)); - return rect; - } -}; -var coordConvert = { - lineX: curry$1(axisConvert, 0), - lineY: curry$1(axisConvert, 1), - rect: function(to, coordSys, rangeOrCoordRange, clamp) { - var xminymin = to ? coordSys.pointToData([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]], clamp) : coordSys.dataToPoint([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]], clamp); - var xmaxymax = to ? coordSys.pointToData([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]], clamp) : coordSys.dataToPoint([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]], clamp); - var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])]; - return { - values, - xyMinMax: values - }; - }, - polygon: function(to, coordSys, rangeOrCoordRange, clamp) { - var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]]; - var values = map(rangeOrCoordRange, function(item) { - var p = to ? coordSys.pointToData(item, clamp) : coordSys.dataToPoint(item, clamp); - xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]); - xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]); - xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]); - xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]); - return p; - }); - return { - values, - xyMinMax - }; - } -}; -function axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) { - var axis = coordSys.getAxis(["x", "y"][axisNameIndex]); - var values = formatMinMax(map([0, 1], function(i) { - return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i]), true) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i])); - })); - var xyMinMax = []; - xyMinMax[axisNameIndex] = values; - xyMinMax[1 - axisNameIndex] = [NaN, NaN]; - return { - values, - xyMinMax - }; -} -var diffProcessor = { - lineX: curry$1(axisDiffProcessor, 0), - lineY: curry$1(axisDiffProcessor, 1), - rect: function(values, refer, scales) { - return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]]; - }, - polygon: function(values, refer, scales) { - return map(values, function(item, idx) { - return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]]; - }); - } -}; -function axisDiffProcessor(axisNameIndex, values, refer, scales) { - return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]]; -} -function getScales(xyMinMaxCurr, xyMinMaxOrigin) { - var sizeCurr = getSize(xyMinMaxCurr); - var sizeOrigin = getSize(xyMinMaxOrigin); - var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]]; - isNaN(scales[0]) && (scales[0] = 1); - isNaN(scales[1]) && (scales[1] = 1); - return scales; -} -function getSize(xyMinMax) { - return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN]; -} -const BrushTargetManager$1 = BrushTargetManager; -var each$5 = each$9; -var DATA_ZOOM_ID_BASE = makeInternalComponentId("toolbox-dataZoom_"); -var DataZoomFeature = ( - /** @class */ - function(_super) { - __extends(DataZoomFeature2, _super); - function DataZoomFeature2() { - return _super !== null && _super.apply(this, arguments) || this; - } - DataZoomFeature2.prototype.render = function(featureModel, ecModel, api, payload) { - if (!this._brushController) { - this._brushController = new BrushController(api.getZr()); - this._brushController.on("brush", bind$1(this._onBrush, this)).mount(); - } - updateZoomBtnStatus(featureModel, ecModel, this, payload, api); - updateBackBtnStatus(featureModel, ecModel); - }; - DataZoomFeature2.prototype.onclick = function(ecModel, api, type) { - handlers[type].call(this); - }; - DataZoomFeature2.prototype.remove = function(ecModel, api) { - this._brushController && this._brushController.unmount(); - }; - DataZoomFeature2.prototype.dispose = function(ecModel, api) { - this._brushController && this._brushController.dispose(); - }; - DataZoomFeature2.prototype._onBrush = function(eventParam) { - var areas = eventParam.areas; - if (!eventParam.isEnd || !areas.length) { - return; - } - var snapshot = {}; - var ecModel = this.ecModel; - this._brushController.updateCovers([]); - var brushTargetManager = new BrushTargetManager$1(makeAxisFinder(this.model), ecModel, { - include: ["grid"] - }); - brushTargetManager.matchOutputRanges(areas, ecModel, function(area, coordRange, coordSys) { - if (coordSys.type !== "cartesian2d") { - return; - } - var brushType = area.brushType; - if (brushType === "rect") { - setBatch("x", coordSys, coordRange[0]); - setBatch("y", coordSys, coordRange[1]); - } else { - setBatch({ - lineX: "x", - lineY: "y" - }[brushType], coordSys, coordRange); - } - }); - push(ecModel, snapshot); - this._dispatchZoomAction(snapshot); - function setBatch(dimName, coordSys, minMax) { - var axis = coordSys.getAxis(dimName); - var axisModel = axis.model; - var dataZoomModel = findDataZoom(dimName, axisModel, ecModel); - var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan(); - if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) { - minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan); - } - dataZoomModel && (snapshot[dataZoomModel.id] = { - dataZoomId: dataZoomModel.id, - startValue: minMax[0], - endValue: minMax[1] - }); - } - function findDataZoom(dimName, axisModel, ecModel2) { - var found; - ecModel2.eachComponent({ - mainType: "dataZoom", - subType: "select" - }, function(dzModel) { - var has2 = dzModel.getAxisModel(dimName, axisModel.componentIndex); - has2 && (found = dzModel); - }); - return found; - } - }; - DataZoomFeature2.prototype._dispatchZoomAction = function(snapshot) { - var batch = []; - each$5(snapshot, function(batchItem, dataZoomId) { - batch.push(clone$1(batchItem)); - }); - batch.length && this.api.dispatchAction({ - type: "dataZoom", - from: this.uid, - batch - }); - }; - DataZoomFeature2.getDefaultOption = function(ecModel) { - var defaultOption2 = { - show: true, - filterMode: "filter", - // Icon group - icon: { - zoom: "M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1", - back: "M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26" - }, - // `zoom`, `back` - title: ecModel.getLocaleModel().get(["toolbox", "dataZoom", "title"]), - brushStyle: { - borderWidth: 0, - color: "rgba(210,219,238,0.2)" - } - }; - return defaultOption2; - }; - return DataZoomFeature2; - }(ToolboxFeature) -); -var handlers = { - zoom: function() { - var nextActive = !this._isZoomActive; - this.api.dispatchAction({ - type: "takeGlobalCursor", - key: "dataZoomSelect", - dataZoomSelectActive: nextActive - }); - }, - back: function() { - this._dispatchZoomAction(pop(this.ecModel)); - } -}; -function makeAxisFinder(dzFeatureModel) { - var setting = { - xAxisIndex: dzFeatureModel.get("xAxisIndex", true), - yAxisIndex: dzFeatureModel.get("yAxisIndex", true), - xAxisId: dzFeatureModel.get("xAxisId", true), - yAxisId: dzFeatureModel.get("yAxisId", true) - }; - if (setting.xAxisIndex == null && setting.xAxisId == null) { - setting.xAxisIndex = "all"; - } - if (setting.yAxisIndex == null && setting.yAxisId == null) { - setting.yAxisIndex = "all"; - } - return setting; -} -function updateBackBtnStatus(featureModel, ecModel) { - featureModel.setIconStatus("back", count(ecModel) > 1 ? "emphasis" : "normal"); -} -function updateZoomBtnStatus(featureModel, ecModel, view, payload, api) { - var zoomActive = view._isZoomActive; - if (payload && payload.type === "takeGlobalCursor") { - zoomActive = payload.key === "dataZoomSelect" ? payload.dataZoomSelectActive : false; - } - view._isZoomActive = zoomActive; - featureModel.setIconStatus("zoom", zoomActive ? "emphasis" : "normal"); - var brushTargetManager = new BrushTargetManager$1(makeAxisFinder(featureModel), ecModel, { - include: ["grid"] - }); - var panels = brushTargetManager.makePanelOpts(api, function(targetInfo) { - return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? "lineX" : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? "lineY" : "rect"; - }); - view._brushController.setPanels(panels).enableBrush(zoomActive && panels.length ? { - brushType: "auto", - brushStyle: featureModel.getModel("brushStyle").getItemStyle() - } : false); -} -registerInternalOptionCreator("dataZoom", function(ecModel) { - var toolboxModel = ecModel.getComponent("toolbox", 0); - var featureDataZoomPath = ["feature", "dataZoom"]; - if (!toolboxModel || toolboxModel.get(featureDataZoomPath) == null) { - return; - } - var dzFeatureModel = toolboxModel.getModel(featureDataZoomPath); - var dzOptions = []; - var finder = makeAxisFinder(dzFeatureModel); - var finderResult = parseFinder$1(ecModel, finder); - each$5(finderResult.xAxisModels, function(axisModel) { - return buildInternalOptions(axisModel, "xAxis", "xAxisIndex"); - }); - each$5(finderResult.yAxisModels, function(axisModel) { - return buildInternalOptions(axisModel, "yAxis", "yAxisIndex"); - }); - function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) { - var axisIndex = axisModel.componentIndex; - var newOpt = { - type: "select", - $fromToolbox: true, - // Default to be filter - filterMode: dzFeatureModel.get("filterMode", true) || "filter", - // Id for merge mapping. - id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex - }; - newOpt[axisIndexPropName] = axisIndex; - dzOptions.push(newOpt); - } - return dzOptions; -}); -const DataZoom = DataZoomFeature; -function install$j(registers) { - registers.registerComponentModel(ToolboxModel$1); - registers.registerComponentView(ToolboxView$1); - registerFeature("saveAsImage", SaveAsImage$1); - registerFeature("magicType", MagicType$1); - registerFeature("dataView", DataView$1); - registerFeature("dataZoom", DataZoom); - registerFeature("restore", Restore); - use(install$k); -} -var TooltipModel = ( - /** @class */ - function(_super) { - __extends(TooltipModel2, _super); - function TooltipModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = TooltipModel2.type; - return _this; - } - TooltipModel2.type = "tooltip"; - TooltipModel2.dependencies = ["axisPointer"]; - TooltipModel2.defaultOption = { - // zlevel: 0, - z: 60, - show: true, - // tooltip main content - showContent: true, - // 'trigger' only works on coordinate system. - // 'item' | 'axis' | 'none' - trigger: "item", - // 'click' | 'mousemove' | 'none' - triggerOn: "mousemove|click", - alwaysShowContent: false, - displayMode: "single", - renderMode: "auto", - // whether restraint content inside viewRect. - // If renderMode: 'richText', default true. - // If renderMode: 'html', defaut false (for backward compat). - confine: null, - showDelay: 0, - hideDelay: 100, - // Animation transition time, unit is second - transitionDuration: 0.4, - enterable: false, - backgroundColor: "#fff", - // box shadow - shadowBlur: 10, - shadowColor: "rgba(0, 0, 0, .2)", - shadowOffsetX: 1, - shadowOffsetY: 2, - // tooltip border radius, unit is px, default is 4 - borderRadius: 4, - // tooltip border width, unit is px, default is 0 (no border) - borderWidth: 1, - // Tooltip inside padding, default is 5 for all direction - // Array is allowed to set up, right, bottom, left, same with css - // The default value: See `tooltip/tooltipMarkup.ts#getPaddingFromTooltipModel`. - padding: null, - // Extra css text - extraCssText: "", - // axis indicator, trigger by axis - axisPointer: { - // default is line - // legal values: 'line' | 'shadow' | 'cross' - type: "line", - // Valid when type is line, appoint tooltip line locate on which line. Optional - // legal values: 'x' | 'y' | 'angle' | 'radius' | 'auto' - // default is 'auto', chose the axis which type is category. - // for multiply y axis, cartesian coord chose x axis, polar chose angle axis - axis: "auto", - animation: "auto", - animationDurationUpdate: 200, - animationEasingUpdate: "exponentialOut", - crossStyle: { - color: "#999", - width: 1, - type: "dashed", - // TODO formatter - textStyle: {} - } - // lineStyle and shadowStyle should not be specified here, - // otherwise it will always override those styles on option.axisPointer. - }, - textStyle: { - color: "#666", - fontSize: 14 - } - }; - return TooltipModel2; - }(ComponentModel) -); -const TooltipModel$1 = TooltipModel; -function shouldTooltipConfine(tooltipModel) { - var confineOption = tooltipModel.get("confine"); - return confineOption != null ? !!confineOption : tooltipModel.get("renderMode") === "richText"; -} -function testStyle(styleProps) { - if (!env.domSupported) { - return; - } - var style = document.documentElement.style; - for (var i = 0, len = styleProps.length; i < len; i++) { - if (styleProps[i] in style) { - return styleProps[i]; - } - } -} -var TRANSFORM_VENDOR = testStyle(["transform", "webkitTransform", "OTransform", "MozTransform", "msTransform"]); -var TRANSITION_VENDOR = testStyle(["webkitTransition", "transition", "OTransition", "MozTransition", "msTransition"]); -function toCSSVendorPrefix(styleVendor, styleProp) { - if (!styleVendor) { - return styleProp; - } - styleProp = toCamelCase(styleProp, true); - var idx = styleVendor.indexOf(styleProp); - styleVendor = idx === -1 ? styleProp : "-" + styleVendor.slice(0, idx) + "-" + styleProp; - return styleVendor.toLowerCase(); -} -function getComputedStyle(el, style) { - var stl = el.currentStyle || document.defaultView && document.defaultView.getComputedStyle(el); - return stl ? style ? stl[style] : stl : null; -} -var CSS_TRANSITION_VENDOR = toCSSVendorPrefix(TRANSITION_VENDOR, "transition"); -var CSS_TRANSFORM_VENDOR = toCSSVendorPrefix(TRANSFORM_VENDOR, "transform"); -var gCssText = "position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;" + (env.transform3dSupported ? "will-change:transform;" : ""); -function mirrorPos(pos) { - pos = pos === "left" ? "right" : pos === "right" ? "left" : pos === "top" ? "bottom" : "top"; - return pos; -} -function assembleArrow(tooltipModel, borderColor, arrowPosition) { - if (!isString(arrowPosition) || arrowPosition === "inside") { - return ""; - } - var backgroundColor = tooltipModel.get("backgroundColor"); - var borderWidth = tooltipModel.get("borderWidth"); - borderColor = convertToColorString(borderColor); - var arrowPos = mirrorPos(arrowPosition); - var arrowSize = Math.max(Math.round(borderWidth) * 1.5, 6); - var positionStyle = ""; - var transformStyle = CSS_TRANSFORM_VENDOR + ":"; - var rotateDeg; - if (indexOf(["left", "right"], arrowPos) > -1) { - positionStyle += "top:50%"; - transformStyle += "translateY(-50%) rotate(" + (rotateDeg = arrowPos === "left" ? -225 : -45) + "deg)"; - } else { - positionStyle += "left:50%"; - transformStyle += "translateX(-50%) rotate(" + (rotateDeg = arrowPos === "top" ? 225 : 45) + "deg)"; - } - var rotateRadian = rotateDeg * Math.PI / 180; - var arrowWH = arrowSize + borderWidth; - var rotatedWH = arrowWH * Math.abs(Math.cos(rotateRadian)) + arrowWH * Math.abs(Math.sin(rotateRadian)); - var arrowOffset = Math.round(((rotatedWH - Math.SQRT2 * borderWidth) / 2 + Math.SQRT2 * borderWidth - (rotatedWH - arrowWH) / 2) * 100) / 100; - positionStyle += ";" + arrowPos + ":-" + arrowOffset + "px"; - var borderStyle = borderColor + " solid " + borderWidth + "px;"; - var styleCss = ["position:absolute;width:" + arrowSize + "px;height:" + arrowSize + "px;z-index:-1;", positionStyle + ";" + transformStyle + ";", "border-bottom:" + borderStyle, "border-right:" + borderStyle, "background-color:" + backgroundColor + ";"]; - return '
    '; -} -function assembleTransition(duration, onlyFade) { - var transitionCurve = "cubic-bezier(0.23,1,0.32,1)"; - var transitionOption = " " + duration / 2 + "s " + transitionCurve; - var transitionText = "opacity" + transitionOption + ",visibility" + transitionOption; - if (!onlyFade) { - transitionOption = " " + duration + "s " + transitionCurve; - transitionText += env.transformSupported ? "," + CSS_TRANSFORM_VENDOR + transitionOption : ",left" + transitionOption + ",top" + transitionOption; - } - return CSS_TRANSITION_VENDOR + ":" + transitionText; -} -function assembleTransform(x, y, toString) { - var x0 = x.toFixed(0) + "px"; - var y0 = y.toFixed(0) + "px"; - if (!env.transformSupported) { - return toString ? "top:" + y0 + ";left:" + x0 + ";" : [["top", y0], ["left", x0]]; - } - var is3d = env.transform3dSupported; - var translate2 = "translate" + (is3d ? "3d" : "") + "(" + x0 + "," + y0 + (is3d ? ",0" : "") + ")"; - return toString ? "top:0;left:0;" + CSS_TRANSFORM_VENDOR + ":" + translate2 + ";" : [["top", 0], ["left", 0], [TRANSFORM_VENDOR, translate2]]; -} -function assembleFont(textStyleModel) { - var cssText = []; - var fontSize = textStyleModel.get("fontSize"); - var color = textStyleModel.getTextColor(); - color && cssText.push("color:" + color); - cssText.push("font:" + textStyleModel.getFont()); - fontSize && cssText.push("line-height:" + Math.round(fontSize * 3 / 2) + "px"); - var shadowColor = textStyleModel.get("textShadowColor"); - var shadowBlur = textStyleModel.get("textShadowBlur") || 0; - var shadowOffsetX = textStyleModel.get("textShadowOffsetX") || 0; - var shadowOffsetY = textStyleModel.get("textShadowOffsetY") || 0; - shadowColor && shadowBlur && cssText.push("text-shadow:" + shadowOffsetX + "px " + shadowOffsetY + "px " + shadowBlur + "px " + shadowColor); - each$9(["decoration", "align"], function(name) { - var val = textStyleModel.get(name); - val && cssText.push("text-" + name + ":" + val); - }); - return cssText.join(";"); -} -function assembleCssText(tooltipModel, enableTransition, onlyFade) { - var cssText = []; - var transitionDuration = tooltipModel.get("transitionDuration"); - var backgroundColor = tooltipModel.get("backgroundColor"); - var shadowBlur = tooltipModel.get("shadowBlur"); - var shadowColor = tooltipModel.get("shadowColor"); - var shadowOffsetX = tooltipModel.get("shadowOffsetX"); - var shadowOffsetY = tooltipModel.get("shadowOffsetY"); - var textStyleModel = tooltipModel.getModel("textStyle"); - var padding = getPaddingFromTooltipModel(tooltipModel, "html"); - var boxShadow = shadowOffsetX + "px " + shadowOffsetY + "px " + shadowBlur + "px " + shadowColor; - cssText.push("box-shadow:" + boxShadow); - enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade)); - if (backgroundColor) { - cssText.push("background-color:" + backgroundColor); - } - each$9(["width", "color", "radius"], function(name) { - var borderName = "border-" + name; - var camelCase = toCamelCase(borderName); - var val = tooltipModel.get(camelCase); - val != null && cssText.push(borderName + ":" + val + (name === "color" ? "" : "px")); - }); - cssText.push(assembleFont(textStyleModel)); - if (padding != null) { - cssText.push("padding:" + normalizeCssArray(padding).join("px ") + "px"); - } - return cssText.join(";") + ";"; -} -function makeStyleCoord$1(out, zr, appendToBody, zrX, zrY) { - var zrPainter = zr && zr.painter; - if (appendToBody) { - var zrViewportRoot = zrPainter && zrPainter.getViewportRoot(); - if (zrViewportRoot) { - transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY); - } - } else { - out[0] = zrX; - out[1] = zrY; - var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset(); - if (viewportRootOffset) { - out[0] += viewportRootOffset.offsetLeft; - out[1] += viewportRootOffset.offsetTop; - } - } - out[2] = out[0] / zr.getWidth(); - out[3] = out[1] / zr.getHeight(); -} -var TooltipHTMLContent = ( - /** @class */ - function() { - function TooltipHTMLContent2(container, api, opt) { - this._show = false; - this._styleCoord = [0, 0, 0, 0]; - this._enterable = true; - this._alwaysShowContent = false; - this._firstShow = true; - this._longHide = true; - if (env.wxa) { - return null; - } - var el = document.createElement("div"); - el.domBelongToZr = true; - this.el = el; - var zr = this._zr = api.getZr(); - var appendToBody = this._appendToBody = opt && opt.appendToBody; - makeStyleCoord$1(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2); - if (appendToBody) { - document.body.appendChild(el); - } else { - container.appendChild(el); - } - this._container = container; - var self = this; - el.onmouseenter = function() { - if (self._enterable) { - clearTimeout(self._hideTimeout); - self._show = true; - } - self._inContent = true; - }; - el.onmousemove = function(e) { - e = e || window.event; - if (!self._enterable) { - var handler = zr.handler; - var zrViewportRoot = zr.painter.getViewportRoot(); - normalizeEvent(zrViewportRoot, e, true); - handler.dispatch("mousemove", e); - } - }; - el.onmouseleave = function() { - self._inContent = false; - if (self._enterable) { - if (self._show) { - self.hideLater(self._hideDelay); - } - } - }; - } - TooltipHTMLContent2.prototype.update = function(tooltipModel) { - var container = this._container; - var position = getComputedStyle(container, "position"); - var domStyle = container.style; - if (domStyle.position !== "absolute" && position !== "absolute") { - domStyle.position = "relative"; - } - var alwaysShowContent = tooltipModel.get("alwaysShowContent"); - alwaysShowContent && this._moveIfResized(); - this._alwaysShowContent = alwaysShowContent; - this.el.className = tooltipModel.get("className") || ""; - }; - TooltipHTMLContent2.prototype.show = function(tooltipModel, nearPointColor) { - clearTimeout(this._hideTimeout); - clearTimeout(this._longHideTimeout); - var el = this.el; - var style = el.style; - var styleCoord = this._styleCoord; - if (!el.innerHTML) { - style.display = "none"; - } else { - style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide) + assembleTransform(styleCoord[0], styleCoord[1], true) + ("border-color:" + convertToColorString(nearPointColor) + ";") + (tooltipModel.get("extraCssText") || "") + (";pointer-events:" + (this._enterable ? "auto" : "none")); - } - this._show = true; - this._firstShow = false; - this._longHide = false; - }; - TooltipHTMLContent2.prototype.setContent = function(content, markers, tooltipModel, borderColor, arrowPosition) { - var el = this.el; - if (content == null) { - el.innerHTML = ""; - return; - } - var arrow = ""; - if (isString(arrowPosition) && tooltipModel.get("trigger") === "item" && !shouldTooltipConfine(tooltipModel)) { - arrow = assembleArrow(tooltipModel, borderColor, arrowPosition); - } - if (isString(content)) { - el.innerHTML = content + arrow; - } else if (content) { - el.innerHTML = ""; - if (!isArray$1(content)) { - content = [content]; - } - for (var i = 0; i < content.length; i++) { - if (isDom(content[i]) && content[i].parentNode !== el) { - el.appendChild(content[i]); - } - } - if (arrow && el.childNodes.length) { - var arrowEl = document.createElement("div"); - arrowEl.innerHTML = arrow; - el.appendChild(arrowEl); - } - } - }; - TooltipHTMLContent2.prototype.setEnterable = function(enterable) { - this._enterable = enterable; - }; - TooltipHTMLContent2.prototype.getSize = function() { - var el = this.el; - return [el.offsetWidth, el.offsetHeight]; - }; - TooltipHTMLContent2.prototype.moveTo = function(zrX, zrY) { - var styleCoord = this._styleCoord; - makeStyleCoord$1(styleCoord, this._zr, this._appendToBody, zrX, zrY); - if (styleCoord[0] != null && styleCoord[1] != null) { - var style_1 = this.el.style; - var transforms = assembleTransform(styleCoord[0], styleCoord[1]); - each$9(transforms, function(transform) { - style_1[transform[0]] = transform[1]; - }); - } - }; - TooltipHTMLContent2.prototype._moveIfResized = function() { - var ratioX = this._styleCoord[2]; - var ratioY = this._styleCoord[3]; - this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight()); - }; - TooltipHTMLContent2.prototype.hide = function() { - var _this = this; - var style = this.el.style; - style.visibility = "hidden"; - style.opacity = "0"; - env.transform3dSupported && (style.willChange = ""); - this._show = false; - this._longHideTimeout = setTimeout(function() { - return _this._longHide = true; - }, 500); - }; - TooltipHTMLContent2.prototype.hideLater = function(time) { - if (this._show && !(this._inContent && this._enterable) && !this._alwaysShowContent) { - if (time) { - this._hideDelay = time; - this._show = false; - this._hideTimeout = setTimeout(bind$1(this.hide, this), time); - } else { - this.hide(); - } - } - }; - TooltipHTMLContent2.prototype.isShow = function() { - return this._show; - }; - TooltipHTMLContent2.prototype.dispose = function() { - this.el.parentNode.removeChild(this.el); - }; - return TooltipHTMLContent2; - }() -); -const TooltipHTMLContent$1 = TooltipHTMLContent; -var TooltipRichContent = ( - /** @class */ - function() { - function TooltipRichContent2(api) { - this._show = false; - this._styleCoord = [0, 0, 0, 0]; - this._alwaysShowContent = false; - this._enterable = true; - this._zr = api.getZr(); - makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2); - } - TooltipRichContent2.prototype.update = function(tooltipModel) { - var alwaysShowContent = tooltipModel.get("alwaysShowContent"); - alwaysShowContent && this._moveIfResized(); - this._alwaysShowContent = alwaysShowContent; - }; - TooltipRichContent2.prototype.show = function() { - if (this._hideTimeout) { - clearTimeout(this._hideTimeout); - } - this.el.show(); - this._show = true; - }; - TooltipRichContent2.prototype.setContent = function(content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) { - var _this = this; - if (isObject(content)) { - throwError(""); - } - if (this.el) { - this._zr.remove(this.el); - } - var textStyleModel = tooltipModel.getModel("textStyle"); - this.el = new ZRText({ - style: { - rich: markupStyleCreator.richTextStyles, - text: content, - lineHeight: 22, - borderWidth: 1, - borderColor, - textShadowColor: textStyleModel.get("textShadowColor"), - fill: tooltipModel.get(["textStyle", "color"]), - padding: getPaddingFromTooltipModel(tooltipModel, "richText"), - verticalAlign: "top", - align: "left" - }, - z: tooltipModel.get("z") - }); - each$9(["backgroundColor", "borderRadius", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"], function(propName) { - _this.el.style[propName] = tooltipModel.get(propName); - }); - each$9(["textShadowBlur", "textShadowOffsetX", "textShadowOffsetY"], function(propName) { - _this.el.style[propName] = textStyleModel.get(propName) || 0; - }); - this._zr.add(this.el); - var self = this; - this.el.on("mouseover", function() { - if (self._enterable) { - clearTimeout(self._hideTimeout); - self._show = true; - } - self._inContent = true; - }); - this.el.on("mouseout", function() { - if (self._enterable) { - if (self._show) { - self.hideLater(self._hideDelay); - } - } - self._inContent = false; - }); - }; - TooltipRichContent2.prototype.setEnterable = function(enterable) { - this._enterable = enterable; - }; - TooltipRichContent2.prototype.getSize = function() { - var el = this.el; - var bounding = this.el.getBoundingRect(); - var shadowOuterSize = calcShadowOuterSize(el.style); - return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom]; - }; - TooltipRichContent2.prototype.moveTo = function(x, y) { - var el = this.el; - if (el) { - var styleCoord = this._styleCoord; - makeStyleCoord(styleCoord, this._zr, x, y); - x = styleCoord[0]; - y = styleCoord[1]; - var style = el.style; - var borderWidth = mathMaxWith0(style.borderWidth || 0); - var shadowOuterSize = calcShadowOuterSize(style); - el.x = x + borderWidth + shadowOuterSize.left; - el.y = y + borderWidth + shadowOuterSize.top; - el.markRedraw(); - } - }; - TooltipRichContent2.prototype._moveIfResized = function() { - var ratioX = this._styleCoord[2]; - var ratioY = this._styleCoord[3]; - this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight()); - }; - TooltipRichContent2.prototype.hide = function() { - if (this.el) { - this.el.hide(); - } - this._show = false; - }; - TooltipRichContent2.prototype.hideLater = function(time) { - if (this._show && !(this._inContent && this._enterable) && !this._alwaysShowContent) { - if (time) { - this._hideDelay = time; - this._show = false; - this._hideTimeout = setTimeout(bind$1(this.hide, this), time); - } else { - this.hide(); - } - } - }; - TooltipRichContent2.prototype.isShow = function() { - return this._show; - }; - TooltipRichContent2.prototype.dispose = function() { - this._zr.remove(this.el); - }; - return TooltipRichContent2; - }() -); -function mathMaxWith0(val) { - return Math.max(0, val); -} -function calcShadowOuterSize(style) { - var shadowBlur = mathMaxWith0(style.shadowBlur || 0); - var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0); - var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0); - return { - left: mathMaxWith0(shadowBlur - shadowOffsetX), - right: mathMaxWith0(shadowBlur + shadowOffsetX), - top: mathMaxWith0(shadowBlur - shadowOffsetY), - bottom: mathMaxWith0(shadowBlur + shadowOffsetY) - }; -} -function makeStyleCoord(out, zr, zrX, zrY) { - out[0] = zrX; - out[1] = zrY; - out[2] = out[0] / zr.getWidth(); - out[3] = out[1] / zr.getHeight(); -} -const TooltipRichContent$1 = TooltipRichContent; -var proxyRect = new Rect$1({ - shape: { - x: -1, - y: -1, - width: 2, - height: 2 - } -}); -var TooltipView = ( - /** @class */ - function(_super) { - __extends(TooltipView2, _super); - function TooltipView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = TooltipView2.type; - return _this; - } - TooltipView2.prototype.init = function(ecModel, api) { - if (env.node || !api.getDom()) { - return; - } - var tooltipModel = ecModel.getComponent("tooltip"); - var renderMode = this._renderMode = getTooltipRenderMode(tooltipModel.get("renderMode")); - this._tooltipContent = renderMode === "richText" ? new TooltipRichContent$1(api) : new TooltipHTMLContent$1(api.getDom(), api, { - appendToBody: tooltipModel.get("appendToBody", true) - }); - }; - TooltipView2.prototype.render = function(tooltipModel, ecModel, api) { - if (env.node || !api.getDom()) { - return; - } - this.group.removeAll(); - this._tooltipModel = tooltipModel; - this._ecModel = ecModel; - this._api = api; - var tooltipContent = this._tooltipContent; - tooltipContent.update(tooltipModel); - tooltipContent.setEnterable(tooltipModel.get("enterable")); - this._initGlobalListener(); - this._keepShow(); - if (this._renderMode !== "richText" && tooltipModel.get("transitionDuration")) { - createOrUpdate(this, "_updatePosition", 50, "fixRate"); - } else { - clear$1(this, "_updatePosition"); - } - }; - TooltipView2.prototype._initGlobalListener = function() { - var tooltipModel = this._tooltipModel; - var triggerOn = tooltipModel.get("triggerOn"); - register("itemTooltip", this._api, bind$1(function(currTrigger, e, dispatchAction2) { - if (triggerOn !== "none") { - if (triggerOn.indexOf(currTrigger) >= 0) { - this._tryShow(e, dispatchAction2); - } else if (currTrigger === "leave") { - this._hide(dispatchAction2); - } - } - }, this)); - }; - TooltipView2.prototype._keepShow = function() { - var tooltipModel = this._tooltipModel; - var ecModel = this._ecModel; - var api = this._api; - var triggerOn = tooltipModel.get("triggerOn"); - if (this._lastX != null && this._lastY != null && triggerOn !== "none" && triggerOn !== "click") { - var self_1 = this; - clearTimeout(this._refreshUpdateTimeout); - this._refreshUpdateTimeout = setTimeout(function() { - !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, { - x: self_1._lastX, - y: self_1._lastY, - dataByCoordSys: self_1._lastDataByCoordSys - }); - }); - } - }; - TooltipView2.prototype.manuallyShowTip = function(tooltipModel, ecModel, api, payload) { - if (payload.from === this.uid || env.node || !api.getDom()) { - return; - } - var dispatchAction2 = makeDispatchAction(payload, api); - this._ticket = ""; - var dataByCoordSys = payload.dataByCoordSys; - var cmptRef = findComponentReference(payload, ecModel, api); - if (cmptRef) { - var rect = cmptRef.el.getBoundingRect().clone(); - rect.applyTransform(cmptRef.el.transform); - this._tryShow({ - offsetX: rect.x + rect.width / 2, - offsetY: rect.y + rect.height / 2, - target: cmptRef.el, - position: payload.position, - // When manully trigger, the mouse is not on the el, so we'd better to - // position tooltip on the bottom of the el and display arrow is possible. - positionDefault: "bottom" - }, dispatchAction2); - } else if (payload.tooltip && payload.x != null && payload.y != null) { - var el = proxyRect; - el.x = payload.x; - el.y = payload.y; - el.update(); - getECData(el).tooltipConfig = { - name: null, - option: payload.tooltip - }; - this._tryShow({ - offsetX: payload.x, - offsetY: payload.y, - target: el - }, dispatchAction2); - } else if (dataByCoordSys) { - this._tryShow({ - offsetX: payload.x, - offsetY: payload.y, - position: payload.position, - dataByCoordSys, - tooltipOption: payload.tooltipOption - }, dispatchAction2); - } else if (payload.seriesIndex != null) { - if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) { - return; - } - var pointInfo = findPointFromSeries(payload, ecModel); - var cx = pointInfo.point[0]; - var cy = pointInfo.point[1]; - if (cx != null && cy != null) { - this._tryShow({ - offsetX: cx, - offsetY: cy, - target: pointInfo.el, - position: payload.position, - // When manully trigger, the mouse is not on the el, so we'd better to - // position tooltip on the bottom of the el and display arrow is possible. - positionDefault: "bottom" - }, dispatchAction2); - } - } else if (payload.x != null && payload.y != null) { - api.dispatchAction({ - type: "updateAxisPointer", - x: payload.x, - y: payload.y - }); - this._tryShow({ - offsetX: payload.x, - offsetY: payload.y, - position: payload.position, - target: api.getZr().findHover(payload.x, payload.y).target - }, dispatchAction2); - } - }; - TooltipView2.prototype.manuallyHideTip = function(tooltipModel, ecModel, api, payload) { - var tooltipContent = this._tooltipContent; - if (this._tooltipModel) { - tooltipContent.hideLater(this._tooltipModel.get("hideDelay")); - } - this._lastX = this._lastY = this._lastDataByCoordSys = null; - if (payload.from !== this.uid) { - this._hide(makeDispatchAction(payload, api)); - } - }; - TooltipView2.prototype._manuallyAxisShowTip = function(tooltipModel, ecModel, api, payload) { - var seriesIndex = payload.seriesIndex; - var dataIndex = payload.dataIndex; - var coordSysAxesInfo = ecModel.getComponent("axisPointer").coordSysAxesInfo; - if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) { - return; - } - var seriesModel = ecModel.getSeriesByIndex(seriesIndex); - if (!seriesModel) { - return; - } - var data = seriesModel.getData(); - var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model], this._tooltipModel); - if (tooltipCascadedModel.get("trigger") !== "axis") { - return; - } - api.dispatchAction({ - type: "updateAxisPointer", - seriesIndex, - dataIndex, - position: payload.position - }); - return true; - }; - TooltipView2.prototype._tryShow = function(e, dispatchAction2) { - var el = e.target; - var tooltipModel = this._tooltipModel; - if (!tooltipModel) { - return; - } - this._lastX = e.offsetX; - this._lastY = e.offsetY; - var dataByCoordSys = e.dataByCoordSys; - if (dataByCoordSys && dataByCoordSys.length) { - this._showAxisTooltip(dataByCoordSys, e); - } else if (el) { - this._lastDataByCoordSys = null; - var seriesDispatcher_1; - var cmptDispatcher_1; - findEventDispatcher(el, function(target) { - if (getECData(target).dataIndex != null) { - seriesDispatcher_1 = target; - return true; - } - if (getECData(target).tooltipConfig != null) { - cmptDispatcher_1 = target; - return true; - } - }, true); - if (seriesDispatcher_1) { - this._showSeriesItemTooltip(e, seriesDispatcher_1, dispatchAction2); - } else if (cmptDispatcher_1) { - this._showComponentItemTooltip(e, cmptDispatcher_1, dispatchAction2); - } else { - this._hide(dispatchAction2); - } - } else { - this._lastDataByCoordSys = null; - this._hide(dispatchAction2); - } - }; - TooltipView2.prototype._showOrMove = function(tooltipModel, cb) { - var delay = tooltipModel.get("showDelay"); - cb = bind$1(cb, this); - clearTimeout(this._showTimout); - delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb(); - }; - TooltipView2.prototype._showAxisTooltip = function(dataByCoordSys, e) { - var ecModel = this._ecModel; - var globalTooltipModel = this._tooltipModel; - var point = [e.offsetX, e.offsetY]; - var singleTooltipModel = buildTooltipModel([e.tooltipOption], globalTooltipModel); - var renderMode = this._renderMode; - var cbParamsList = []; - var articleMarkup = createTooltipMarkup("section", { - blocks: [], - noHeader: true - }); - var markupTextArrLegacy = []; - var markupStyleCreator = new TooltipMarkupStyleCreator(); - each$9(dataByCoordSys, function(itemCoordSys) { - each$9(itemCoordSys.dataByAxis, function(axisItem) { - var axisModel = ecModel.getComponent(axisItem.axisDim + "Axis", axisItem.axisIndex); - var axisValue = axisItem.value; - if (!axisModel || axisValue == null) { - return; - } - var axisValueLabel = getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt); - var axisSectionMarkup = createTooltipMarkup("section", { - header: axisValueLabel, - noHeader: !trim$1(axisValueLabel), - sortBlocks: true, - blocks: [] - }); - articleMarkup.blocks.push(axisSectionMarkup); - each$9(axisItem.seriesDataIndices, function(idxItem) { - var series = ecModel.getSeriesByIndex(idxItem.seriesIndex); - var dataIndex = idxItem.dataIndexInside; - var cbParams = series.getDataParams(dataIndex); - if (cbParams.dataIndex < 0) { - return; - } - cbParams.axisDim = axisItem.axisDim; - cbParams.axisIndex = axisItem.axisIndex; - cbParams.axisType = axisItem.axisType; - cbParams.axisId = axisItem.axisId; - cbParams.axisValue = getAxisRawValue(axisModel.axis, { - value: axisValue - }); - cbParams.axisValueLabel = axisValueLabel; - cbParams.marker = markupStyleCreator.makeTooltipMarker("item", convertToColorString(cbParams.color), renderMode); - var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null)); - var frag = seriesTooltipResult.frag; - if (frag) { - var valueFormatter = buildTooltipModel([series], globalTooltipModel).get("valueFormatter"); - axisSectionMarkup.blocks.push(valueFormatter ? extend({ - valueFormatter - }, frag) : frag); - } - if (seriesTooltipResult.text) { - markupTextArrLegacy.push(seriesTooltipResult.text); - } - cbParamsList.push(cbParams); - }); - }); - }); - articleMarkup.blocks.reverse(); - markupTextArrLegacy.reverse(); - var positionExpr = e.position; - var orderMode = singleTooltipModel.get("order"); - var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get("useUTC"), singleTooltipModel.get("textStyle")); - builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText); - var blockBreak = renderMode === "richText" ? "\n\n" : "
    "; - var allMarkupText = markupTextArrLegacy.join(blockBreak); - this._showOrMove(singleTooltipModel, function() { - if (this._updateContentNotChangedOnAxis(dataByCoordSys, cbParamsList)) { - this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList); - } else { - this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + "", point[0], point[1], positionExpr, null, markupStyleCreator); - } - }); - }; - TooltipView2.prototype._showSeriesItemTooltip = function(e, dispatcher, dispatchAction2) { - var ecModel = this._ecModel; - var ecData = getECData(dispatcher); - var seriesIndex = ecData.seriesIndex; - var seriesModel = ecModel.getSeriesByIndex(seriesIndex); - var dataModel = ecData.dataModel || seriesModel; - var dataIndex = ecData.dataIndex; - var dataType = ecData.dataType; - var data = dataModel.getData(dataType); - var renderMode = this._renderMode; - var positionDefault = e.positionDefault; - var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model], this._tooltipModel, positionDefault ? { - position: positionDefault - } : null); - var tooltipTrigger = tooltipModel.get("trigger"); - if (tooltipTrigger != null && tooltipTrigger !== "item") { - return; - } - var params = dataModel.getDataParams(dataIndex, dataType); - var markupStyleCreator = new TooltipMarkupStyleCreator(); - params.marker = markupStyleCreator.makeTooltipMarker("item", convertToColorString(params.color), renderMode); - var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType)); - var orderMode = tooltipModel.get("order"); - var valueFormatter = tooltipModel.get("valueFormatter"); - var frag = seriesTooltipResult.frag; - var markupText = frag ? buildTooltipMarkup(valueFormatter ? extend({ - valueFormatter - }, frag) : frag, markupStyleCreator, renderMode, orderMode, ecModel.get("useUTC"), tooltipModel.get("textStyle")) : seriesTooltipResult.text; - var asyncTicket = "item_" + dataModel.name + "_" + dataIndex; - this._showOrMove(tooltipModel, function() { - this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator); - }); - dispatchAction2({ - type: "showTip", - dataIndexInside: dataIndex, - dataIndex: data.getRawIndex(dataIndex), - seriesIndex, - from: this.uid - }); - }; - TooltipView2.prototype._showComponentItemTooltip = function(e, el, dispatchAction2) { - var ecData = getECData(el); - var tooltipConfig = ecData.tooltipConfig; - var tooltipOpt = tooltipConfig.option || {}; - if (isString(tooltipOpt)) { - var content = tooltipOpt; - tooltipOpt = { - content, - // Fixed formatter - formatter: content - }; - } - var tooltipModelCascade = [tooltipOpt]; - var cmpt = this._ecModel.getComponent(ecData.componentMainType, ecData.componentIndex); - if (cmpt) { - tooltipModelCascade.push(cmpt); - } - tooltipModelCascade.push({ - formatter: tooltipOpt.content - }); - var positionDefault = e.positionDefault; - var subTooltipModel = buildTooltipModel(tooltipModelCascade, this._tooltipModel, positionDefault ? { - position: positionDefault - } : null); - var defaultHtml = subTooltipModel.get("content"); - var asyncTicket = Math.random() + ""; - var markupStyleCreator = new TooltipMarkupStyleCreator(); - this._showOrMove(subTooltipModel, function() { - var formatterParams = clone$1(subTooltipModel.get("formatterParams") || {}); - this._showTooltipContent(subTooltipModel, defaultHtml, formatterParams, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator); - }); - dispatchAction2({ - type: "showTip", - from: this.uid - }); - }; - TooltipView2.prototype._showTooltipContent = function(tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) { - this._ticket = ""; - if (!tooltipModel.get("showContent") || !tooltipModel.get("show")) { - return; - } - var tooltipContent = this._tooltipContent; - tooltipContent.setEnterable(tooltipModel.get("enterable")); - var formatter = tooltipModel.get("formatter"); - positionExpr = positionExpr || tooltipModel.get("position"); - var html = defaultHtml; - var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get("trigger"), tooltipModel.get("borderColor")); - var nearPointColor = nearPoint.color; - if (formatter) { - if (isString(formatter)) { - var useUTC = tooltipModel.ecModel.get("useUTC"); - var params0 = isArray$1(params) ? params[0] : params; - var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf("time") >= 0; - html = formatter; - if (isTimeAxis) { - html = format(params0.axisValue, html, useUTC); - } - html = formatTpl(html, params, true); - } else if (isFunction(formatter)) { - var callback = bind$1(function(cbTicket, html2) { - if (cbTicket === this._ticket) { - tooltipContent.setContent(html2, markupStyleCreator, tooltipModel, nearPointColor, positionExpr); - this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el); - } - }, this); - this._ticket = asyncTicket; - html = formatter(params, asyncTicket, callback); - } else { - html = formatter; - } - } - tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPointColor, positionExpr); - tooltipContent.show(tooltipModel, nearPointColor); - this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el); - }; - TooltipView2.prototype._getNearestPoint = function(point, tooltipDataParams, trigger, borderColor) { - if (trigger === "axis" || isArray$1(tooltipDataParams)) { - return { - color: borderColor || (this._renderMode === "html" ? "#fff" : "none") - }; - } - if (!isArray$1(tooltipDataParams)) { - return { - color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor - }; - } - }; - TooltipView2.prototype._updatePosition = function(tooltipModel, positionExpr, x, y, content, params, el) { - var viewWidth = this._api.getWidth(); - var viewHeight = this._api.getHeight(); - positionExpr = positionExpr || tooltipModel.get("position"); - var contentSize = content.getSize(); - var align = tooltipModel.get("align"); - var vAlign = tooltipModel.get("verticalAlign"); - var rect = el && el.getBoundingRect().clone(); - el && rect.applyTransform(el.transform); - if (isFunction(positionExpr)) { - positionExpr = positionExpr([x, y], params, content.el, rect, { - viewSize: [viewWidth, viewHeight], - contentSize: contentSize.slice() - }); - } - if (isArray$1(positionExpr)) { - x = parsePercent(positionExpr[0], viewWidth); - y = parsePercent(positionExpr[1], viewHeight); - } else if (isObject(positionExpr)) { - var boxLayoutPosition = positionExpr; - boxLayoutPosition.width = contentSize[0]; - boxLayoutPosition.height = contentSize[1]; - var layoutRect = getLayoutRect(boxLayoutPosition, { - width: viewWidth, - height: viewHeight - }); - x = layoutRect.x; - y = layoutRect.y; - align = null; - vAlign = null; - } else if (isString(positionExpr) && el) { - var pos = calcTooltipPosition(positionExpr, rect, contentSize, tooltipModel.get("borderWidth")); - x = pos[0]; - y = pos[1]; - } else { - var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20); - x = pos[0]; - y = pos[1]; - } - align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === "right" ? contentSize[0] : 0); - vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === "bottom" ? contentSize[1] : 0); - if (shouldTooltipConfine(tooltipModel)) { - var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight); - x = pos[0]; - y = pos[1]; - } - content.moveTo(x, y); - }; - TooltipView2.prototype._updateContentNotChangedOnAxis = function(dataByCoordSys, cbParamsList) { - var lastCoordSys = this._lastDataByCoordSys; - var lastCbParamsList = this._cbParamsList; - var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length; - contentNotChanged && each$9(lastCoordSys, function(lastItemCoordSys, indexCoordSys) { - var lastDataByAxis = lastItemCoordSys.dataByAxis || []; - var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {}; - var thisDataByAxis = thisItemCoordSys.dataByAxis || []; - contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length; - contentNotChanged && each$9(lastDataByAxis, function(lastItem, indexAxis) { - var thisItem = thisDataByAxis[indexAxis] || {}; - var lastIndices = lastItem.seriesDataIndices || []; - var newIndices = thisItem.seriesDataIndices || []; - contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length; - contentNotChanged && each$9(lastIndices, function(lastIdxItem, j) { - var newIdxItem = newIndices[j]; - contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex; - }); - lastCbParamsList && each$9(lastItem.seriesDataIndices, function(idxItem) { - var seriesIdx = idxItem.seriesIndex; - var cbParams = cbParamsList[seriesIdx]; - var lastCbParams = lastCbParamsList[seriesIdx]; - if (cbParams && lastCbParams && lastCbParams.data !== cbParams.data) { - contentNotChanged = false; - } - }); - }); - }); - this._lastDataByCoordSys = dataByCoordSys; - this._cbParamsList = cbParamsList; - return !!contentNotChanged; - }; - TooltipView2.prototype._hide = function(dispatchAction2) { - this._lastDataByCoordSys = null; - dispatchAction2({ - type: "hideTip", - from: this.uid - }); - }; - TooltipView2.prototype.dispose = function(ecModel, api) { - if (env.node || !api.getDom()) { - return; - } - clear$1(this, "_updatePosition"); - this._tooltipContent.dispose(); - unregister("itemTooltip", api); - }; - TooltipView2.type = "tooltip"; - return TooltipView2; - }(ComponentView) -); -function buildTooltipModel(modelCascade, globalTooltipModel, defaultTooltipOption) { - var ecModel = globalTooltipModel.ecModel; - var resultModel; - if (defaultTooltipOption) { - resultModel = new Model(defaultTooltipOption, ecModel, ecModel); - resultModel = new Model(globalTooltipModel.option, resultModel, ecModel); - } else { - resultModel = globalTooltipModel; - } - for (var i = modelCascade.length - 1; i >= 0; i--) { - var tooltipOpt = modelCascade[i]; - if (tooltipOpt) { - if (tooltipOpt instanceof Model) { - tooltipOpt = tooltipOpt.get("tooltip", true); - } - if (isString(tooltipOpt)) { - tooltipOpt = { - formatter: tooltipOpt - }; - } - if (tooltipOpt) { - resultModel = new Model(tooltipOpt, resultModel, ecModel); - } - } - } - return resultModel; -} -function makeDispatchAction(payload, api) { - return payload.dispatchAction || bind$1(api.dispatchAction, api); -} -function refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) { - var size = content.getSize(); - var width = size[0]; - var height = size[1]; - if (gapH != null) { - if (x + width + gapH + 2 > viewWidth) { - x -= width + gapH; - } else { - x += gapH; - } - } - if (gapV != null) { - if (y + height + gapV > viewHeight) { - y -= height + gapV; - } else { - y += gapV; - } - } - return [x, y]; -} -function confineTooltipPosition(x, y, content, viewWidth, viewHeight) { - var size = content.getSize(); - var width = size[0]; - var height = size[1]; - x = Math.min(x + width, viewWidth) - width; - y = Math.min(y + height, viewHeight) - height; - x = Math.max(x, 0); - y = Math.max(y, 0); - return [x, y]; -} -function calcTooltipPosition(position, rect, contentSize, borderWidth) { - var domWidth = contentSize[0]; - var domHeight = contentSize[1]; - var offset = Math.ceil(Math.SQRT2 * borderWidth) + 8; - var x = 0; - var y = 0; - var rectWidth = rect.width; - var rectHeight = rect.height; - switch (position) { - case "inside": - x = rect.x + rectWidth / 2 - domWidth / 2; - y = rect.y + rectHeight / 2 - domHeight / 2; - break; - case "top": - x = rect.x + rectWidth / 2 - domWidth / 2; - y = rect.y - domHeight - offset; - break; - case "bottom": - x = rect.x + rectWidth / 2 - domWidth / 2; - y = rect.y + rectHeight + offset; - break; - case "left": - x = rect.x - domWidth - offset; - y = rect.y + rectHeight / 2 - domHeight / 2; - break; - case "right": - x = rect.x + rectWidth + offset; - y = rect.y + rectHeight / 2 - domHeight / 2; - } - return [x, y]; -} -function isCenterAlign(align) { - return align === "center" || align === "middle"; -} -function findComponentReference(payload, ecModel, api) { - var queryOptionMap = preParseFinder(payload).queryOptionMap; - var componentMainType = queryOptionMap.keys()[0]; - if (!componentMainType || componentMainType === "series") { - return; - } - var queryResult = queryReferringComponents(ecModel, componentMainType, queryOptionMap.get(componentMainType), { - useDefault: false, - enableAll: false, - enableNone: false - }); - var model = queryResult.models[0]; - if (!model) { - return; - } - var view = api.getViewOfComponentModel(model); - var el; - view.group.traverse(function(subEl) { - var tooltipConfig = getECData(subEl).tooltipConfig; - if (tooltipConfig && tooltipConfig.name === payload.name) { - el = subEl; - return true; - } - }); - if (el) { - return { - componentMainType, - componentIndex: model.componentIndex, - el - }; - } -} -const TooltipView$1 = TooltipView; -function install$i(registers) { - use(install$q); - registers.registerComponentModel(TooltipModel$1); - registers.registerComponentView(TooltipView$1); - registers.registerAction({ - type: "showTip", - event: "showTip", - update: "tooltip:manuallyShowTip" - }, noop); - registers.registerAction({ - type: "hideTip", - event: "hideTip", - update: "tooltip:manuallyHideTip" - }, noop); -} -var DEFAULT_TOOLBOX_BTNS = ["rect", "polygon", "keep", "clear"]; -function brushPreprocessor(option, isNew) { - var brushComponents = normalizeToArray(option ? option.brush : []); - if (!brushComponents.length) { - return; - } - var brushComponentSpecifiedBtns = []; - each$9(brushComponents, function(brushOpt) { - var tbs = brushOpt.hasOwnProperty("toolbox") ? brushOpt.toolbox : []; - if (tbs instanceof Array) { - brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs); - } - }); - var toolbox = option && option.toolbox; - if (isArray$1(toolbox)) { - toolbox = toolbox[0]; - } - if (!toolbox) { - toolbox = { - feature: {} - }; - option.toolbox = [toolbox]; - } - var toolboxFeature = toolbox.feature || (toolbox.feature = {}); - var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {}); - var brushTypes = toolboxBrush.type || (toolboxBrush.type = []); - brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns); - removeDuplicate(brushTypes); - if (isNew && !brushTypes.length) { - brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS); - } -} -function removeDuplicate(arr) { - var map2 = {}; - each$9(arr, function(val) { - map2[val] = 1; - }); - arr.length = 0; - each$9(map2, function(flag, val) { - arr.push(val); - }); -} -var each$4 = each$9; -function hasKeys(obj) { - if (obj) { - for (var name_1 in obj) { - if (obj.hasOwnProperty(name_1)) { - return true; - } - } - } -} -function createVisualMappings(option, stateList, supplementVisualOption) { - var visualMappings = {}; - each$4(stateList, function(state) { - var mappings = visualMappings[state] = createMappings(); - each$4(option[state], function(visualData, visualType) { - if (!VisualMapping.isValidType(visualType)) { - return; - } - var mappingOption = { - type: visualType, - visual: visualData - }; - supplementVisualOption && supplementVisualOption(mappingOption, state); - mappings[visualType] = new VisualMapping(mappingOption); - if (visualType === "opacity") { - mappingOption = clone$1(mappingOption); - mappingOption.type = "colorAlpha"; - mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption); - } - }); - }); - return visualMappings; - function createMappings() { - var Creater = function() { - }; - Creater.prototype.__hidden = Creater.prototype; - var obj = new Creater(); - return obj; - } -} -function replaceVisualOption(thisOption, newOption, keys2) { - var has2; - each$9(keys2, function(key) { - if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) { - has2 = true; - } - }); - has2 && each$9(keys2, function(key) { - if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) { - thisOption[key] = clone$1(newOption[key]); - } else { - delete thisOption[key]; - } - }); -} -function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) { - var visualTypesMap = {}; - each$9(stateList, function(state) { - var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]); - visualTypesMap[state] = visualTypes; - }); - var dataIndex; - function getVisual(key) { - return getItemVisualFromData(data, dataIndex, key); - } - function setVisual(key, value) { - setItemVisualFromData(data, dataIndex, key, value); - } - if (dimension == null) { - data.each(eachItem); - } else { - data.each([dimension], eachItem); - } - function eachItem(valueOrIndex, index) { - dataIndex = dimension == null ? valueOrIndex : index; - var rawDataItem = data.getRawDataItem(dataIndex); - if (rawDataItem && rawDataItem.visualMap === false) { - return; - } - var valueState = getValueState.call(scope, valueOrIndex); - var mappings = visualMappings[valueState]; - var visualTypes = visualTypesMap[valueState]; - for (var i = 0, len = visualTypes.length; i < len; i++) { - var type = visualTypes[i]; - mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual); - } - } -} -function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) { - var visualTypesMap = {}; - each$9(stateList, function(state) { - var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]); - visualTypesMap[state] = visualTypes; - }); - return { - progress: function progress(params, data) { - var dimIndex; - if (dim != null) { - dimIndex = data.getDimensionIndex(dim); - } - function getVisual(key) { - return getItemVisualFromData(data, dataIndex, key); - } - function setVisual(key, value2) { - setItemVisualFromData(data, dataIndex, key, value2); - } - var dataIndex; - var store = data.getStore(); - while ((dataIndex = params.next()) != null) { - var rawDataItem = data.getRawDataItem(dataIndex); - if (rawDataItem && rawDataItem.visualMap === false) { - continue; - } - var value = dim != null ? store.get(dimIndex, dataIndex) : dataIndex; - var valueState = getValueState(value); - var mappings = visualMappings[valueState]; - var visualTypes = visualTypesMap[valueState]; - for (var i = 0, len = visualTypes.length; i < len; i++) { - var type = visualTypes[i]; - mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual); - } - } - } - }; -} -function makeBrushCommonSelectorForSeries(area) { - var brushType = area.brushType; - var selectors = { - point: function(itemLayout) { - return selector[brushType].point(itemLayout, selectors, area); - }, - rect: function(itemLayout) { - return selector[brushType].rect(itemLayout, selectors, area); - } - }; - return selectors; -} -var selector = { - lineX: getLineSelectors(0), - lineY: getLineSelectors(1), - rect: { - point: function(itemLayout, selectors, area) { - return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]); - }, - rect: function(itemLayout, selectors, area) { - return itemLayout && area.boundingRect.intersect(itemLayout); - } - }, - polygon: { - point: function(itemLayout, selectors, area) { - return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && contain(area.range, itemLayout[0], itemLayout[1]); - }, - rect: function(itemLayout, selectors, area) { - var points = area.range; - if (!itemLayout || points.length <= 1) { - return false; - } - var x = itemLayout.x; - var y = itemLayout.y; - var width = itemLayout.width; - var height = itemLayout.height; - var p = points[0]; - if (contain(points, x, y) || contain(points, x + width, y) || contain(points, x, y + height) || contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || linePolygonIntersect(x, y, x + width, y, points) || linePolygonIntersect(x, y, x, y + height, points) || linePolygonIntersect(x + width, y, x + width, y + height, points) || linePolygonIntersect(x, y + height, x + width, y + height, points)) { - return true; - } - } - } -}; -function getLineSelectors(xyIndex) { - var xy = ["x", "y"]; - var wh = ["width", "height"]; - return { - point: function(itemLayout, selectors, area) { - if (itemLayout) { - var range = area.range; - var p = itemLayout[xyIndex]; - return inLineRange(p, range); - } - }, - rect: function(itemLayout, selectors, area) { - if (itemLayout) { - var range = area.range; - var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]]; - layoutRange[1] < layoutRange[0] && layoutRange.reverse(); - return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange); - } - } - }; -} -function inLineRange(p, range) { - return range[0] <= p && p <= range[1]; -} -var STATE_LIST = ["inBrush", "outOfBrush"]; -var DISPATCH_METHOD = "__ecBrushSelect"; -var DISPATCH_FLAG = "__ecInBrushSelectEvent"; -function layoutCovers(ecModel) { - ecModel.eachComponent({ - mainType: "brush" - }, function(brushModel) { - var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager$1(brushModel.option, ecModel); - brushTargetManager.setInputRanges(brushModel.areas, ecModel); - }); -} -function brushVisual(ecModel, api, payload) { - var brushSelected = []; - var throttleType; - var throttleDelay; - ecModel.eachComponent({ - mainType: "brush" - }, function(brushModel) { - payload && payload.type === "takeGlobalCursor" && brushModel.setBrushOption(payload.key === "brush" ? payload.brushOption : { - brushType: false - }); - }); - layoutCovers(ecModel); - ecModel.eachComponent({ - mainType: "brush" - }, function(brushModel, brushIndex) { - var thisBrushSelected = { - brushId: brushModel.id, - brushIndex, - brushName: brushModel.name, - areas: clone$1(brushModel.areas), - selected: [] - }; - brushSelected.push(thisBrushSelected); - var brushOption = brushModel.option; - var brushLink = brushOption.brushLink; - var linkedSeriesMap = []; - var selectedDataIndexForLink = []; - var rangeInfoBySeries = []; - var hasBrushExists = false; - if (!brushIndex) { - throttleType = brushOption.throttleType; - throttleDelay = brushOption.throttleDelay; - } - var areas = map(brushModel.areas, function(area) { - var builder = boundingRectBuilders[area.brushType]; - var selectableArea = defaults({ - boundingRect: builder ? builder(area) : void 0 - }, area); - selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea); - return selectableArea; - }); - var visualMappings = createVisualMappings(brushModel.option, STATE_LIST, function(mappingOption) { - mappingOption.mappingMethod = "fixed"; - }); - isArray$1(brushLink) && each$9(brushLink, function(seriesIndex) { - linkedSeriesMap[seriesIndex] = 1; - }); - function linkOthers(seriesIndex) { - return brushLink === "all" || !!linkedSeriesMap[seriesIndex]; - } - function brushed(rangeInfoList) { - return !!rangeInfoList.length; - } - ecModel.eachSeries(function(seriesModel, seriesIndex) { - var rangeInfoList = rangeInfoBySeries[seriesIndex] = []; - seriesModel.subType === "parallel" ? stepAParallel(seriesModel, seriesIndex) : stepAOthers(seriesModel, seriesIndex, rangeInfoList); - }); - function stepAParallel(seriesModel, seriesIndex) { - var coordSys = seriesModel.coordinateSystem; - hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed(); - linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function(activeState, dataIndex) { - activeState === "active" && (selectedDataIndexForLink[dataIndex] = 1); - }); - } - function stepAOthers(seriesModel, seriesIndex, rangeInfoList) { - if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) { - return; - } - each$9(areas, function(area) { - if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) { - rangeInfoList.push(area); - } - hasBrushExists = hasBrushExists || brushed(rangeInfoList); - }); - if (linkOthers(seriesIndex) && brushed(rangeInfoList)) { - var data_1 = seriesModel.getData(); - data_1.each(function(dataIndex) { - if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) { - selectedDataIndexForLink[dataIndex] = 1; - } - }); - } - } - ecModel.eachSeries(function(seriesModel, seriesIndex) { - var seriesBrushSelected = { - seriesId: seriesModel.id, - seriesIndex, - seriesName: seriesModel.name, - dataIndex: [] - }; - thisBrushSelected.selected.push(seriesBrushSelected); - var rangeInfoList = rangeInfoBySeries[seriesIndex]; - var data = seriesModel.getData(); - var getValueState = linkOthers(seriesIndex) ? function(dataIndex) { - return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), "inBrush") : "outOfBrush"; - } : function(dataIndex) { - return checkInRange(seriesModel, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), "inBrush") : "outOfBrush"; - }; - (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && applyVisual(STATE_LIST, visualMappings, data, getValueState); - }); - }); - dispatchAction$1(api, throttleType, throttleDelay, brushSelected, payload); -} -function dispatchAction$1(api, throttleType, throttleDelay, brushSelected, payload) { - if (!payload) { - return; - } - var zr = api.getZr(); - if (zr[DISPATCH_FLAG]) { - return; - } - if (!zr[DISPATCH_METHOD]) { - zr[DISPATCH_METHOD] = doDispatch; - } - var fn = createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType); - fn(api, brushSelected); -} -function doDispatch(api, brushSelected) { - if (!api.isDisposed()) { - var zr = api.getZr(); - zr[DISPATCH_FLAG] = true; - api.dispatchAction({ - type: "brushSelect", - batch: brushSelected - }); - zr[DISPATCH_FLAG] = false; - } -} -function checkInRange(seriesModel, rangeInfoList, data, dataIndex) { - for (var i = 0, len = rangeInfoList.length; i < len; i++) { - var area = rangeInfoList[i]; - if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) { - return true; - } - } -} -function brushModelNotControll(brushModel, seriesIndex) { - var seriesIndices = brushModel.option.seriesIndex; - return seriesIndices != null && seriesIndices !== "all" && (isArray$1(seriesIndices) ? indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices); -} -var boundingRectBuilders = { - rect: function(area) { - return getBoundingRectFromMinMax(area.range); - }, - polygon: function(area) { - var minMax; - var range = area.range; - for (var i = 0, len = range.length; i < len; i++) { - minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]]; - var rg = range[i]; - rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]); - rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]); - rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]); - rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]); - } - return minMax && getBoundingRectFromMinMax(minMax); - } -}; -function getBoundingRectFromMinMax(minMax) { - return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]); -} -var BrushView = ( - /** @class */ - function(_super) { - __extends(BrushView2, _super); - function BrushView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = BrushView2.type; - return _this; - } - BrushView2.prototype.init = function(ecModel, api) { - this.ecModel = ecModel; - this.api = api; - this.model; - (this._brushController = new BrushController(api.getZr())).on("brush", bind$1(this._onBrush, this)).mount(); - }; - BrushView2.prototype.render = function(brushModel, ecModel, api, payload) { - this.model = brushModel; - this._updateController(brushModel, ecModel, api, payload); - }; - BrushView2.prototype.updateTransform = function(brushModel, ecModel, api, payload) { - layoutCovers(ecModel); - this._updateController(brushModel, ecModel, api, payload); - }; - BrushView2.prototype.updateVisual = function(brushModel, ecModel, api, payload) { - this.updateTransform(brushModel, ecModel, api, payload); - }; - BrushView2.prototype.updateView = function(brushModel, ecModel, api, payload) { - this._updateController(brushModel, ecModel, api, payload); - }; - BrushView2.prototype._updateController = function(brushModel, ecModel, api, payload) { - (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice()); - }; - BrushView2.prototype.dispose = function() { - this._brushController.dispose(); - }; - BrushView2.prototype._onBrush = function(eventParam) { - var modelId = this.model.id; - var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel); - (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({ - type: "brush", - brushId: modelId, - areas: clone$1(areas), - $from: modelId - }); - eventParam.isEnd && this.api.dispatchAction({ - type: "brushEnd", - brushId: modelId, - areas: clone$1(areas), - $from: modelId - }); - }; - BrushView2.type = "brush"; - return BrushView2; - }(ComponentView) -); -const BrushView$1 = BrushView; -var DEFAULT_OUT_OF_BRUSH_COLOR = "#ddd"; -var BrushModel = ( - /** @class */ - function(_super) { - __extends(BrushModel2, _super); - function BrushModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = BrushModel2.type; - _this.areas = []; - _this.brushOption = {}; - return _this; - } - BrushModel2.prototype.optionUpdated = function(newOption, isInit) { - var thisOption = this.option; - !isInit && replaceVisualOption(thisOption, newOption, ["inBrush", "outOfBrush"]); - var inBrush = thisOption.inBrush = thisOption.inBrush || {}; - thisOption.outOfBrush = thisOption.outOfBrush || { - color: DEFAULT_OUT_OF_BRUSH_COLOR - }; - if (!inBrush.hasOwnProperty("liftZ")) { - inBrush.liftZ = 5; - } - }; - BrushModel2.prototype.setAreas = function(areas) { - if (!areas) { - return; - } - this.areas = map(areas, function(area) { - return generateBrushOption(this.option, area); - }, this); - }; - BrushModel2.prototype.setBrushOption = function(brushOption) { - this.brushOption = generateBrushOption(this.option, brushOption); - this.brushType = this.brushOption.brushType; - }; - BrushModel2.type = "brush"; - BrushModel2.dependencies = ["geo", "grid", "xAxis", "yAxis", "parallel", "series"]; - BrushModel2.defaultOption = { - seriesIndex: "all", - brushType: "rect", - brushMode: "single", - transformable: true, - brushStyle: { - borderWidth: 1, - color: "rgba(210,219,238,0.3)", - borderColor: "#D2DBEE" - }, - throttleType: "fixRate", - throttleDelay: 0, - removeOnClick: true, - z: 1e4 - }; - return BrushModel2; - }(ComponentModel) -); -function generateBrushOption(option, brushOption) { - return merge({ - brushType: option.brushType, - brushMode: option.brushMode, - transformable: option.transformable, - brushStyle: new Model(option.brushStyle).getItemStyle(), - removeOnClick: option.removeOnClick, - z: option.z - }, brushOption, true); -} -const BrushModel$1 = BrushModel; -var ICON_TYPES = ["rect", "polygon", "lineX", "lineY", "keep", "clear"]; -var BrushFeature = ( - /** @class */ - function(_super) { - __extends(BrushFeature2, _super); - function BrushFeature2() { - return _super !== null && _super.apply(this, arguments) || this; - } - BrushFeature2.prototype.render = function(featureModel, ecModel, api) { - var brushType; - var brushMode; - var isBrushed; - ecModel.eachComponent({ - mainType: "brush" - }, function(brushModel) { - brushType = brushModel.brushType; - brushMode = brushModel.brushOption.brushMode || "single"; - isBrushed = isBrushed || !!brushModel.areas.length; - }); - this._brushType = brushType; - this._brushMode = brushMode; - each$9(featureModel.get("type", true), function(type) { - featureModel.setIconStatus(type, (type === "keep" ? brushMode === "multiple" : type === "clear" ? isBrushed : type === brushType) ? "emphasis" : "normal"); - }); - }; - BrushFeature2.prototype.updateView = function(featureModel, ecModel, api) { - this.render(featureModel, ecModel, api); - }; - BrushFeature2.prototype.getIcons = function() { - var model = this.model; - var availableIcons = model.get("icon", true); - var icons = {}; - each$9(model.get("type", true), function(type) { - if (availableIcons[type]) { - icons[type] = availableIcons[type]; - } - }); - return icons; - }; - BrushFeature2.prototype.onclick = function(ecModel, api, type) { - var brushType = this._brushType; - var brushMode = this._brushMode; - if (type === "clear") { - api.dispatchAction({ - type: "axisAreaSelect", - intervals: [] - }); - api.dispatchAction({ - type: "brush", - command: "clear", - // Clear all areas of all brush components. - areas: [] - }); - } else { - api.dispatchAction({ - type: "takeGlobalCursor", - key: "brush", - brushOption: { - brushType: type === "keep" ? brushType : brushType === type ? false : type, - brushMode: type === "keep" ? brushMode === "multiple" ? "single" : "multiple" : brushMode - } - }); - } - }; - BrushFeature2.getDefaultOption = function(ecModel) { - var defaultOption2 = { - show: true, - type: ICON_TYPES.slice(), - icon: { - /* eslint-disable */ - rect: "M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13", - polygon: "M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2", - lineX: "M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4", - lineY: "M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4", - keep: "M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z", - clear: "M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2" - // jshint ignore:line - /* eslint-enable */ - }, - // `rect`, `polygon`, `lineX`, `lineY`, `keep`, `clear` - title: ecModel.getLocaleModel().get(["toolbox", "brush", "title"]) - }; - return defaultOption2; - }; - return BrushFeature2; - }(ToolboxFeature) -); -const BrushFeature$1 = BrushFeature; -function install$h(registers) { - registers.registerComponentView(BrushView$1); - registers.registerComponentModel(BrushModel$1); - registers.registerPreprocessor(brushPreprocessor); - registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, brushVisual); - registers.registerAction({ - type: "brush", - event: "brush", - update: "updateVisual" - }, function(payload, ecModel) { - ecModel.eachComponent({ - mainType: "brush", - query: payload - }, function(brushModel) { - brushModel.setAreas(payload.areas); - }); - }); - registers.registerAction({ - type: "brushSelect", - event: "brushSelected", - update: "none" - }, noop); - registers.registerAction({ - type: "brushEnd", - event: "brushEnd", - update: "none" - }, noop); - registerFeature("brush", BrushFeature$1); -} -var TitleModel = ( - /** @class */ - function(_super) { - __extends(TitleModel2, _super); - function TitleModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = TitleModel2.type; - _this.layoutMode = { - type: "box", - ignoreSize: true - }; - return _this; - } - TitleModel2.type = "title"; - TitleModel2.defaultOption = { - // zlevel: 0, - z: 6, - show: true, - text: "", - target: "blank", - subtext: "", - subtarget: "blank", - left: 0, - top: 0, - backgroundColor: "rgba(0,0,0,0)", - borderColor: "#ccc", - borderWidth: 0, - padding: 5, - itemGap: 10, - textStyle: { - fontSize: 18, - fontWeight: "bold", - color: "#464646" - }, - subtextStyle: { - fontSize: 12, - color: "#6E7079" - } - }; - return TitleModel2; - }(ComponentModel) -); -var TitleView = ( - /** @class */ - function(_super) { - __extends(TitleView2, _super); - function TitleView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = TitleView2.type; - return _this; - } - TitleView2.prototype.render = function(titleModel, ecModel, api) { - this.group.removeAll(); - if (!titleModel.get("show")) { - return; - } - var group = this.group; - var textStyleModel = titleModel.getModel("textStyle"); - var subtextStyleModel = titleModel.getModel("subtextStyle"); - var textAlign = titleModel.get("textAlign"); - var textVerticalAlign = retrieve2(titleModel.get("textBaseline"), titleModel.get("textVerticalAlign")); - var textEl = new ZRText({ - style: createTextStyle(textStyleModel, { - text: titleModel.get("text"), - fill: textStyleModel.getTextColor() - }, { - disableBox: true - }), - z2: 10 - }); - var textRect = textEl.getBoundingRect(); - var subText = titleModel.get("subtext"); - var subTextEl = new ZRText({ - style: createTextStyle(subtextStyleModel, { - text: subText, - fill: subtextStyleModel.getTextColor(), - y: textRect.height + titleModel.get("itemGap"), - verticalAlign: "top" - }, { - disableBox: true - }), - z2: 10 - }); - var link = titleModel.get("link"); - var sublink = titleModel.get("sublink"); - var triggerEvent = titleModel.get("triggerEvent", true); - textEl.silent = !link && !triggerEvent; - subTextEl.silent = !sublink && !triggerEvent; - if (link) { - textEl.on("click", function() { - windowOpen(link, "_" + titleModel.get("target")); - }); - } - if (sublink) { - subTextEl.on("click", function() { - windowOpen(sublink, "_" + titleModel.get("subtarget")); - }); - } - getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent ? { - componentType: "title", - componentIndex: titleModel.componentIndex - } : null; - group.add(textEl); - subText && group.add(subTextEl); - var groupRect = group.getBoundingRect(); - var layoutOption = titleModel.getBoxLayoutParams(); - layoutOption.width = groupRect.width; - layoutOption.height = groupRect.height; - var layoutRect = getLayoutRect(layoutOption, { - width: api.getWidth(), - height: api.getHeight() - }, titleModel.get("padding")); - if (!textAlign) { - textAlign = titleModel.get("left") || titleModel.get("right"); - if (textAlign === "middle") { - textAlign = "center"; - } - if (textAlign === "right") { - layoutRect.x += layoutRect.width; - } else if (textAlign === "center") { - layoutRect.x += layoutRect.width / 2; - } - } - if (!textVerticalAlign) { - textVerticalAlign = titleModel.get("top") || titleModel.get("bottom"); - if (textVerticalAlign === "center") { - textVerticalAlign = "middle"; - } - if (textVerticalAlign === "bottom") { - layoutRect.y += layoutRect.height; - } else if (textVerticalAlign === "middle") { - layoutRect.y += layoutRect.height / 2; - } - textVerticalAlign = textVerticalAlign || "top"; - } - group.x = layoutRect.x; - group.y = layoutRect.y; - group.markRedraw(); - var alignStyle = { - align: textAlign, - verticalAlign: textVerticalAlign - }; - textEl.setStyle(alignStyle); - subTextEl.setStyle(alignStyle); - groupRect = group.getBoundingRect(); - var padding = layoutRect.margin; - var style = titleModel.getItemStyle(["color", "opacity"]); - style.fill = titleModel.get("backgroundColor"); - var rect = new Rect$1({ - shape: { - x: groupRect.x - padding[3], - y: groupRect.y - padding[0], - width: groupRect.width + padding[1] + padding[3], - height: groupRect.height + padding[0] + padding[2], - r: titleModel.get("borderRadius") - }, - style, - subPixelOptimize: true, - silent: true - }); - group.add(rect); - }; - TitleView2.type = "title"; - return TitleView2; - }(ComponentView) -); -function install$g(registers) { - registers.registerComponentModel(TitleModel); - registers.registerComponentView(TitleView); -} -var TimelineModel = ( - /** @class */ - function(_super) { - __extends(TimelineModel2, _super); - function TimelineModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = TimelineModel2.type; - _this.layoutMode = "box"; - return _this; - } - TimelineModel2.prototype.init = function(option, parentModel, ecModel) { - this.mergeDefaultAndTheme(option, ecModel); - this._initData(); - }; - TimelineModel2.prototype.mergeOption = function(option) { - _super.prototype.mergeOption.apply(this, arguments); - this._initData(); - }; - TimelineModel2.prototype.setCurrentIndex = function(currentIndex) { - if (currentIndex == null) { - currentIndex = this.option.currentIndex; - } - var count2 = this._data.count(); - if (this.option.loop) { - currentIndex = (currentIndex % count2 + count2) % count2; - } else { - currentIndex >= count2 && (currentIndex = count2 - 1); - currentIndex < 0 && (currentIndex = 0); - } - this.option.currentIndex = currentIndex; - }; - TimelineModel2.prototype.getCurrentIndex = function() { - return this.option.currentIndex; - }; - TimelineModel2.prototype.isIndexMax = function() { - return this.getCurrentIndex() >= this._data.count() - 1; - }; - TimelineModel2.prototype.setPlayState = function(state) { - this.option.autoPlay = !!state; - }; - TimelineModel2.prototype.getPlayState = function() { - return !!this.option.autoPlay; - }; - TimelineModel2.prototype._initData = function() { - var thisOption = this.option; - var dataArr = thisOption.data || []; - var axisType = thisOption.axisType; - var names = this._names = []; - var processedDataArr; - if (axisType === "category") { - processedDataArr = []; - each$9(dataArr, function(item, index) { - var value = convertOptionIdName(getDataItemValue(item), ""); - var newItem; - if (isObject(item)) { - newItem = clone$1(item); - newItem.value = index; - } else { - newItem = index; - } - processedDataArr.push(newItem); - names.push(value); - }); - } else { - processedDataArr = dataArr; - } - var dimType = { - category: "ordinal", - time: "time", - value: "number" - }[axisType] || "number"; - var data = this._data = new SeriesData([{ - name: "value", - type: dimType - }], this); - data.initData(processedDataArr, names); - }; - TimelineModel2.prototype.getData = function() { - return this._data; - }; - TimelineModel2.prototype.getCategories = function() { - if (this.get("axisType") === "category") { - return this._names.slice(); - } - }; - TimelineModel2.type = "timeline"; - TimelineModel2.defaultOption = { - // zlevel: 0, // 一级层叠 - z: 4, - show: true, - axisType: "time", - realtime: true, - left: "20%", - top: null, - right: "20%", - bottom: 0, - width: null, - height: 40, - padding: 5, - controlPosition: "left", - autoPlay: false, - rewind: false, - loop: true, - playInterval: 2e3, - currentIndex: 0, - itemStyle: {}, - label: { - color: "#000" - }, - data: [] - }; - return TimelineModel2; - }(ComponentModel) -); -const TimelineModel$1 = TimelineModel; -var SliderTimelineModel = ( - /** @class */ - function(_super) { - __extends(SliderTimelineModel2, _super); - function SliderTimelineModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SliderTimelineModel2.type; - return _this; - } - SliderTimelineModel2.type = "timeline.slider"; - SliderTimelineModel2.defaultOption = inheritDefaultOption(TimelineModel$1.defaultOption, { - backgroundColor: "rgba(0,0,0,0)", - borderColor: "#ccc", - borderWidth: 0, - orient: "horizontal", - inverse: false, - tooltip: { - trigger: "item" - // data item may also have tootip attr. - }, - symbol: "circle", - symbolSize: 12, - lineStyle: { - show: true, - width: 2, - color: "#DAE1F5" - }, - label: { - position: "auto", - // When using number, label position is not - // restricted by viewRect. - // positive: right/bottom, negative: left/top - show: true, - interval: "auto", - rotate: 0, - // formatter: null, - // 其余属性默认使用全局文本样式,详见TEXTSTYLE - color: "#A4B1D7" - }, - itemStyle: { - color: "#A4B1D7", - borderWidth: 1 - }, - checkpointStyle: { - symbol: "circle", - symbolSize: 15, - color: "#316bf3", - borderColor: "#fff", - borderWidth: 2, - shadowBlur: 2, - shadowOffsetX: 1, - shadowOffsetY: 1, - shadowColor: "rgba(0, 0, 0, 0.3)", - // borderColor: 'rgba(194,53,49, 0.5)', - animation: true, - animationDuration: 300, - animationEasing: "quinticInOut" - }, - controlStyle: { - show: true, - showPlayBtn: true, - showPrevBtn: true, - showNextBtn: true, - itemSize: 24, - itemGap: 12, - position: "left", - playIcon: "path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z", - stopIcon: "path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z", - // eslint-disable-next-line max-len - nextIcon: "M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z", - // eslint-disable-next-line max-len - prevIcon: "M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z", - prevBtnSize: 18, - nextBtnSize: 18, - color: "#A4B1D7", - borderColor: "#A4B1D7", - borderWidth: 1 - }, - emphasis: { - label: { - show: true, - // 其余属性默认使用全局文本样式,详见TEXTSTYLE - color: "#6f778d" - }, - itemStyle: { - color: "#316BF3" - }, - controlStyle: { - color: "#316BF3", - borderColor: "#316BF3", - borderWidth: 2 - } - }, - progress: { - lineStyle: { - color: "#316BF3" - }, - itemStyle: { - color: "#316BF3" - }, - label: { - color: "#6f778d" - } - }, - data: [] - }); - return SliderTimelineModel2; - }(TimelineModel$1) -); -mixin(SliderTimelineModel, DataFormatMixin.prototype); -const SliderTimelineModel$1 = SliderTimelineModel; -var TimelineView = ( - /** @class */ - function(_super) { - __extends(TimelineView2, _super); - function TimelineView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = TimelineView2.type; - return _this; - } - TimelineView2.type = "timeline"; - return TimelineView2; - }(ComponentView) -); -const TimelineView$1 = TimelineView; -var TimelineAxis = ( - /** @class */ - function(_super) { - __extends(TimelineAxis2, _super); - function TimelineAxis2(dim, scale, coordExtent, axisType) { - var _this = _super.call(this, dim, scale, coordExtent) || this; - _this.type = axisType || "value"; - return _this; - } - TimelineAxis2.prototype.getLabelModel = function() { - return this.model.getModel("label"); - }; - TimelineAxis2.prototype.isHorizontal = function() { - return this.model.get("orient") === "horizontal"; - }; - return TimelineAxis2; - }(Axis) -); -const TimelineAxis$1 = TimelineAxis; -var PI = Math.PI; -var labelDataIndexStore = makeInner(); -var SliderTimelineView = ( - /** @class */ - function(_super) { - __extends(SliderTimelineView2, _super); - function SliderTimelineView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SliderTimelineView2.type; - return _this; - } - SliderTimelineView2.prototype.init = function(ecModel, api) { - this.api = api; - }; - SliderTimelineView2.prototype.render = function(timelineModel, ecModel, api) { - this.model = timelineModel; - this.api = api; - this.ecModel = ecModel; - this.group.removeAll(); - if (timelineModel.get("show", true)) { - var layoutInfo_1 = this._layout(timelineModel, api); - var mainGroup_1 = this._createGroup("_mainGroup"); - var labelGroup = this._createGroup("_labelGroup"); - var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel); - timelineModel.formatTooltip = function(dataIndex) { - var name = axis_1.scale.getLabel({ - value: dataIndex - }); - return createTooltipMarkup("nameValue", { - noName: true, - value: name - }); - }; - each$9(["AxisLine", "AxisTick", "Control", "CurrentPointer"], function(name) { - this["_render" + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel); - }, this); - this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel); - this._position(layoutInfo_1, timelineModel); - } - this._doPlayStop(); - this._updateTicksStatus(); - }; - SliderTimelineView2.prototype.remove = function() { - this._clearTimer(); - this.group.removeAll(); - }; - SliderTimelineView2.prototype.dispose = function() { - this._clearTimer(); - }; - SliderTimelineView2.prototype._layout = function(timelineModel, api) { - var labelPosOpt = timelineModel.get(["label", "position"]); - var orient = timelineModel.get("orient"); - var viewRect = getViewRect(timelineModel, api); - var parsedLabelPos; - if (labelPosOpt == null || labelPosOpt === "auto") { - parsedLabelPos = orient === "horizontal" ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? "-" : "+" : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? "+" : "-"; - } else if (isString(labelPosOpt)) { - parsedLabelPos = { - horizontal: { - top: "-", - bottom: "+" - }, - vertical: { - left: "-", - right: "+" - } - }[orient][labelPosOpt]; - } else { - parsedLabelPos = labelPosOpt; - } - var labelAlignMap = { - horizontal: "center", - vertical: parsedLabelPos >= 0 || parsedLabelPos === "+" ? "left" : "right" - }; - var labelBaselineMap = { - horizontal: parsedLabelPos >= 0 || parsedLabelPos === "+" ? "top" : "bottom", - vertical: "middle" - }; - var rotationMap = { - horizontal: 0, - vertical: PI / 2 - }; - var mainLength = orient === "vertical" ? viewRect.height : viewRect.width; - var controlModel = timelineModel.getModel("controlStyle"); - var showControl = controlModel.get("show", true); - var controlSize = showControl ? controlModel.get("itemSize") : 0; - var controlGap = showControl ? controlModel.get("itemGap") : 0; - var sizePlusGap = controlSize + controlGap; - var labelRotation = timelineModel.get(["label", "rotate"]) || 0; - labelRotation = labelRotation * PI / 180; - var playPosition; - var prevBtnPosition; - var nextBtnPosition; - var controlPosition = controlModel.get("position", true); - var showPlayBtn = showControl && controlModel.get("showPlayBtn", true); - var showPrevBtn = showControl && controlModel.get("showPrevBtn", true); - var showNextBtn = showControl && controlModel.get("showNextBtn", true); - var xLeft = 0; - var xRight = mainLength; - if (controlPosition === "left" || controlPosition === "bottom") { - showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap); - showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap); - showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap); - } else { - showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap); - showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap); - showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap); - } - var axisExtent = [xLeft, xRight]; - if (timelineModel.get("inverse")) { - axisExtent.reverse(); - } - return { - viewRect, - mainLength, - orient, - rotation: rotationMap[orient], - labelRotation, - labelPosOpt: parsedLabelPos, - labelAlign: timelineModel.get(["label", "align"]) || labelAlignMap[orient], - labelBaseline: timelineModel.get(["label", "verticalAlign"]) || timelineModel.get(["label", "baseline"]) || labelBaselineMap[orient], - // Based on mainGroup. - playPosition, - prevBtnPosition, - nextBtnPosition, - axisExtent, - controlSize, - controlGap - }; - }; - SliderTimelineView2.prototype._position = function(layoutInfo, timelineModel) { - var mainGroup = this._mainGroup; - var labelGroup = this._labelGroup; - var viewRect = layoutInfo.viewRect; - if (layoutInfo.orient === "vertical") { - var m = create$1(); - var rotateOriginX = viewRect.x; - var rotateOriginY = viewRect.y + viewRect.height; - translate(m, m, [-rotateOriginX, -rotateOriginY]); - rotate(m, m, -PI / 2); - translate(m, m, [rotateOriginX, rotateOriginY]); - viewRect = viewRect.clone(); - viewRect.applyTransform(m); - } - var viewBound = getBound(viewRect); - var mainBound = getBound(mainGroup.getBoundingRect()); - var labelBound = getBound(labelGroup.getBoundingRect()); - var mainPosition = [mainGroup.x, mainGroup.y]; - var labelsPosition = [labelGroup.x, labelGroup.y]; - labelsPosition[0] = mainPosition[0] = viewBound[0][0]; - var labelPosOpt = layoutInfo.labelPosOpt; - if (labelPosOpt == null || isString(labelPosOpt)) { - var mainBoundIdx = labelPosOpt === "+" ? 0 : 1; - toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx); - toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx); - } else { - var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1; - toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx); - labelsPosition[1] = mainPosition[1] + labelPosOpt; - } - mainGroup.setPosition(mainPosition); - labelGroup.setPosition(labelsPosition); - mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation; - setOrigin(mainGroup); - setOrigin(labelGroup); - function setOrigin(targetGroup) { - targetGroup.originX = viewBound[0][0] - targetGroup.x; - targetGroup.originY = viewBound[1][0] - targetGroup.y; - } - function getBound(rect) { - return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]]; - } - function toBound(fromPos, from, to, dimIdx, boundIdx) { - fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx]; - } - }; - SliderTimelineView2.prototype._createAxis = function(layoutInfo, timelineModel) { - var data = timelineModel.getData(); - var axisType = timelineModel.get("axisType"); - var scale = createScaleByModel(timelineModel, axisType); - scale.getTicks = function() { - return data.mapArray(["value"], function(value) { - return { - value - }; - }); - }; - var dataExtent = data.getDataExtent("value"); - scale.setExtent(dataExtent[0], dataExtent[1]); - scale.calcNiceTicks(); - var axis = new TimelineAxis$1("value", scale, layoutInfo.axisExtent, axisType); - axis.model = timelineModel; - return axis; - }; - SliderTimelineView2.prototype._createGroup = function(key) { - var newGroup = this[key] = new Group$2(); - this.group.add(newGroup); - return newGroup; - }; - SliderTimelineView2.prototype._renderAxisLine = function(layoutInfo, group, axis, timelineModel) { - var axisExtent = axis.getExtent(); - if (!timelineModel.get(["lineStyle", "show"])) { - return; - } - var line = new Line({ - shape: { - x1: axisExtent[0], - y1: 0, - x2: axisExtent[1], - y2: 0 - }, - style: extend({ - lineCap: "round" - }, timelineModel.getModel("lineStyle").getLineStyle()), - silent: true, - z2: 1 - }); - group.add(line); - var progressLine = this._progressLine = new Line({ - shape: { - x1: axisExtent[0], - x2: this._currentPointer ? this._currentPointer.x : axisExtent[0], - y1: 0, - y2: 0 - }, - style: defaults({ - lineCap: "round", - lineWidth: line.style.lineWidth - }, timelineModel.getModel(["progress", "lineStyle"]).getLineStyle()), - silent: true, - z2: 1 - }); - group.add(progressLine); - }; - SliderTimelineView2.prototype._renderAxisTick = function(layoutInfo, group, axis, timelineModel) { - var _this = this; - var data = timelineModel.getData(); - var ticks = axis.scale.getTicks(); - this._tickSymbols = []; - each$9(ticks, function(tick) { - var tickCoord = axis.dataToCoord(tick.value); - var itemModel = data.getItemModel(tick.value); - var itemStyleModel = itemModel.getModel("itemStyle"); - var hoverStyleModel = itemModel.getModel(["emphasis", "itemStyle"]); - var progressStyleModel = itemModel.getModel(["progress", "itemStyle"]); - var symbolOpt = { - x: tickCoord, - y: 0, - onclick: bind$1(_this._changeTimeline, _this, tick.value) - }; - var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt); - el.ensureState("emphasis").style = hoverStyleModel.getItemStyle(); - el.ensureState("progress").style = progressStyleModel.getItemStyle(); - enableHoverEmphasis(el); - var ecData = getECData(el); - if (itemModel.get("tooltip")) { - ecData.dataIndex = tick.value; - ecData.dataModel = timelineModel; - } else { - ecData.dataIndex = ecData.dataModel = null; - } - _this._tickSymbols.push(el); - }); - }; - SliderTimelineView2.prototype._renderAxisLabel = function(layoutInfo, group, axis, timelineModel) { - var _this = this; - var labelModel = axis.getLabelModel(); - if (!labelModel.get("show")) { - return; - } - var data = timelineModel.getData(); - var labels = axis.getViewLabels(); - this._tickLabels = []; - each$9(labels, function(labelItem) { - var dataIndex = labelItem.tickValue; - var itemModel = data.getItemModel(dataIndex); - var normalLabelModel = itemModel.getModel("label"); - var hoverLabelModel = itemModel.getModel(["emphasis", "label"]); - var progressLabelModel = itemModel.getModel(["progress", "label"]); - var tickCoord = axis.dataToCoord(labelItem.tickValue); - var textEl = new ZRText({ - x: tickCoord, - y: 0, - rotation: layoutInfo.labelRotation - layoutInfo.rotation, - onclick: bind$1(_this._changeTimeline, _this, dataIndex), - silent: false, - style: createTextStyle(normalLabelModel, { - text: labelItem.formattedLabel, - align: layoutInfo.labelAlign, - verticalAlign: layoutInfo.labelBaseline - }) - }); - textEl.ensureState("emphasis").style = createTextStyle(hoverLabelModel); - textEl.ensureState("progress").style = createTextStyle(progressLabelModel); - group.add(textEl); - enableHoverEmphasis(textEl); - labelDataIndexStore(textEl).dataIndex = dataIndex; - _this._tickLabels.push(textEl); - }); - }; - SliderTimelineView2.prototype._renderControl = function(layoutInfo, group, axis, timelineModel) { - var controlSize = layoutInfo.controlSize; - var rotation = layoutInfo.rotation; - var itemStyle = timelineModel.getModel("controlStyle").getItemStyle(); - var hoverStyle = timelineModel.getModel(["emphasis", "controlStyle"]).getItemStyle(); - var playState = timelineModel.getPlayState(); - var inverse = timelineModel.get("inverse", true); - makeBtn(layoutInfo.nextBtnPosition, "next", bind$1(this._changeTimeline, this, inverse ? "-" : "+")); - makeBtn(layoutInfo.prevBtnPosition, "prev", bind$1(this._changeTimeline, this, inverse ? "+" : "-")); - makeBtn(layoutInfo.playPosition, playState ? "stop" : "play", bind$1(this._handlePlayClick, this, !playState), true); - function makeBtn(position, iconName, onclick, willRotate) { - if (!position) { - return; - } - var iconSize = parsePercent$1(retrieve2(timelineModel.get(["controlStyle", iconName + "BtnSize"]), controlSize), controlSize); - var rect = [0, -iconSize / 2, iconSize, iconSize]; - var btn = makeControlIcon(timelineModel, iconName + "Icon", rect, { - x: position[0], - y: position[1], - originX: controlSize / 2, - originY: 0, - rotation: willRotate ? -rotation : 0, - rectHover: true, - style: itemStyle, - onclick - }); - btn.ensureState("emphasis").style = hoverStyle; - group.add(btn); - enableHoverEmphasis(btn); - } - }; - SliderTimelineView2.prototype._renderCurrentPointer = function(layoutInfo, group, axis, timelineModel) { - var data = timelineModel.getData(); - var currentIndex = timelineModel.getCurrentIndex(); - var pointerModel = data.getItemModel(currentIndex).getModel("checkpointStyle"); - var me = this; - var callback = { - onCreate: function(pointer) { - pointer.draggable = true; - pointer.drift = bind$1(me._handlePointerDrag, me); - pointer.ondragend = bind$1(me._handlePointerDragend, me); - pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true); - }, - onUpdate: function(pointer) { - pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel); - } - }; - this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback); - }; - SliderTimelineView2.prototype._handlePlayClick = function(nextState) { - this._clearTimer(); - this.api.dispatchAction({ - type: "timelinePlayChange", - playState: nextState, - from: this.uid - }); - }; - SliderTimelineView2.prototype._handlePointerDrag = function(dx, dy, e) { - this._clearTimer(); - this._pointerChangeTimeline([e.offsetX, e.offsetY]); - }; - SliderTimelineView2.prototype._handlePointerDragend = function(e) { - this._pointerChangeTimeline([e.offsetX, e.offsetY], true); - }; - SliderTimelineView2.prototype._pointerChangeTimeline = function(mousePos, trigger) { - var toCoord = this._toAxisCoord(mousePos)[0]; - var axis = this._axis; - var axisExtent = asc$2(axis.getExtent().slice()); - toCoord > axisExtent[1] && (toCoord = axisExtent[1]); - toCoord < axisExtent[0] && (toCoord = axisExtent[0]); - this._currentPointer.x = toCoord; - this._currentPointer.markRedraw(); - var progressLine = this._progressLine; - if (progressLine) { - progressLine.shape.x2 = toCoord; - progressLine.dirty(); - } - var targetDataIndex = this._findNearestTick(toCoord); - var timelineModel = this.model; - if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get("realtime")) { - this._changeTimeline(targetDataIndex); - } - }; - SliderTimelineView2.prototype._doPlayStop = function() { - var _this = this; - this._clearTimer(); - if (this.model.getPlayState()) { - this._timer = setTimeout(function() { - var timelineModel = _this.model; - _this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get("rewind", true) ? -1 : 1)); - }, this.model.get("playInterval")); - } - }; - SliderTimelineView2.prototype._toAxisCoord = function(vertex) { - var trans = this._mainGroup.getLocalTransform(); - return applyTransform(vertex, trans, true); - }; - SliderTimelineView2.prototype._findNearestTick = function(axisCoord) { - var data = this.model.getData(); - var dist = Infinity; - var targetDataIndex; - var axis = this._axis; - data.each(["value"], function(value, dataIndex) { - var coord = axis.dataToCoord(value); - var d2 = Math.abs(coord - axisCoord); - if (d2 < dist) { - dist = d2; - targetDataIndex = dataIndex; - } - }); - return targetDataIndex; - }; - SliderTimelineView2.prototype._clearTimer = function() { - if (this._timer) { - clearTimeout(this._timer); - this._timer = null; - } - }; - SliderTimelineView2.prototype._changeTimeline = function(nextIndex) { - var currentIndex = this.model.getCurrentIndex(); - if (nextIndex === "+") { - nextIndex = currentIndex + 1; - } else if (nextIndex === "-") { - nextIndex = currentIndex - 1; - } - this.api.dispatchAction({ - type: "timelineChange", - currentIndex: nextIndex, - from: this.uid - }); - }; - SliderTimelineView2.prototype._updateTicksStatus = function() { - var currentIndex = this.model.getCurrentIndex(); - var tickSymbols = this._tickSymbols; - var tickLabels = this._tickLabels; - if (tickSymbols) { - for (var i = 0; i < tickSymbols.length; i++) { - tickSymbols && tickSymbols[i] && tickSymbols[i].toggleState("progress", i < currentIndex); - } - } - if (tickLabels) { - for (var i = 0; i < tickLabels.length; i++) { - tickLabels && tickLabels[i] && tickLabels[i].toggleState("progress", labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex); - } - } - }; - SliderTimelineView2.type = "timeline.slider"; - return SliderTimelineView2; - }(TimelineView$1) -); -function createScaleByModel(model, axisType) { - axisType = axisType || model.get("type"); - if (axisType) { - switch (axisType) { - case "category": - return new OrdinalScale({ - ordinalMeta: model.getCategories(), - extent: [Infinity, -Infinity] - }); - case "time": - return new TimeScale({ - locale: model.ecModel.getLocaleModel(), - useUTC: model.ecModel.get("useUTC") - }); - default: - return new IntervalScale(); - } - } -} -function getViewRect(model, api) { - return getLayoutRect(model.getBoxLayoutParams(), { - width: api.getWidth(), - height: api.getHeight() - }, model.get("padding")); -} -function makeControlIcon(timelineModel, objPath, rect, opts) { - var style = opts.style; - var icon = createIcon(timelineModel.get(["controlStyle", objPath]), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3])); - if (style) { - icon.setStyle(style); - } - return icon; -} -function giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) { - var color = itemStyleModel.get("color"); - if (!symbol) { - var symbolType = hostModel.get("symbol"); - symbol = createSymbol(symbolType, -1, -1, 2, 2, color); - symbol.setStyle("strokeNoScale", true); - group.add(symbol); - callback && callback.onCreate(symbol); - } else { - symbol.setColor(color); - group.add(symbol); - callback && callback.onUpdate(symbol); - } - var itemStyle = itemStyleModel.getItemStyle(["color"]); - symbol.setStyle(itemStyle); - opt = merge({ - rectHover: true, - z2: 100 - }, opt, true); - var symbolSize = normalizeSymbolSize(hostModel.get("symbolSize")); - opt.scaleX = symbolSize[0] / 2; - opt.scaleY = symbolSize[1] / 2; - var symbolOffset = normalizeSymbolOffset(hostModel.get("symbolOffset"), symbolSize); - if (symbolOffset) { - opt.x = (opt.x || 0) + symbolOffset[0]; - opt.y = (opt.y || 0) + symbolOffset[1]; - } - var symbolRotate = hostModel.get("symbolRotate"); - opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0; - symbol.attr(opt); - symbol.updateTransform(); - return symbol; -} -function pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) { - if (pointer.dragging) { - return; - } - var pointerModel = timelineModel.getModel("checkpointStyle"); - var toCoord = axis.dataToCoord(timelineModel.getData().get("value", dataIndex)); - if (noAnimation || !pointerModel.get("animation", true)) { - pointer.attr({ - x: toCoord, - y: 0 - }); - progressLine && progressLine.attr({ - shape: { - x2: toCoord - } - }); - } else { - var animationCfg = { - duration: pointerModel.get("animationDuration", true), - easing: pointerModel.get("animationEasing", true) - }; - pointer.stopAnimation(null, true); - pointer.animateTo({ - x: toCoord, - y: 0 - }, animationCfg); - progressLine && progressLine.animateTo({ - shape: { - x2: toCoord - } - }, animationCfg); - } -} -const SliderTimelineView$1 = SliderTimelineView; -function installTimelineAction(registers) { - registers.registerAction({ - type: "timelineChange", - event: "timelineChanged", - update: "prepareAndUpdate" - }, function(payload, ecModel, api) { - var timelineModel = ecModel.getComponent("timeline"); - if (timelineModel && payload.currentIndex != null) { - timelineModel.setCurrentIndex(payload.currentIndex); - if (!timelineModel.get("loop", true) && timelineModel.isIndexMax() && timelineModel.getPlayState()) { - timelineModel.setPlayState(false); - api.dispatchAction({ - type: "timelinePlayChange", - playState: false, - from: payload.from - }); - } - } - ecModel.resetOption("timeline", { - replaceMerge: timelineModel.get("replaceMerge", true) - }); - return defaults({ - currentIndex: timelineModel.option.currentIndex - }, payload); - }); - registers.registerAction({ - type: "timelinePlayChange", - event: "timelinePlayChanged", - update: "update" - }, function(payload, ecModel) { - var timelineModel = ecModel.getComponent("timeline"); - if (timelineModel && payload.playState != null) { - timelineModel.setPlayState(payload.playState); - } - }); -} -function timelinePreprocessor(option) { - var timelineOpt = option && option.timeline; - if (!isArray$1(timelineOpt)) { - timelineOpt = timelineOpt ? [timelineOpt] : []; - } - each$9(timelineOpt, function(opt) { - if (!opt) { - return; - } - compatibleEC2(opt); - }); -} -function compatibleEC2(opt) { - var type = opt.type; - var ec2Types = { - "number": "value", - "time": "time" - }; - if (ec2Types[type]) { - opt.axisType = ec2Types[type]; - delete opt.type; - } - transferItem(opt); - if (has$1(opt, "controlPosition")) { - var controlStyle = opt.controlStyle || (opt.controlStyle = {}); - if (!has$1(controlStyle, "position")) { - controlStyle.position = opt.controlPosition; - } - if (controlStyle.position === "none" && !has$1(controlStyle, "show")) { - controlStyle.show = false; - delete controlStyle.position; - } - delete opt.controlPosition; - } - each$9(opt.data || [], function(dataItem) { - if (isObject(dataItem) && !isArray$1(dataItem)) { - if (!has$1(dataItem, "value") && has$1(dataItem, "name")) { - dataItem.value = dataItem.name; - } - transferItem(dataItem); - } - }); -} -function transferItem(opt) { - var itemStyle = opt.itemStyle || (opt.itemStyle = {}); - var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {}); - var label = opt.label || opt.label || {}; - var labelNormal = label.normal || (label.normal = {}); - var excludeLabelAttr = { - normal: 1, - emphasis: 1 - }; - each$9(label, function(value, name) { - if (!excludeLabelAttr[name] && !has$1(labelNormal, name)) { - labelNormal[name] = value; - } - }); - if (itemStyleEmphasis.label && !has$1(label, "emphasis")) { - label.emphasis = itemStyleEmphasis.label; - delete itemStyleEmphasis.label; - } -} -function has$1(obj, attr) { - return obj.hasOwnProperty(attr); -} -function install$f(registers) { - registers.registerComponentModel(SliderTimelineModel$1); - registers.registerComponentView(SliderTimelineView$1); - registers.registerSubTypeDefaulter("timeline", function() { - return "slider"; - }); - installTimelineAction(registers); - registers.registerPreprocessor(timelinePreprocessor); -} -function checkMarkerInSeries(seriesOpts, markerType) { - if (!seriesOpts) { - return false; - } - var seriesOptArr = isArray$1(seriesOpts) ? seriesOpts : [seriesOpts]; - for (var idx = 0; idx < seriesOptArr.length; idx++) { - if (seriesOptArr[idx] && seriesOptArr[idx][markerType]) { - return true; - } - } - return false; -} -function fillLabel(opt) { - defaultEmphasis(opt, "label", ["show"]); -} -var inner$5 = makeInner(); -var MarkerModel = ( - /** @class */ - function(_super) { - __extends(MarkerModel2, _super); - function MarkerModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = MarkerModel2.type; - _this.createdBySelf = false; - return _this; - } - MarkerModel2.prototype.init = function(option, parentModel, ecModel) { - this.mergeDefaultAndTheme(option, ecModel); - this._mergeOption(option, ecModel, false, true); - }; - MarkerModel2.prototype.isAnimationEnabled = function() { - if (env.node) { - return false; - } - var hostSeries = this.__hostSeries; - return this.getShallow("animation") && hostSeries && hostSeries.isAnimationEnabled(); - }; - MarkerModel2.prototype.mergeOption = function(newOpt, ecModel) { - this._mergeOption(newOpt, ecModel, false, false); - }; - MarkerModel2.prototype._mergeOption = function(newOpt, ecModel, createdBySelf, isInit) { - var componentType = this.mainType; - if (!createdBySelf) { - ecModel.eachSeries(function(seriesModel) { - var markerOpt = seriesModel.get(this.mainType, true); - var markerModel = inner$5(seriesModel)[componentType]; - if (!markerOpt || !markerOpt.data) { - inner$5(seriesModel)[componentType] = null; - return; - } - if (!markerModel) { - if (isInit) { - fillLabel(markerOpt); - } - each$9(markerOpt.data, function(item) { - if (item instanceof Array) { - fillLabel(item[0]); - fillLabel(item[1]); - } else { - fillLabel(item); - } - }); - markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel); - extend(markerModel, { - mainType: this.mainType, - // Use the same series index and name - seriesIndex: seriesModel.seriesIndex, - name: seriesModel.name, - createdBySelf: true - }); - markerModel.__hostSeries = seriesModel; - } else { - markerModel._mergeOption(markerOpt, ecModel, true); - } - inner$5(seriesModel)[componentType] = markerModel; - }, this); - } - }; - MarkerModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { - var data = this.getData(); - var value = this.getRawValue(dataIndex); - var itemName = data.getName(dataIndex); - return createTooltipMarkup("section", { - header: this.name, - blocks: [createTooltipMarkup("nameValue", { - name: itemName, - value, - noName: !itemName, - noValue: value == null - })] - }); - }; - MarkerModel2.prototype.getData = function() { - return this._data; - }; - MarkerModel2.prototype.setData = function(data) { - this._data = data; - }; - MarkerModel2.getMarkerModelFromSeries = function(seriesModel, componentType) { - return inner$5(seriesModel)[componentType]; - }; - MarkerModel2.type = "marker"; - MarkerModel2.dependencies = ["series", "grid", "polar", "geo"]; - return MarkerModel2; - }(ComponentModel) -); -mixin(MarkerModel, DataFormatMixin.prototype); -const MarkerModel$1 = MarkerModel; -var MarkPointModel = ( - /** @class */ - function(_super) { - __extends(MarkPointModel2, _super); - function MarkPointModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = MarkPointModel2.type; - return _this; - } - MarkPointModel2.prototype.createMarkerModelFromSeries = function(markerOpt, masterMarkerModel, ecModel) { - return new MarkPointModel2(markerOpt, masterMarkerModel, ecModel); - }; - MarkPointModel2.type = "markPoint"; - MarkPointModel2.defaultOption = { - // zlevel: 0, - z: 5, - symbol: "pin", - symbolSize: 50, - // symbolRotate: 0, - // symbolOffset: [0, 0] - tooltip: { - trigger: "item" - }, - label: { - show: true, - position: "inside" - }, - itemStyle: { - borderWidth: 2 - }, - emphasis: { - label: { - show: true - } - } - }; - return MarkPointModel2; - }(MarkerModel$1) -); -const MarkPointModel$1 = MarkPointModel; -function hasXOrY(item) { - return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y))); -} -function hasXAndY(item) { - return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y)); -} -function markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) { - var coordArr = []; - var stacked = isDimensionStacked( - data, - targetDataDim - /* , otherDataDim */ - ); - var calcDataDim = stacked ? data.getCalculationInfo("stackResultDimension") : targetDataDim; - var value = numCalculate(data, calcDataDim, markerType); - var dataIndex = data.indicesOfNearest(calcDataDim, value)[0]; - coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex); - coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex); - var coordArrValue = data.get(targetDataDim, dataIndex); - var precision = getPrecision(data.get(targetDataDim, dataIndex)); - precision = Math.min(precision, 20); - if (precision >= 0) { - coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision); - } - return [coordArr, coordArrValue]; -} -var markerTypeCalculator = { - min: curry$1(markerTypeCalculatorWithExtent, "min"), - max: curry$1(markerTypeCalculatorWithExtent, "max"), - average: curry$1(markerTypeCalculatorWithExtent, "average"), - median: curry$1(markerTypeCalculatorWithExtent, "median") -}; -function dataTransform(seriesModel, item) { - if (!item) { - return; - } - var data = seriesModel.getData(); - var coordSys = seriesModel.coordinateSystem; - var dims = coordSys && coordSys.dimensions; - if (!hasXAndY(item) && !isArray$1(item.coord) && isArray$1(dims)) { - var axisInfo = getAxisInfo(item, data, coordSys, seriesModel); - item = clone$1(item); - if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) { - var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim); - var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim); - var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex); - item.coord = coordInfo[0]; - item.value = coordInfo[1]; - } else { - item.coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis]; - } - } - if (item.coord == null || !isArray$1(dims)) { - item.coord = []; - } else { - var coord = item.coord; - for (var i = 0; i < 2; i++) { - if (markerTypeCalculator[coord[i]]) { - coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]); - } - } - } - return item; -} -function getAxisInfo(item, data, coordSys, seriesModel) { - var ret = {}; - if (item.valueIndex != null || item.valueDim != null) { - ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim; - ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim)); - ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis); - ret.baseDataDim = data.mapDimension(ret.baseAxis.dim); - } else { - ret.baseAxis = seriesModel.getBaseAxis(); - ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis); - ret.baseDataDim = data.mapDimension(ret.baseAxis.dim); - ret.valueDataDim = data.mapDimension(ret.valueAxis.dim); - } - return ret; -} -function dataDimToCoordDim(seriesModel, dataDim) { - var dimItem = seriesModel.getData().getDimensionInfo(dataDim); - return dimItem && dimItem.coordDim; -} -function dataFilter(coordSys, item) { - return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true; -} -function zoneFilter(coordSys, item1, item2) { - return coordSys && coordSys.containZone && item1.coord && item2.coord && !hasXOrY(item1) && !hasXOrY(item2) ? coordSys.containZone(item1.coord, item2.coord) : true; -} -function createMarkerDimValueGetter(inCoordSys, dims) { - return inCoordSys ? function(item, dimName, dataIndex, dimIndex) { - var rawVal = dimIndex < 2 ? item.coord && item.coord[dimIndex] : item.value; - return parseDataValue(rawVal, dims[dimIndex]); - } : function(item, dimName, dataIndex, dimIndex) { - return parseDataValue(item.value, dims[dimIndex]); - }; -} -function numCalculate(data, valueDataDim, type) { - if (type === "average") { - var sum_1 = 0; - var count_1 = 0; - data.each(valueDataDim, function(val, idx) { - if (!isNaN(val)) { - sum_1 += val; - count_1++; - } - }); - return sum_1 / count_1; - } else if (type === "median") { - return data.getMedian(valueDataDim); - } else { - return data.getDataExtent(valueDataDim)[type === "max" ? 1 : 0]; - } -} -var inner$4 = makeInner(); -var MarkerView = ( - /** @class */ - function(_super) { - __extends(MarkerView2, _super); - function MarkerView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = MarkerView2.type; - return _this; - } - MarkerView2.prototype.init = function() { - this.markerGroupMap = createHashMap(); - }; - MarkerView2.prototype.render = function(markerModel, ecModel, api) { - var _this = this; - var markerGroupMap = this.markerGroupMap; - markerGroupMap.each(function(item) { - inner$4(item).keep = false; - }); - ecModel.eachSeries(function(seriesModel) { - var markerModel2 = MarkerModel$1.getMarkerModelFromSeries(seriesModel, _this.type); - markerModel2 && _this.renderSeries(seriesModel, markerModel2, ecModel, api); - }); - markerGroupMap.each(function(item) { - !inner$4(item).keep && _this.group.remove(item.group); - }); - }; - MarkerView2.prototype.markKeep = function(drawGroup) { - inner$4(drawGroup).keep = true; - }; - MarkerView2.prototype.toggleBlurSeries = function(seriesModelList, isBlur) { - var _this = this; - each$9(seriesModelList, function(seriesModel) { - var markerModel = MarkerModel$1.getMarkerModelFromSeries(seriesModel, _this.type); - if (markerModel) { - var data = markerModel.getData(); - data.eachItemGraphicEl(function(el) { - if (el) { - isBlur ? enterBlur(el) : leaveBlur(el); - } - }); - } - }); - }; - MarkerView2.type = "marker"; - return MarkerView2; - }(ComponentView) -); -const MarkerView$1 = MarkerView; -function updateMarkerLayout(mpData, seriesModel, api) { - var coordSys = seriesModel.coordinateSystem; - mpData.each(function(idx) { - var itemModel = mpData.getItemModel(idx); - var point; - var xPx = parsePercent(itemModel.get("x"), api.getWidth()); - var yPx = parsePercent(itemModel.get("y"), api.getHeight()); - if (!isNaN(xPx) && !isNaN(yPx)) { - point = [xPx, yPx]; - } else if (seriesModel.getMarkerPosition) { - point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx)); - } else if (coordSys) { - var x = mpData.get(coordSys.dimensions[0], idx); - var y = mpData.get(coordSys.dimensions[1], idx); - point = coordSys.dataToPoint([x, y]); - } - if (!isNaN(xPx)) { - point[0] = xPx; - } - if (!isNaN(yPx)) { - point[1] = yPx; - } - mpData.setItemLayout(idx, point); - }); -} -var MarkPointView = ( - /** @class */ - function(_super) { - __extends(MarkPointView2, _super); - function MarkPointView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = MarkPointView2.type; - return _this; - } - MarkPointView2.prototype.updateTransform = function(markPointModel, ecModel, api) { - ecModel.eachSeries(function(seriesModel) { - var mpModel = MarkerModel$1.getMarkerModelFromSeries(seriesModel, "markPoint"); - if (mpModel) { - updateMarkerLayout(mpModel.getData(), seriesModel, api); - this.markerGroupMap.get(seriesModel.id).updateLayout(); - } - }, this); - }; - MarkPointView2.prototype.renderSeries = function(seriesModel, mpModel, ecModel, api) { - var coordSys = seriesModel.coordinateSystem; - var seriesId = seriesModel.id; - var seriesData = seriesModel.getData(); - var symbolDrawMap = this.markerGroupMap; - var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw()); - var mpData = createData(coordSys, seriesModel, mpModel); - mpModel.setData(mpData); - updateMarkerLayout(mpModel.getData(), seriesModel, api); - mpData.each(function(idx) { - var itemModel = mpData.getItemModel(idx); - var symbol = itemModel.getShallow("symbol"); - var symbolSize = itemModel.getShallow("symbolSize"); - var symbolRotate = itemModel.getShallow("symbolRotate"); - var symbolOffset = itemModel.getShallow("symbolOffset"); - var symbolKeepAspect = itemModel.getShallow("symbolKeepAspect"); - if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate) || isFunction(symbolOffset)) { - var rawIdx = mpModel.getRawValue(idx); - var dataParams = mpModel.getDataParams(idx); - if (isFunction(symbol)) { - symbol = symbol(rawIdx, dataParams); - } - if (isFunction(symbolSize)) { - symbolSize = symbolSize(rawIdx, dataParams); - } - if (isFunction(symbolRotate)) { - symbolRotate = symbolRotate(rawIdx, dataParams); - } - if (isFunction(symbolOffset)) { - symbolOffset = symbolOffset(rawIdx, dataParams); - } - } - var style = itemModel.getModel("itemStyle").getItemStyle(); - var color = getVisualFromData(seriesData, "color"); - if (!style.fill) { - style.fill = color; - } - mpData.setItemVisual(idx, { - symbol, - symbolSize, - symbolRotate, - symbolOffset, - symbolKeepAspect, - style - }); - }); - symbolDraw.updateData(mpData); - this.group.add(symbolDraw.group); - mpData.eachItemGraphicEl(function(el) { - el.traverse(function(child) { - getECData(child).dataModel = mpModel; - }); - }); - this.markKeep(symbolDraw); - symbolDraw.group.silent = mpModel.get("silent") || seriesModel.get("silent"); - }; - MarkPointView2.type = "markPoint"; - return MarkPointView2; - }(MarkerView$1) -); -function createData(coordSys, seriesModel, mpModel) { - var coordDimsInfos; - if (coordSys) { - coordDimsInfos = map(coordSys && coordSys.dimensions, function(coordDim) { - var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; - return extend(extend({}, info), { - name: coordDim, - // DON'T use ordinalMeta to parse and collect ordinal. - ordinalMeta: null - }); - }); - } else { - coordDimsInfos = [{ - name: "value", - type: "float" - }]; - } - var mpData = new SeriesData(coordDimsInfos, mpModel); - var dataOpt = map(mpModel.get("data"), curry$1(dataTransform, seriesModel)); - if (coordSys) { - dataOpt = filter(dataOpt, curry$1(dataFilter, coordSys)); - } - var dimValueGetter = createMarkerDimValueGetter(!!coordSys, coordDimsInfos); - mpData.initData(dataOpt, null, dimValueGetter); - return mpData; -} -const MarkPointView$1 = MarkPointView; -function install$e(registers) { - registers.registerComponentModel(MarkPointModel$1); - registers.registerComponentView(MarkPointView$1); - registers.registerPreprocessor(function(opt) { - if (checkMarkerInSeries(opt.series, "markPoint")) { - opt.markPoint = opt.markPoint || {}; - } - }); -} -var MarkLineModel = ( - /** @class */ - function(_super) { - __extends(MarkLineModel2, _super); - function MarkLineModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = MarkLineModel2.type; - return _this; - } - MarkLineModel2.prototype.createMarkerModelFromSeries = function(markerOpt, masterMarkerModel, ecModel) { - return new MarkLineModel2(markerOpt, masterMarkerModel, ecModel); - }; - MarkLineModel2.type = "markLine"; - MarkLineModel2.defaultOption = { - // zlevel: 0, - z: 5, - symbol: ["circle", "arrow"], - symbolSize: [8, 16], - // symbolRotate: 0, - symbolOffset: 0, - precision: 2, - tooltip: { - trigger: "item" - }, - label: { - show: true, - position: "end", - distance: 5 - }, - lineStyle: { - type: "dashed" - }, - emphasis: { - label: { - show: true - }, - lineStyle: { - width: 3 - } - }, - animationEasing: "linear" - }; - return MarkLineModel2; - }(MarkerModel$1) -); -const MarkLineModel$1 = MarkLineModel; -var inner$3 = makeInner(); -var markLineTransform = function(seriesModel, coordSys, mlModel, item) { - var data = seriesModel.getData(); - var itemArray; - if (!isArray$1(item)) { - var mlType = item.type; - if (mlType === "min" || mlType === "max" || mlType === "average" || mlType === "median" || item.xAxis != null || item.yAxis != null) { - var valueAxis = void 0; - var value = void 0; - if (item.yAxis != null || item.xAxis != null) { - valueAxis = coordSys.getAxis(item.yAxis != null ? "y" : "x"); - value = retrieve(item.yAxis, item.xAxis); - } else { - var axisInfo = getAxisInfo(item, data, coordSys, seriesModel); - valueAxis = axisInfo.valueAxis; - var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim); - value = numCalculate(data, valueDataDim, mlType); - } - var valueIndex = valueAxis.dim === "x" ? 0 : 1; - var baseIndex = 1 - valueIndex; - var mlFrom = clone$1(item); - var mlTo = { - coord: [] - }; - mlFrom.type = null; - mlFrom.coord = []; - mlFrom.coord[baseIndex] = -Infinity; - mlTo.coord[baseIndex] = Infinity; - var precision = mlModel.get("precision"); - if (precision >= 0 && isNumber(value)) { - value = +value.toFixed(Math.min(precision, 20)); - } - mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value; - itemArray = [mlFrom, mlTo, { - type: mlType, - valueIndex: item.valueIndex, - // Force to use the value of calculated value. - value - }]; - } else { - itemArray = []; - } - } else { - itemArray = item; - } - var normalizedItem = [dataTransform(seriesModel, itemArray[0]), dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])]; - normalizedItem[2].type = normalizedItem[2].type || null; - merge(normalizedItem[2], normalizedItem[0]); - merge(normalizedItem[2], normalizedItem[1]); - return normalizedItem; -}; -function isInfinity$1(val) { - return !isNaN(val) && !isFinite(val); -} -function ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) { - var otherDimIndex = 1 - dimIndex; - var dimName = coordSys.dimensions[dimIndex]; - return isInfinity$1(fromCoord[otherDimIndex]) && isInfinity$1(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]); -} -function markLineFilter(coordSys, item) { - if (coordSys.type === "cartesian2d") { - var fromCoord = item[0].coord; - var toCoord = item[1].coord; - if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) { - return true; - } - } - return dataFilter(coordSys, item[0]) && dataFilter(coordSys, item[1]); -} -function updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) { - var coordSys = seriesModel.coordinateSystem; - var itemModel = data.getItemModel(idx); - var point; - var xPx = parsePercent(itemModel.get("x"), api.getWidth()); - var yPx = parsePercent(itemModel.get("y"), api.getHeight()); - if (!isNaN(xPx) && !isNaN(yPx)) { - point = [xPx, yPx]; - } else { - if (seriesModel.getMarkerPosition) { - point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx)); - } else { - var dims = coordSys.dimensions; - var x = data.get(dims[0], idx); - var y = data.get(dims[1], idx); - point = coordSys.dataToPoint([x, y]); - } - if (isCoordinateSystemType(coordSys, "cartesian2d")) { - var xAxis = coordSys.getAxis("x"); - var yAxis = coordSys.getAxis("y"); - var dims = coordSys.dimensions; - if (isInfinity$1(data.get(dims[0], idx))) { - point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]); - } else if (isInfinity$1(data.get(dims[1], idx))) { - point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]); - } - } - if (!isNaN(xPx)) { - point[0] = xPx; - } - if (!isNaN(yPx)) { - point[1] = yPx; - } - } - data.setItemLayout(idx, point); -} -var MarkLineView = ( - /** @class */ - function(_super) { - __extends(MarkLineView2, _super); - function MarkLineView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = MarkLineView2.type; - return _this; - } - MarkLineView2.prototype.updateTransform = function(markLineModel, ecModel, api) { - ecModel.eachSeries(function(seriesModel) { - var mlModel = MarkerModel$1.getMarkerModelFromSeries(seriesModel, "markLine"); - if (mlModel) { - var mlData_1 = mlModel.getData(); - var fromData_1 = inner$3(mlModel).from; - var toData_1 = inner$3(mlModel).to; - fromData_1.each(function(idx) { - updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api); - updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api); - }); - mlData_1.each(function(idx) { - mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]); - }); - this.markerGroupMap.get(seriesModel.id).updateLayout(); - } - }, this); - }; - MarkLineView2.prototype.renderSeries = function(seriesModel, mlModel, ecModel, api) { - var coordSys = seriesModel.coordinateSystem; - var seriesId = seriesModel.id; - var seriesData = seriesModel.getData(); - var lineDrawMap = this.markerGroupMap; - var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw()); - this.group.add(lineDraw.group); - var mlData = createList$1(coordSys, seriesModel, mlModel); - var fromData = mlData.from; - var toData = mlData.to; - var lineData = mlData.line; - inner$3(mlModel).from = fromData; - inner$3(mlModel).to = toData; - mlModel.setData(lineData); - var symbolType = mlModel.get("symbol"); - var symbolSize = mlModel.get("symbolSize"); - var symbolRotate = mlModel.get("symbolRotate"); - var symbolOffset = mlModel.get("symbolOffset"); - if (!isArray$1(symbolType)) { - symbolType = [symbolType, symbolType]; - } - if (!isArray$1(symbolSize)) { - symbolSize = [symbolSize, symbolSize]; - } - if (!isArray$1(symbolRotate)) { - symbolRotate = [symbolRotate, symbolRotate]; - } - if (!isArray$1(symbolOffset)) { - symbolOffset = [symbolOffset, symbolOffset]; - } - mlData.from.each(function(idx) { - updateDataVisualAndLayout(fromData, idx, true); - updateDataVisualAndLayout(toData, idx, false); - }); - lineData.each(function(idx) { - var lineStyle = lineData.getItemModel(idx).getModel("lineStyle").getLineStyle(); - lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]); - if (lineStyle.stroke == null) { - lineStyle.stroke = fromData.getItemVisual(idx, "style").fill; - } - lineData.setItemVisual(idx, { - fromSymbolKeepAspect: fromData.getItemVisual(idx, "symbolKeepAspect"), - fromSymbolOffset: fromData.getItemVisual(idx, "symbolOffset"), - fromSymbolRotate: fromData.getItemVisual(idx, "symbolRotate"), - fromSymbolSize: fromData.getItemVisual(idx, "symbolSize"), - fromSymbol: fromData.getItemVisual(idx, "symbol"), - toSymbolKeepAspect: toData.getItemVisual(idx, "symbolKeepAspect"), - toSymbolOffset: toData.getItemVisual(idx, "symbolOffset"), - toSymbolRotate: toData.getItemVisual(idx, "symbolRotate"), - toSymbolSize: toData.getItemVisual(idx, "symbolSize"), - toSymbol: toData.getItemVisual(idx, "symbol"), - style: lineStyle - }); - }); - lineDraw.updateData(lineData); - mlData.line.eachItemGraphicEl(function(el) { - getECData(el).dataModel = mlModel; - el.traverse(function(child) { - getECData(child).dataModel = mlModel; - }); - }); - function updateDataVisualAndLayout(data, idx, isFrom) { - var itemModel = data.getItemModel(idx); - updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api); - var style = itemModel.getModel("itemStyle").getItemStyle(); - if (style.fill == null) { - style.fill = getVisualFromData(seriesData, "color"); - } - data.setItemVisual(idx, { - symbolKeepAspect: itemModel.get("symbolKeepAspect"), - // `0` should be considered as a valid value, so use `retrieve2` instead of `||` - symbolOffset: retrieve2(itemModel.get("symbolOffset", true), symbolOffset[isFrom ? 0 : 1]), - symbolRotate: retrieve2(itemModel.get("symbolRotate", true), symbolRotate[isFrom ? 0 : 1]), - // TODO: when 2d array is supported, it should ignore parent - symbolSize: retrieve2(itemModel.get("symbolSize"), symbolSize[isFrom ? 0 : 1]), - symbol: retrieve2(itemModel.get("symbol", true), symbolType[isFrom ? 0 : 1]), - style - }); - } - this.markKeep(lineDraw); - lineDraw.group.silent = mlModel.get("silent") || seriesModel.get("silent"); - }; - MarkLineView2.type = "markLine"; - return MarkLineView2; - }(MarkerView$1) -); -function createList$1(coordSys, seriesModel, mlModel) { - var coordDimsInfos; - if (coordSys) { - coordDimsInfos = map(coordSys && coordSys.dimensions, function(coordDim) { - var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; - return extend(extend({}, info), { - name: coordDim, - // DON'T use ordinalMeta to parse and collect ordinal. - ordinalMeta: null - }); - }); - } else { - coordDimsInfos = [{ - name: "value", - type: "float" - }]; - } - var fromData = new SeriesData(coordDimsInfos, mlModel); - var toData = new SeriesData(coordDimsInfos, mlModel); - var lineData = new SeriesData([], mlModel); - var optData = map(mlModel.get("data"), curry$1(markLineTransform, seriesModel, coordSys, mlModel)); - if (coordSys) { - optData = filter(optData, curry$1(markLineFilter, coordSys)); - } - var dimValueGetter = createMarkerDimValueGetter(!!coordSys, coordDimsInfos); - fromData.initData(map(optData, function(item) { - return item[0]; - }), null, dimValueGetter); - toData.initData(map(optData, function(item) { - return item[1]; - }), null, dimValueGetter); - lineData.initData(map(optData, function(item) { - return item[2]; - })); - lineData.hasItemOption = true; - return { - from: fromData, - to: toData, - line: lineData - }; -} -const MarkLineView$1 = MarkLineView; -function install$d(registers) { - registers.registerComponentModel(MarkLineModel$1); - registers.registerComponentView(MarkLineView$1); - registers.registerPreprocessor(function(opt) { - if (checkMarkerInSeries(opt.series, "markLine")) { - opt.markLine = opt.markLine || {}; - } - }); -} -var MarkAreaModel = ( - /** @class */ - function(_super) { - __extends(MarkAreaModel2, _super); - function MarkAreaModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = MarkAreaModel2.type; - return _this; - } - MarkAreaModel2.prototype.createMarkerModelFromSeries = function(markerOpt, masterMarkerModel, ecModel) { - return new MarkAreaModel2(markerOpt, masterMarkerModel, ecModel); - }; - MarkAreaModel2.type = "markArea"; - MarkAreaModel2.defaultOption = { - // zlevel: 0, - // PENDING - z: 1, - tooltip: { - trigger: "item" - }, - // markArea should fixed on the coordinate system - animation: false, - label: { - show: true, - position: "top" - }, - itemStyle: { - // color and borderColor default to use color from series - // color: 'auto' - // borderColor: 'auto' - borderWidth: 0 - }, - emphasis: { - label: { - show: true, - position: "top" - } - } - }; - return MarkAreaModel2; - }(MarkerModel$1) -); -const MarkAreaModel$1 = MarkAreaModel; -var inner$2 = makeInner(); -var markAreaTransform = function(seriesModel, coordSys, maModel, item) { - var item0 = item[0]; - var item1 = item[1]; - if (!item0 || !item1) { - return; - } - var lt = dataTransform(seriesModel, item0); - var rb = dataTransform(seriesModel, item1); - var ltCoord = lt.coord; - var rbCoord = rb.coord; - ltCoord[0] = retrieve(ltCoord[0], -Infinity); - ltCoord[1] = retrieve(ltCoord[1], -Infinity); - rbCoord[0] = retrieve(rbCoord[0], Infinity); - rbCoord[1] = retrieve(rbCoord[1], Infinity); - var result = mergeAll([{}, lt, rb]); - result.coord = [lt.coord, rb.coord]; - result.x0 = lt.x; - result.y0 = lt.y; - result.x1 = rb.x; - result.y1 = rb.y; - return result; -}; -function isInfinity(val) { - return !isNaN(val) && !isFinite(val); -} -function ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) { - var otherDimIndex = 1 - dimIndex; - return isInfinity(fromCoord[otherDimIndex]) && isInfinity(toCoord[otherDimIndex]); -} -function markAreaFilter(coordSys, item) { - var fromCoord = item.coord[0]; - var toCoord = item.coord[1]; - var item0 = { - coord: fromCoord, - x: item.x0, - y: item.y0 - }; - var item1 = { - coord: toCoord, - x: item.x1, - y: item.y1 - }; - if (isCoordinateSystemType(coordSys, "cartesian2d")) { - if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord))) { - return true; - } - return zoneFilter(coordSys, item0, item1); - } - return dataFilter(coordSys, item0) || dataFilter(coordSys, item1); -} -function getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) { - var coordSys = seriesModel.coordinateSystem; - var itemModel = data.getItemModel(idx); - var point; - var xPx = parsePercent(itemModel.get(dims[0]), api.getWidth()); - var yPx = parsePercent(itemModel.get(dims[1]), api.getHeight()); - if (!isNaN(xPx) && !isNaN(yPx)) { - point = [xPx, yPx]; - } else { - if (seriesModel.getMarkerPosition) { - var pointValue0 = data.getValues(["x0", "y0"], idx); - var pointValue1 = data.getValues(["x1", "y1"], idx); - var clampPointValue0 = coordSys.clampData(pointValue0); - var clampPointValue1 = coordSys.clampData(pointValue1); - var pointValue = []; - if (dims[0] === "x0") { - pointValue[0] = clampPointValue0[0] > clampPointValue1[0] ? pointValue1[0] : pointValue0[0]; - } else { - pointValue[0] = clampPointValue0[0] > clampPointValue1[0] ? pointValue0[0] : pointValue1[0]; - } - if (dims[1] === "y0") { - pointValue[1] = clampPointValue0[1] > clampPointValue1[1] ? pointValue1[1] : pointValue0[1]; - } else { - pointValue[1] = clampPointValue0[1] > clampPointValue1[1] ? pointValue0[1] : pointValue1[1]; - } - point = seriesModel.getMarkerPosition(pointValue, dims, true); - } else { - var x = data.get(dims[0], idx); - var y = data.get(dims[1], idx); - var pt = [x, y]; - coordSys.clampData && coordSys.clampData(pt, pt); - point = coordSys.dataToPoint(pt, true); - } - if (isCoordinateSystemType(coordSys, "cartesian2d")) { - var xAxis = coordSys.getAxis("x"); - var yAxis = coordSys.getAxis("y"); - var x = data.get(dims[0], idx); - var y = data.get(dims[1], idx); - if (isInfinity(x)) { - point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === "x0" ? 0 : 1]); - } else if (isInfinity(y)) { - point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === "y0" ? 0 : 1]); - } - } - if (!isNaN(xPx)) { - point[0] = xPx; - } - if (!isNaN(yPx)) { - point[1] = yPx; - } - } - return point; -} -var dimPermutations = [["x0", "y0"], ["x1", "y0"], ["x1", "y1"], ["x0", "y1"]]; -var MarkAreaView = ( - /** @class */ - function(_super) { - __extends(MarkAreaView2, _super); - function MarkAreaView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = MarkAreaView2.type; - return _this; - } - MarkAreaView2.prototype.updateTransform = function(markAreaModel, ecModel, api) { - ecModel.eachSeries(function(seriesModel) { - var maModel = MarkerModel$1.getMarkerModelFromSeries(seriesModel, "markArea"); - if (maModel) { - var areaData_1 = maModel.getData(); - areaData_1.each(function(idx) { - var points = map(dimPermutations, function(dim) { - return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api); - }); - areaData_1.setItemLayout(idx, points); - var el = areaData_1.getItemGraphicEl(idx); - el.setShape("points", points); - }); - } - }, this); - }; - MarkAreaView2.prototype.renderSeries = function(seriesModel, maModel, ecModel, api) { - var coordSys = seriesModel.coordinateSystem; - var seriesId = seriesModel.id; - var seriesData = seriesModel.getData(); - var areaGroupMap = this.markerGroupMap; - var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, { - group: new Group$2() - }); - this.group.add(polygonGroup.group); - this.markKeep(polygonGroup); - var areaData = createList(coordSys, seriesModel, maModel); - maModel.setData(areaData); - areaData.each(function(idx) { - var points = map(dimPermutations, function(dim) { - return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api); - }); - var xAxisScale = coordSys.getAxis("x").scale; - var yAxisScale = coordSys.getAxis("y").scale; - var xAxisExtent = xAxisScale.getExtent(); - var yAxisExtent = yAxisScale.getExtent(); - var xPointExtent = [xAxisScale.parse(areaData.get("x0", idx)), xAxisScale.parse(areaData.get("x1", idx))]; - var yPointExtent = [yAxisScale.parse(areaData.get("y0", idx)), yAxisScale.parse(areaData.get("y1", idx))]; - asc$2(xPointExtent); - asc$2(yPointExtent); - var overlapped = !(xAxisExtent[0] > xPointExtent[1] || xAxisExtent[1] < xPointExtent[0] || yAxisExtent[0] > yPointExtent[1] || yAxisExtent[1] < yPointExtent[0]); - var allClipped = !overlapped; - areaData.setItemLayout(idx, { - points, - allClipped - }); - var style = areaData.getItemModel(idx).getModel("itemStyle").getItemStyle(); - var color$1 = getVisualFromData(seriesData, "color"); - if (!style.fill) { - style.fill = color$1; - if (isString(style.fill)) { - style.fill = modifyAlpha(style.fill, 0.4); - } - } - if (!style.stroke) { - style.stroke = color$1; - } - areaData.setItemVisual(idx, "style", style); - }); - areaData.diff(inner$2(polygonGroup).data).add(function(idx) { - var layout2 = areaData.getItemLayout(idx); - if (!layout2.allClipped) { - var polygon = new Polygon({ - shape: { - points: layout2.points - } - }); - areaData.setItemGraphicEl(idx, polygon); - polygonGroup.group.add(polygon); - } - }).update(function(newIdx, oldIdx) { - var polygon = inner$2(polygonGroup).data.getItemGraphicEl(oldIdx); - var layout2 = areaData.getItemLayout(newIdx); - if (!layout2.allClipped) { - if (polygon) { - updateProps$1(polygon, { - shape: { - points: layout2.points - } - }, maModel, newIdx); - } else { - polygon = new Polygon({ - shape: { - points: layout2.points - } - }); - } - areaData.setItemGraphicEl(newIdx, polygon); - polygonGroup.group.add(polygon); - } else if (polygon) { - polygonGroup.group.remove(polygon); - } - }).remove(function(idx) { - var polygon = inner$2(polygonGroup).data.getItemGraphicEl(idx); - polygonGroup.group.remove(polygon); - }).execute(); - areaData.eachItemGraphicEl(function(polygon, idx) { - var itemModel = areaData.getItemModel(idx); - var style = areaData.getItemVisual(idx, "style"); - polygon.useStyle(areaData.getItemVisual(idx, "style")); - setLabelStyle(polygon, getLabelStatesModels(itemModel), { - labelFetcher: maModel, - labelDataIndex: idx, - defaultText: areaData.getName(idx) || "", - inheritColor: isString(style.fill) ? modifyAlpha(style.fill, 1) : "#000" - }); - setStatesStylesFromModel(polygon, itemModel); - toggleHoverEmphasis(polygon, null, null, itemModel.get(["emphasis", "disabled"])); - getECData(polygon).dataModel = maModel; - }); - inner$2(polygonGroup).data = areaData; - polygonGroup.group.silent = maModel.get("silent") || seriesModel.get("silent"); - }; - MarkAreaView2.type = "markArea"; - return MarkAreaView2; - }(MarkerView$1) -); -function createList(coordSys, seriesModel, maModel) { - var areaData; - var dataDims; - var dims = ["x0", "y0", "x1", "y1"]; - if (coordSys) { - var coordDimsInfos_1 = map(coordSys && coordSys.dimensions, function(coordDim) { - var data = seriesModel.getData(); - var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {}; - return extend(extend({}, info), { - name: coordDim, - // DON'T use ordinalMeta to parse and collect ordinal. - ordinalMeta: null - }); - }); - dataDims = map(dims, function(dim, idx) { - return { - name: dim, - type: coordDimsInfos_1[idx % 2].type - }; - }); - areaData = new SeriesData(dataDims, maModel); - } else { - dataDims = [{ - name: "value", - type: "float" - }]; - areaData = new SeriesData(dataDims, maModel); - } - var optData = map(maModel.get("data"), curry$1(markAreaTransform, seriesModel, coordSys, maModel)); - if (coordSys) { - optData = filter(optData, curry$1(markAreaFilter, coordSys)); - } - var dimValueGetter = coordSys ? function(item, dimName, dataIndex, dimIndex) { - var rawVal = item.coord[Math.floor(dimIndex / 2)][dimIndex % 2]; - return parseDataValue(rawVal, dataDims[dimIndex]); - } : function(item, dimName, dataIndex, dimIndex) { - return parseDataValue(item.value, dataDims[dimIndex]); - }; - areaData.initData(optData, null, dimValueGetter); - areaData.hasItemOption = true; - return areaData; -} -const MarkAreaView$1 = MarkAreaView; -function install$c(registers) { - registers.registerComponentModel(MarkAreaModel$1); - registers.registerComponentView(MarkAreaView$1); - registers.registerPreprocessor(function(opt) { - if (checkMarkerInSeries(opt.series, "markArea")) { - opt.markArea = opt.markArea || {}; - } - }); -} -var getDefaultSelectorOptions = function(ecModel, type) { - if (type === "all") { - return { - type: "all", - title: ecModel.getLocaleModel().get(["legend", "selector", "all"]) - }; - } else if (type === "inverse") { - return { - type: "inverse", - title: ecModel.getLocaleModel().get(["legend", "selector", "inverse"]) - }; - } -}; -var LegendModel = ( - /** @class */ - function(_super) { - __extends(LegendModel2, _super); - function LegendModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = LegendModel2.type; - _this.layoutMode = { - type: "box", - // legend.width/height are maxWidth/maxHeight actually, - // whereas real width/height is calculated by its content. - // (Setting {left: 10, right: 10} does not make sense). - // So consider the case: - // `setOption({legend: {left: 10});` - // then `setOption({legend: {right: 10});` - // The previous `left` should be cleared by setting `ignoreSize`. - ignoreSize: true - }; - return _this; - } - LegendModel2.prototype.init = function(option, parentModel, ecModel) { - this.mergeDefaultAndTheme(option, ecModel); - option.selected = option.selected || {}; - this._updateSelector(option); - }; - LegendModel2.prototype.mergeOption = function(option, ecModel) { - _super.prototype.mergeOption.call(this, option, ecModel); - this._updateSelector(option); - }; - LegendModel2.prototype._updateSelector = function(option) { - var selector2 = option.selector; - var ecModel = this.ecModel; - if (selector2 === true) { - selector2 = option.selector = ["all", "inverse"]; - } - if (isArray$1(selector2)) { - each$9(selector2, function(item, index) { - isString(item) && (item = { - type: item - }); - selector2[index] = merge(item, getDefaultSelectorOptions(ecModel, item.type)); - }); - } - }; - LegendModel2.prototype.optionUpdated = function() { - this._updateData(this.ecModel); - var legendData = this._data; - if (legendData[0] && this.get("selectedMode") === "single") { - var hasSelected = false; - for (var i = 0; i < legendData.length; i++) { - var name_1 = legendData[i].get("name"); - if (this.isSelected(name_1)) { - this.select(name_1); - hasSelected = true; - break; - } - } - !hasSelected && this.select(legendData[0].get("name")); - } - }; - LegendModel2.prototype._updateData = function(ecModel) { - var potentialData = []; - var availableNames = []; - ecModel.eachRawSeries(function(seriesModel) { - var seriesName = seriesModel.name; - availableNames.push(seriesName); - var isPotential; - if (seriesModel.legendVisualProvider) { - var provider = seriesModel.legendVisualProvider; - var names = provider.getAllNames(); - if (!ecModel.isSeriesFiltered(seriesModel)) { - availableNames = availableNames.concat(names); - } - if (names.length) { - potentialData = potentialData.concat(names); - } else { - isPotential = true; - } - } else { - isPotential = true; - } - if (isPotential && isNameSpecified(seriesModel)) { - potentialData.push(seriesModel.name); - } - }); - this._availableNames = availableNames; - var rawData = this.get("data") || potentialData; - var legendNameMap = createHashMap(); - var legendData = map(rawData, function(dataItem) { - if (isString(dataItem) || isNumber(dataItem)) { - dataItem = { - name: dataItem - }; - } - if (legendNameMap.get(dataItem.name)) { - return null; - } - legendNameMap.set(dataItem.name, true); - return new Model(dataItem, this, this.ecModel); - }, this); - this._data = filter(legendData, function(item) { - return !!item; - }); - }; - LegendModel2.prototype.getData = function() { - return this._data; - }; - LegendModel2.prototype.select = function(name) { - var selected = this.option.selected; - var selectedMode = this.get("selectedMode"); - if (selectedMode === "single") { - var data = this._data; - each$9(data, function(dataItem) { - selected[dataItem.get("name")] = false; - }); - } - selected[name] = true; - }; - LegendModel2.prototype.unSelect = function(name) { - if (this.get("selectedMode") !== "single") { - this.option.selected[name] = false; - } - }; - LegendModel2.prototype.toggleSelected = function(name) { - var selected = this.option.selected; - if (!selected.hasOwnProperty(name)) { - selected[name] = true; - } - this[selected[name] ? "unSelect" : "select"](name); - }; - LegendModel2.prototype.allSelect = function() { - var data = this._data; - var selected = this.option.selected; - each$9(data, function(dataItem) { - selected[dataItem.get("name", true)] = true; - }); - }; - LegendModel2.prototype.inverseSelect = function() { - var data = this._data; - var selected = this.option.selected; - each$9(data, function(dataItem) { - var name = dataItem.get("name", true); - if (!selected.hasOwnProperty(name)) { - selected[name] = true; - } - selected[name] = !selected[name]; - }); - }; - LegendModel2.prototype.isSelected = function(name) { - var selected = this.option.selected; - return !(selected.hasOwnProperty(name) && !selected[name]) && indexOf(this._availableNames, name) >= 0; - }; - LegendModel2.prototype.getOrient = function() { - return this.get("orient") === "vertical" ? { - index: 1, - name: "vertical" - } : { - index: 0, - name: "horizontal" - }; - }; - LegendModel2.type = "legend.plain"; - LegendModel2.dependencies = ["series"]; - LegendModel2.defaultOption = { - // zlevel: 0, - z: 4, - show: true, - orient: "horizontal", - left: "center", - // right: 'center', - top: 0, - // bottom: null, - align: "auto", - backgroundColor: "rgba(0,0,0,0)", - borderColor: "#ccc", - borderRadius: 0, - borderWidth: 0, - padding: 5, - itemGap: 10, - itemWidth: 25, - itemHeight: 14, - symbolRotate: "inherit", - symbolKeepAspect: true, - inactiveColor: "#ccc", - inactiveBorderColor: "#ccc", - inactiveBorderWidth: "auto", - itemStyle: { - color: "inherit", - opacity: "inherit", - borderColor: "inherit", - borderWidth: "auto", - borderCap: "inherit", - borderJoin: "inherit", - borderDashOffset: "inherit", - borderMiterLimit: "inherit" - }, - lineStyle: { - width: "auto", - color: "inherit", - inactiveColor: "#ccc", - inactiveWidth: 2, - opacity: "inherit", - type: "inherit", - cap: "inherit", - join: "inherit", - dashOffset: "inherit", - miterLimit: "inherit" - }, - textStyle: { - color: "#333" - }, - selectedMode: true, - selector: false, - selectorLabel: { - show: true, - borderRadius: 10, - padding: [3, 5, 3, 5], - fontSize: 12, - fontFamily: "sans-serif", - color: "#666", - borderWidth: 1, - borderColor: "#666" - }, - emphasis: { - selectorLabel: { - show: true, - color: "#eee", - backgroundColor: "#666" - } - }, - selectorPosition: "auto", - selectorItemGap: 7, - selectorButtonGap: 10, - tooltip: { - show: false - } - }; - return LegendModel2; - }(ComponentModel) -); -const LegendModel$1 = LegendModel; -var curry = curry$1; -var each$3 = each$9; -var Group$1 = Group$2; -var LegendView = ( - /** @class */ - function(_super) { - __extends(LegendView2, _super); - function LegendView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = LegendView2.type; - _this.newlineDisabled = false; - return _this; - } - LegendView2.prototype.init = function() { - this.group.add(this._contentGroup = new Group$1()); - this.group.add(this._selectorGroup = new Group$1()); - this._isFirstRender = true; - }; - LegendView2.prototype.getContentGroup = function() { - return this._contentGroup; - }; - LegendView2.prototype.getSelectorGroup = function() { - return this._selectorGroup; - }; - LegendView2.prototype.render = function(legendModel, ecModel, api) { - var isFirstRender = this._isFirstRender; - this._isFirstRender = false; - this.resetInner(); - if (!legendModel.get("show", true)) { - return; - } - var itemAlign = legendModel.get("align"); - var orient = legendModel.get("orient"); - if (!itemAlign || itemAlign === "auto") { - itemAlign = legendModel.get("left") === "right" && orient === "vertical" ? "right" : "left"; - } - var selector2 = legendModel.get("selector", true); - var selectorPosition = legendModel.get("selectorPosition", true); - if (selector2 && (!selectorPosition || selectorPosition === "auto")) { - selectorPosition = orient === "horizontal" ? "end" : "start"; - } - this.renderInner(itemAlign, legendModel, ecModel, api, selector2, orient, selectorPosition); - var positionInfo = legendModel.getBoxLayoutParams(); - var viewportSize = { - width: api.getWidth(), - height: api.getHeight() - }; - var padding = legendModel.get("padding"); - var maxSize = getLayoutRect(positionInfo, viewportSize, padding); - var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector2, selectorPosition); - var layoutRect = getLayoutRect(defaults({ - width: mainRect.width, - height: mainRect.height - }, positionInfo), viewportSize, padding); - this.group.x = layoutRect.x - mainRect.x; - this.group.y = layoutRect.y - mainRect.y; - this.group.markRedraw(); - this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel)); - }; - LegendView2.prototype.resetInner = function() { - this.getContentGroup().removeAll(); - this._backgroundEl && this.group.remove(this._backgroundEl); - this.getSelectorGroup().removeAll(); - }; - LegendView2.prototype.renderInner = function(itemAlign, legendModel, ecModel, api, selector2, orient, selectorPosition) { - var contentGroup = this.getContentGroup(); - var legendDrawnMap = createHashMap(); - var selectMode = legendModel.get("selectedMode"); - var excludeSeriesId = []; - ecModel.eachRawSeries(function(seriesModel) { - !seriesModel.get("legendHoverLink") && excludeSeriesId.push(seriesModel.id); - }); - each$3(legendModel.getData(), function(legendItemModel, dataIndex) { - var name = legendItemModel.get("name"); - if (!this.newlineDisabled && (name === "" || name === "\n")) { - var g = new Group$1(); - g.newline = true; - contentGroup.add(g); - return; - } - var seriesModel = ecModel.getSeriesByName(name)[0]; - if (legendDrawnMap.get(name)) { - return; - } - if (seriesModel) { - var data = seriesModel.getData(); - var lineVisualStyle = data.getVisual("legendLineStyle") || {}; - var legendIcon = data.getVisual("legendIcon"); - var style = data.getVisual("style"); - var itemGroup = this._createItem(seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, lineVisualStyle, style, legendIcon, selectMode, api); - itemGroup.on("click", curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on("mouseover", curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on("mouseout", curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId)); - legendDrawnMap.set(name, true); - } else { - ecModel.eachRawSeries(function(seriesModel2) { - if (legendDrawnMap.get(name)) { - return; - } - if (seriesModel2.legendVisualProvider) { - var provider = seriesModel2.legendVisualProvider; - if (!provider.containName(name)) { - return; - } - var idx = provider.indexOfName(name); - var style2 = provider.getItemVisual(idx, "style"); - var legendIcon2 = provider.getItemVisual(idx, "legendIcon"); - var colorArr = parse(style2.fill); - if (colorArr && colorArr[3] === 0) { - colorArr[3] = 0.2; - style2 = extend(extend({}, style2), { - fill: stringify(colorArr, "rgba") - }); - } - var itemGroup2 = this._createItem(seriesModel2, name, dataIndex, legendItemModel, legendModel, itemAlign, {}, style2, legendIcon2, selectMode, api); - itemGroup2.on("click", curry(dispatchSelectAction, null, name, api, excludeSeriesId)).on("mouseover", curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on("mouseout", curry(dispatchDownplayAction, null, name, api, excludeSeriesId)); - legendDrawnMap.set(name, true); - } - }, this); - } - }, this); - if (selector2) { - this._createSelector(selector2, legendModel, api, orient, selectorPosition); - } - }; - LegendView2.prototype._createSelector = function(selector2, legendModel, api, orient, selectorPosition) { - var selectorGroup = this.getSelectorGroup(); - each$3(selector2, function createSelectorButton(selectorItem) { - var type = selectorItem.type; - var labelText = new ZRText({ - style: { - x: 0, - y: 0, - align: "center", - verticalAlign: "middle" - }, - onclick: function() { - api.dispatchAction({ - type: type === "all" ? "legendAllSelect" : "legendInverseSelect" - }); - } - }); - selectorGroup.add(labelText); - var labelModel = legendModel.getModel("selectorLabel"); - var emphasisLabelModel = legendModel.getModel(["emphasis", "selectorLabel"]); - setLabelStyle(labelText, { - normal: labelModel, - emphasis: emphasisLabelModel - }, { - defaultText: selectorItem.title - }); - enableHoverEmphasis(labelText); - }); - }; - LegendView2.prototype._createItem = function(seriesModel, name, dataIndex, legendItemModel, legendModel, itemAlign, lineVisualStyle, itemVisualStyle, legendIcon, selectMode, api) { - var drawType = seriesModel.visualDrawType; - var itemWidth = legendModel.get("itemWidth"); - var itemHeight = legendModel.get("itemHeight"); - var isSelected = legendModel.isSelected(name); - var iconRotate = legendItemModel.get("symbolRotate"); - var symbolKeepAspect = legendItemModel.get("symbolKeepAspect"); - var legendIconType = legendItemModel.get("icon"); - legendIcon = legendIconType || legendIcon || "roundRect"; - var style = getLegendStyle(legendIcon, legendItemModel, lineVisualStyle, itemVisualStyle, drawType, isSelected, api); - var itemGroup = new Group$1(); - var textStyleModel = legendItemModel.getModel("textStyle"); - if (isFunction(seriesModel.getLegendIcon) && (!legendIconType || legendIconType === "inherit")) { - itemGroup.add(seriesModel.getLegendIcon({ - itemWidth, - itemHeight, - icon: legendIcon, - iconRotate, - itemStyle: style.itemStyle, - lineStyle: style.lineStyle, - symbolKeepAspect - })); - } else { - var rotate2 = legendIconType === "inherit" && seriesModel.getData().getVisual("symbol") ? iconRotate === "inherit" ? seriesModel.getData().getVisual("symbolRotate") : iconRotate : 0; - itemGroup.add(getDefaultLegendIcon({ - itemWidth, - itemHeight, - icon: legendIcon, - iconRotate: rotate2, - itemStyle: style.itemStyle, - lineStyle: style.lineStyle, - symbolKeepAspect - })); - } - var textX = itemAlign === "left" ? itemWidth + 5 : -5; - var textAlign = itemAlign; - var formatter = legendModel.get("formatter"); - var content = name; - if (isString(formatter) && formatter) { - content = formatter.replace("{name}", name != null ? name : ""); - } else if (isFunction(formatter)) { - content = formatter(name); - } - var inactiveColor = legendItemModel.get("inactiveColor"); - itemGroup.add(new ZRText({ - style: createTextStyle(textStyleModel, { - text: content, - x: textX, - y: itemHeight / 2, - fill: isSelected ? textStyleModel.getTextColor() : inactiveColor, - align: textAlign, - verticalAlign: "middle" - }) - })); - var hitRect = new Rect$1({ - shape: itemGroup.getBoundingRect(), - invisible: true - }); - var tooltipModel = legendItemModel.getModel("tooltip"); - if (tooltipModel.get("show")) { - setTooltipConfig({ - el: hitRect, - componentModel: legendModel, - itemName: name, - itemTooltipOption: tooltipModel.option - }); - } - itemGroup.add(hitRect); - itemGroup.eachChild(function(child) { - child.silent = true; - }); - hitRect.silent = !selectMode; - this.getContentGroup().add(itemGroup); - enableHoverEmphasis(itemGroup); - itemGroup.__legendDataIndex = dataIndex; - return itemGroup; - }; - LegendView2.prototype.layoutInner = function(legendModel, itemAlign, maxSize, isFirstRender, selector2, selectorPosition) { - var contentGroup = this.getContentGroup(); - var selectorGroup = this.getSelectorGroup(); - box(legendModel.get("orient"), contentGroup, legendModel.get("itemGap"), maxSize.width, maxSize.height); - var contentRect = contentGroup.getBoundingRect(); - var contentPos = [-contentRect.x, -contentRect.y]; - selectorGroup.markRedraw(); - contentGroup.markRedraw(); - if (selector2) { - box( - // Buttons in selectorGroup always layout horizontally - "horizontal", - selectorGroup, - legendModel.get("selectorItemGap", true) - ); - var selectorRect = selectorGroup.getBoundingRect(); - var selectorPos = [-selectorRect.x, -selectorRect.y]; - var selectorButtonGap = legendModel.get("selectorButtonGap", true); - var orientIdx = legendModel.getOrient().index; - var wh = orientIdx === 0 ? "width" : "height"; - var hw = orientIdx === 0 ? "height" : "width"; - var yx = orientIdx === 0 ? "y" : "x"; - if (selectorPosition === "end") { - selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap; - } else { - contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap; - } - selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2; - selectorGroup.x = selectorPos[0]; - selectorGroup.y = selectorPos[1]; - contentGroup.x = contentPos[0]; - contentGroup.y = contentPos[1]; - var mainRect = { - x: 0, - y: 0 - }; - mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh]; - mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]); - mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]); - return mainRect; - } else { - contentGroup.x = contentPos[0]; - contentGroup.y = contentPos[1]; - return this.group.getBoundingRect(); - } - }; - LegendView2.prototype.remove = function() { - this.getContentGroup().removeAll(); - this._isFirstRender = true; - }; - LegendView2.type = "legend.plain"; - return LegendView2; - }(ComponentView) -); -function getLegendStyle(iconType, legendItemModel, lineVisualStyle, itemVisualStyle, drawType, isSelected, api) { - function handleCommonProps(style, visualStyle) { - if (style.lineWidth === "auto") { - style.lineWidth = visualStyle.lineWidth > 0 ? 2 : 0; - } - each$3(style, function(propVal, propName) { - style[propName] === "inherit" && (style[propName] = visualStyle[propName]); - }); - } - var itemStyleModel = legendItemModel.getModel("itemStyle"); - var itemStyle = itemStyleModel.getItemStyle(); - var iconBrushType = iconType.lastIndexOf("empty", 0) === 0 ? "fill" : "stroke"; - var decalStyle = itemStyleModel.getShallow("decal"); - itemStyle.decal = !decalStyle || decalStyle === "inherit" ? itemVisualStyle.decal : createOrUpdatePatternFromDecal(decalStyle, api); - if (itemStyle.fill === "inherit") { - itemStyle.fill = itemVisualStyle[drawType]; - } - if (itemStyle.stroke === "inherit") { - itemStyle.stroke = itemVisualStyle[iconBrushType]; - } - if (itemStyle.opacity === "inherit") { - itemStyle.opacity = (drawType === "fill" ? itemVisualStyle : lineVisualStyle).opacity; - } - handleCommonProps(itemStyle, itemVisualStyle); - var legendLineModel = legendItemModel.getModel("lineStyle"); - var lineStyle = legendLineModel.getLineStyle(); - handleCommonProps(lineStyle, lineVisualStyle); - itemStyle.fill === "auto" && (itemStyle.fill = itemVisualStyle.fill); - itemStyle.stroke === "auto" && (itemStyle.stroke = itemVisualStyle.fill); - lineStyle.stroke === "auto" && (lineStyle.stroke = itemVisualStyle.fill); - if (!isSelected) { - var borderWidth = legendItemModel.get("inactiveBorderWidth"); - var visualHasBorder = itemStyle[iconBrushType]; - itemStyle.lineWidth = borderWidth === "auto" ? itemVisualStyle.lineWidth > 0 && visualHasBorder ? 2 : 0 : itemStyle.lineWidth; - itemStyle.fill = legendItemModel.get("inactiveColor"); - itemStyle.stroke = legendItemModel.get("inactiveBorderColor"); - lineStyle.stroke = legendLineModel.get("inactiveColor"); - lineStyle.lineWidth = legendLineModel.get("inactiveWidth"); - } - return { - itemStyle, - lineStyle - }; -} -function getDefaultLegendIcon(opt) { - var symboType = opt.icon || "roundRect"; - var icon = createSymbol(symboType, 0, 0, opt.itemWidth, opt.itemHeight, opt.itemStyle.fill, opt.symbolKeepAspect); - icon.setStyle(opt.itemStyle); - icon.rotation = (opt.iconRotate || 0) * Math.PI / 180; - icon.setOrigin([opt.itemWidth / 2, opt.itemHeight / 2]); - if (symboType.indexOf("empty") > -1) { - icon.style.stroke = icon.style.fill; - icon.style.fill = "#fff"; - icon.style.lineWidth = 2; - } - return icon; -} -function dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) { - dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId); - api.dispatchAction({ - type: "legendToggleSelect", - name: seriesName != null ? seriesName : dataName - }); - dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId); -} -function isUseHoverLayer(api) { - var list = api.getZr().storage.getDisplayList(); - var emphasisState; - var i = 0; - var len = list.length; - while (i < len && !(emphasisState = list[i].states.emphasis)) { - i++; - } - return emphasisState && emphasisState.hoverLayer; -} -function dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) { - if (!isUseHoverLayer(api)) { - api.dispatchAction({ - type: "highlight", - seriesName, - name: dataName, - excludeSeriesId - }); - } -} -function dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) { - if (!isUseHoverLayer(api)) { - api.dispatchAction({ - type: "downplay", - seriesName, - name: dataName, - excludeSeriesId - }); - } -} -const LegendView$1 = LegendView; -function legendFilter(ecModel) { - var legendModels = ecModel.findComponents({ - mainType: "legend" - }); - if (legendModels && legendModels.length) { - ecModel.filterSeries(function(series) { - for (var i = 0; i < legendModels.length; i++) { - if (!legendModels[i].isSelected(series.name)) { - return false; - } - } - return true; - }); - } -} -function legendSelectActionHandler(methodName, payload, ecModel) { - var selectedMap = {}; - var isToggleSelect = methodName === "toggleSelected"; - var isSelected; - ecModel.eachComponent("legend", function(legendModel) { - if (isToggleSelect && isSelected != null) { - legendModel[isSelected ? "select" : "unSelect"](payload.name); - } else if (methodName === "allSelect" || methodName === "inverseSelect") { - legendModel[methodName](); - } else { - legendModel[methodName](payload.name); - isSelected = legendModel.isSelected(payload.name); - } - var legendData = legendModel.getData(); - each$9(legendData, function(model) { - var name = model.get("name"); - if (name === "\n" || name === "") { - return; - } - var isItemSelected = legendModel.isSelected(name); - if (selectedMap.hasOwnProperty(name)) { - selectedMap[name] = selectedMap[name] && isItemSelected; - } else { - selectedMap[name] = isItemSelected; - } - }); - }); - return methodName === "allSelect" || methodName === "inverseSelect" ? { - selected: selectedMap - } : { - name: payload.name, - selected: selectedMap - }; -} -function installLegendAction(registers) { - registers.registerAction("legendToggleSelect", "legendselectchanged", curry$1(legendSelectActionHandler, "toggleSelected")); - registers.registerAction("legendAllSelect", "legendselectall", curry$1(legendSelectActionHandler, "allSelect")); - registers.registerAction("legendInverseSelect", "legendinverseselect", curry$1(legendSelectActionHandler, "inverseSelect")); - registers.registerAction("legendSelect", "legendselected", curry$1(legendSelectActionHandler, "select")); - registers.registerAction("legendUnSelect", "legendunselected", curry$1(legendSelectActionHandler, "unSelect")); -} -function install$b(registers) { - registers.registerComponentModel(LegendModel$1); - registers.registerComponentView(LegendView$1); - registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter); - registers.registerSubTypeDefaulter("legend", function() { - return "plain"; - }); - installLegendAction(registers); -} -var ScrollableLegendModel = ( - /** @class */ - function(_super) { - __extends(ScrollableLegendModel2, _super); - function ScrollableLegendModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ScrollableLegendModel2.type; - return _this; - } - ScrollableLegendModel2.prototype.setScrollDataIndex = function(scrollDataIndex) { - this.option.scrollDataIndex = scrollDataIndex; - }; - ScrollableLegendModel2.prototype.init = function(option, parentModel, ecModel) { - var inputPositionParams = getLayoutParams(option); - _super.prototype.init.call(this, option, parentModel, ecModel); - mergeAndNormalizeLayoutParams(this, option, inputPositionParams); - }; - ScrollableLegendModel2.prototype.mergeOption = function(option, ecModel) { - _super.prototype.mergeOption.call(this, option, ecModel); - mergeAndNormalizeLayoutParams(this, this.option, option); - }; - ScrollableLegendModel2.type = "legend.scroll"; - ScrollableLegendModel2.defaultOption = inheritDefaultOption(LegendModel$1.defaultOption, { - scrollDataIndex: 0, - pageButtonItemGap: 5, - pageButtonGap: null, - pageButtonPosition: "end", - pageFormatter: "{current}/{total}", - pageIcons: { - horizontal: ["M0,0L12,-10L12,10z", "M0,0L-12,-10L-12,10z"], - vertical: ["M0,0L20,0L10,-20z", "M0,0L20,0L10,20z"] - }, - pageIconColor: "#2f4554", - pageIconInactiveColor: "#aaa", - pageIconSize: 15, - pageTextStyle: { - color: "#333" - }, - animationDurationUpdate: 800 - }); - return ScrollableLegendModel2; - }(LegendModel$1) -); -function mergeAndNormalizeLayoutParams(legendModel, target, raw) { - var orient = legendModel.getOrient(); - var ignoreSize = [1, 1]; - ignoreSize[orient.index] = 0; - mergeLayoutParam(target, raw, { - type: "box", - ignoreSize: !!ignoreSize - }); -} -const ScrollableLegendModel$1 = ScrollableLegendModel; -var Group = Group$2; -var WH = ["width", "height"]; -var XY = ["x", "y"]; -var ScrollableLegendView = ( - /** @class */ - function(_super) { - __extends(ScrollableLegendView2, _super); - function ScrollableLegendView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ScrollableLegendView2.type; - _this.newlineDisabled = true; - _this._currentIndex = 0; - return _this; - } - ScrollableLegendView2.prototype.init = function() { - _super.prototype.init.call(this); - this.group.add(this._containerGroup = new Group()); - this._containerGroup.add(this.getContentGroup()); - this.group.add(this._controllerGroup = new Group()); - }; - ScrollableLegendView2.prototype.resetInner = function() { - _super.prototype.resetInner.call(this); - this._controllerGroup.removeAll(); - this._containerGroup.removeClipPath(); - this._containerGroup.__rectSize = null; - }; - ScrollableLegendView2.prototype.renderInner = function(itemAlign, legendModel, ecModel, api, selector2, orient, selectorPosition) { - var self = this; - _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector2, orient, selectorPosition); - var controllerGroup = this._controllerGroup; - var pageIconSize = legendModel.get("pageIconSize", true); - var pageIconSizeArr = isArray$1(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize]; - createPageButton("pagePrev", 0); - var pageTextStyleModel = legendModel.getModel("pageTextStyle"); - controllerGroup.add(new ZRText({ - name: "pageText", - style: { - // Placeholder to calculate a proper layout. - text: "xx/xx", - fill: pageTextStyleModel.getTextColor(), - font: pageTextStyleModel.getFont(), - verticalAlign: "middle", - align: "center" - }, - silent: true - })); - createPageButton("pageNext", 1); - function createPageButton(name, iconIdx) { - var pageDataIndexName = name + "DataIndex"; - var icon = createIcon(legendModel.get("pageIcons", true)[legendModel.getOrient().name][iconIdx], { - // Buttons will be created in each render, so we do not need - // to worry about avoiding using legendModel kept in scope. - onclick: bind$1(self._pageGo, self, pageDataIndexName, legendModel, api) - }, { - x: -pageIconSizeArr[0] / 2, - y: -pageIconSizeArr[1] / 2, - width: pageIconSizeArr[0], - height: pageIconSizeArr[1] - }); - icon.name = name; - controllerGroup.add(icon); - } - }; - ScrollableLegendView2.prototype.layoutInner = function(legendModel, itemAlign, maxSize, isFirstRender, selector2, selectorPosition) { - var selectorGroup = this.getSelectorGroup(); - var orientIdx = legendModel.getOrient().index; - var wh = WH[orientIdx]; - var xy = XY[orientIdx]; - var hw = WH[1 - orientIdx]; - var yx = XY[1 - orientIdx]; - selector2 && box( - // Buttons in selectorGroup always layout horizontally - "horizontal", - selectorGroup, - legendModel.get("selectorItemGap", true) - ); - var selectorButtonGap = legendModel.get("selectorButtonGap", true); - var selectorRect = selectorGroup.getBoundingRect(); - var selectorPos = [-selectorRect.x, -selectorRect.y]; - var processMaxSize = clone$1(maxSize); - selector2 && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap); - var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy); - if (selector2) { - if (selectorPosition === "end") { - selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap; - } else { - var offset = selectorRect[wh] + selectorButtonGap; - selectorPos[orientIdx] -= offset; - mainRect[xy] -= offset; - } - mainRect[wh] += selectorRect[wh] + selectorButtonGap; - selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2; - mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]); - mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]); - selectorGroup.x = selectorPos[0]; - selectorGroup.y = selectorPos[1]; - selectorGroup.markRedraw(); - } - return mainRect; - }; - ScrollableLegendView2.prototype._layoutContentAndController = function(legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) { - var contentGroup = this.getContentGroup(); - var containerGroup = this._containerGroup; - var controllerGroup = this._controllerGroup; - box(legendModel.get("orient"), contentGroup, legendModel.get("itemGap"), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height); - box( - // Buttons in controller are layout always horizontally. - "horizontal", - controllerGroup, - legendModel.get("pageButtonItemGap", true) - ); - var contentRect = contentGroup.getBoundingRect(); - var controllerRect = controllerGroup.getBoundingRect(); - var showController = this._showController = contentRect[wh] > maxSize[wh]; - var contentPos = [-contentRect.x, -contentRect.y]; - if (!isFirstRender) { - contentPos[orientIdx] = contentGroup[xy]; - } - var containerPos = [0, 0]; - var controllerPos = [-controllerRect.x, -controllerRect.y]; - var pageButtonGap = retrieve2(legendModel.get("pageButtonGap", true), legendModel.get("itemGap", true)); - if (showController) { - var pageButtonPosition = legendModel.get("pageButtonPosition", true); - if (pageButtonPosition === "end") { - controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh]; - } else { - containerPos[orientIdx] += controllerRect[wh] + pageButtonGap; - } - } - controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2; - contentGroup.setPosition(contentPos); - containerGroup.setPosition(containerPos); - controllerGroup.setPosition(controllerPos); - var mainRect = { - x: 0, - y: 0 - }; - mainRect[wh] = showController ? maxSize[wh] : contentRect[wh]; - mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); - mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]); - containerGroup.__rectSize = maxSize[wh]; - if (showController) { - var clipShape = { - x: 0, - y: 0 - }; - clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0); - clipShape[hw] = mainRect[hw]; - containerGroup.setClipPath(new Rect$1({ - shape: clipShape - })); - containerGroup.__rectSize = clipShape[wh]; - } else { - controllerGroup.eachChild(function(child) { - child.attr({ - invisible: true, - silent: true - }); - }); - } - var pageInfo = this._getPageInfo(legendModel); - pageInfo.pageIndex != null && updateProps$1( - contentGroup, - { - x: pageInfo.contentPosition[0], - y: pageInfo.contentPosition[1] - }, - // When switch from "show controller" to "not show controller", view should be - // updated immediately without animation, otherwise causes weird effect. - showController ? legendModel : null - ); - this._updatePageInfoView(legendModel, pageInfo); - return mainRect; - }; - ScrollableLegendView2.prototype._pageGo = function(to, legendModel, api) { - var scrollDataIndex = this._getPageInfo(legendModel)[to]; - scrollDataIndex != null && api.dispatchAction({ - type: "legendScroll", - scrollDataIndex, - legendId: legendModel.id - }); - }; - ScrollableLegendView2.prototype._updatePageInfoView = function(legendModel, pageInfo) { - var controllerGroup = this._controllerGroup; - each$9(["pagePrev", "pageNext"], function(name) { - var key = name + "DataIndex"; - var canJump = pageInfo[key] != null; - var icon = controllerGroup.childOfName(name); - if (icon) { - icon.setStyle("fill", canJump ? legendModel.get("pageIconColor", true) : legendModel.get("pageIconInactiveColor", true)); - icon.cursor = canJump ? "pointer" : "default"; - } - }); - var pageText = controllerGroup.childOfName("pageText"); - var pageFormatter = legendModel.get("pageFormatter"); - var pageIndex = pageInfo.pageIndex; - var current = pageIndex != null ? pageIndex + 1 : 0; - var total = pageInfo.pageCount; - pageText && pageFormatter && pageText.setStyle("text", isString(pageFormatter) ? pageFormatter.replace("{current}", current == null ? "" : current + "").replace("{total}", total == null ? "" : total + "") : pageFormatter({ - current, - total - })); - }; - ScrollableLegendView2.prototype._getPageInfo = function(legendModel) { - var scrollDataIndex = legendModel.get("scrollDataIndex", true); - var contentGroup = this.getContentGroup(); - var containerRectSize = this._containerGroup.__rectSize; - var orientIdx = legendModel.getOrient().index; - var wh = WH[orientIdx]; - var xy = XY[orientIdx]; - var targetItemIndex = this._findTargetItemIndex(scrollDataIndex); - var children = contentGroup.children(); - var targetItem = children[targetItemIndex]; - var itemCount = children.length; - var pCount = !itemCount ? 0 : 1; - var result = { - contentPosition: [contentGroup.x, contentGroup.y], - pageCount: pCount, - pageIndex: pCount - 1, - pagePrevDataIndex: null, - pageNextDataIndex: null - }; - if (!targetItem) { - return result; - } - var targetItemInfo = getItemInfo(targetItem); - result.contentPosition[orientIdx] = -targetItemInfo.s; - for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) { - currItemInfo = getItemInfo(children[i]); - if ( - // Half of the last item is out of the window. - !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || // If the current item does not intersect with the window, the new page - // can be started at the current item or the last item. - currItemInfo && !intersect(currItemInfo, winStartItemInfo.s) - ) { - if (winEndItemInfo.i > winStartItemInfo.i) { - winStartItemInfo = winEndItemInfo; - } else { - winStartItemInfo = currItemInfo; - } - if (winStartItemInfo) { - if (result.pageNextDataIndex == null) { - result.pageNextDataIndex = winStartItemInfo.i; - } - ++result.pageCount; - } - } - winEndItemInfo = currItemInfo; - } - for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) { - currItemInfo = getItemInfo(children[i]); - if ( - // If the the end item does not intersect with the window started - // from the current item, a page can be settled. - (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && // e.g., when page size is smaller than item size. - winStartItemInfo.i < winEndItemInfo.i - ) { - winEndItemInfo = winStartItemInfo; - if (result.pagePrevDataIndex == null) { - result.pagePrevDataIndex = winStartItemInfo.i; - } - ++result.pageCount; - ++result.pageIndex; - } - winStartItemInfo = currItemInfo; - } - return result; - function getItemInfo(el) { - if (el) { - var itemRect = el.getBoundingRect(); - var start = itemRect[xy] + el[xy]; - return { - s: start, - e: start + itemRect[wh], - i: el.__legendDataIndex - }; - } - } - function intersect(itemInfo, winStart) { - return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize; - } - }; - ScrollableLegendView2.prototype._findTargetItemIndex = function(targetDataIndex) { - if (!this._showController) { - return 0; - } - var index; - var contentGroup = this.getContentGroup(); - var defaultIndex; - contentGroup.eachChild(function(child, idx) { - var legendDataIdx = child.__legendDataIndex; - if (defaultIndex == null && legendDataIdx != null) { - defaultIndex = idx; - } - if (legendDataIdx === targetDataIndex) { - index = idx; - } - }); - return index != null ? index : defaultIndex; - }; - ScrollableLegendView2.type = "legend.scroll"; - return ScrollableLegendView2; - }(LegendView$1) -); -const ScrollableLegendView$1 = ScrollableLegendView; -function installScrollableLegendAction(registers) { - registers.registerAction("legendScroll", "legendscroll", function(payload, ecModel) { - var scrollDataIndex = payload.scrollDataIndex; - scrollDataIndex != null && ecModel.eachComponent({ - mainType: "legend", - subType: "scroll", - query: payload - }, function(legendModel) { - legendModel.setScrollDataIndex(scrollDataIndex); - }); - }); -} -function install$a(registers) { - use(install$b); - registers.registerComponentModel(ScrollableLegendModel$1); - registers.registerComponentView(ScrollableLegendView$1); - installScrollableLegendAction(registers); -} -function install$9(registers) { - use(install$b); - use(install$a); -} -var InsideZoomModel = ( - /** @class */ - function(_super) { - __extends(InsideZoomModel2, _super); - function InsideZoomModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = InsideZoomModel2.type; - return _this; - } - InsideZoomModel2.type = "dataZoom.inside"; - InsideZoomModel2.defaultOption = inheritDefaultOption(DataZoomModel$1.defaultOption, { - disabled: false, - zoomLock: false, - zoomOnMouseWheel: true, - moveOnMouseMove: true, - moveOnMouseWheel: false, - preventDefaultMouseMove: true - }); - return InsideZoomModel2; - }(DataZoomModel$1) -); -const InsideZoomModel$1 = InsideZoomModel; -var inner$1 = makeInner(); -function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) { - inner$1(api).coordSysRecordMap.each(function(coordSysRecord) { - var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid); - if (dzInfo) { - dzInfo.getRange = getRange; - } - }); -} -function disposeCoordSysRecordIfNeeded(api, dataZoomModel) { - var coordSysRecordMap = inner$1(api).coordSysRecordMap; - var coordSysKeyArr = coordSysRecordMap.keys(); - for (var i = 0; i < coordSysKeyArr.length; i++) { - var coordSysKey = coordSysKeyArr[i]; - var coordSysRecord = coordSysRecordMap.get(coordSysKey); - var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap; - if (dataZoomInfoMap) { - var dzUid = dataZoomModel.uid; - var dzInfo = dataZoomInfoMap.get(dzUid); - if (dzInfo) { - dataZoomInfoMap.removeKey(dzUid); - if (!dataZoomInfoMap.keys().length) { - disposeCoordSysRecord(coordSysRecordMap, coordSysRecord); - } - } - } - } -} -function disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) { - if (coordSysRecord) { - coordSysRecordMap.removeKey(coordSysRecord.model.uid); - var controller = coordSysRecord.controller; - controller && controller.dispose(); - } -} -function createCoordSysRecord(api, coordSysModel) { - var coordSysRecord = { - model: coordSysModel, - containsPoint: curry$1(containsPoint, coordSysModel), - dispatchAction: curry$1(dispatchAction, api), - dataZoomInfoMap: null, - controller: null - }; - var controller = coordSysRecord.controller = new RoamController(api.getZr()); - each$9(["pan", "zoom", "scrollMove"], function(eventName) { - controller.on(eventName, function(event) { - var batch = []; - coordSysRecord.dataZoomInfoMap.each(function(dzInfo) { - if (!event.isAvailableBehavior(dzInfo.model.option)) { - return; - } - var method = (dzInfo.getRange || {})[eventName]; - var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event); - !dzInfo.model.get("disabled", true) && range && batch.push({ - dataZoomId: dzInfo.model.id, - start: range[0], - end: range[1] - }); - }); - batch.length && coordSysRecord.dispatchAction(batch); - }); - }); - return coordSysRecord; -} -function dispatchAction(api, batch) { - if (!api.isDisposed()) { - api.dispatchAction({ - type: "dataZoom", - animation: { - easing: "cubicOut", - duration: 100 - }, - batch - }); - } -} -function containsPoint(coordSysModel, e, x, y) { - return coordSysModel.coordinateSystem.containPoint([x, y]); -} -function mergeControllerParams(dataZoomInfoMap) { - var controlType; - var prefix = "type_"; - var typePriority = { - "type_true": 2, - "type_move": 1, - "type_false": 0, - "type_undefined": -1 - }; - var preventDefaultMouseMove = true; - dataZoomInfoMap.each(function(dataZoomInfo) { - var dataZoomModel = dataZoomInfo.model; - var oneType = dataZoomModel.get("disabled", true) ? false : dataZoomModel.get("zoomLock", true) ? "move" : true; - if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) { - controlType = oneType; - } - preventDefaultMouseMove = preventDefaultMouseMove && dataZoomModel.get("preventDefaultMouseMove", true); - }); - return { - controlType, - opt: { - // RoamController will enable all of these functionalities, - // and the final behavior is determined by its event listener - // provided by each inside zoom. - zoomOnMouseWheel: true, - moveOnMouseMove: true, - moveOnMouseWheel: true, - preventDefaultMouseMove: !!preventDefaultMouseMove - } - }; -} -function installDataZoomRoamProcessor(registers) { - registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, function(ecModel, api) { - var apiInner = inner$1(api); - var coordSysRecordMap = apiInner.coordSysRecordMap || (apiInner.coordSysRecordMap = createHashMap()); - coordSysRecordMap.each(function(coordSysRecord) { - coordSysRecord.dataZoomInfoMap = null; - }); - ecModel.eachComponent({ - mainType: "dataZoom", - subType: "inside" - }, function(dataZoomModel) { - var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel); - each$9(dzReferCoordSysWrap.infoList, function(dzCoordSysInfo) { - var coordSysUid = dzCoordSysInfo.model.uid; - var coordSysRecord = coordSysRecordMap.get(coordSysUid) || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model)); - var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap || (coordSysRecord.dataZoomInfoMap = createHashMap()); - dataZoomInfoMap.set(dataZoomModel.uid, { - dzReferCoordSysInfo: dzCoordSysInfo, - model: dataZoomModel, - getRange: null - }); - }); - }); - coordSysRecordMap.each(function(coordSysRecord) { - var controller = coordSysRecord.controller; - var firstDzInfo; - var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap; - if (dataZoomInfoMap) { - var firstDzKey = dataZoomInfoMap.keys()[0]; - if (firstDzKey != null) { - firstDzInfo = dataZoomInfoMap.get(firstDzKey); - } - } - if (!firstDzInfo) { - disposeCoordSysRecord(coordSysRecordMap, coordSysRecord); - return; - } - var controllerParams = mergeControllerParams(dataZoomInfoMap); - controller.enable(controllerParams.controlType, controllerParams.opt); - controller.setPointerChecker(coordSysRecord.containsPoint); - createOrUpdate(coordSysRecord, "dispatchAction", firstDzInfo.model.get("throttle", true), "fixRate"); - }); - }); -} -var InsideZoomView = ( - /** @class */ - function(_super) { - __extends(InsideZoomView2, _super); - function InsideZoomView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "dataZoom.inside"; - return _this; - } - InsideZoomView2.prototype.render = function(dataZoomModel, ecModel, api) { - _super.prototype.render.apply(this, arguments); - if (dataZoomModel.noTarget()) { - this._clear(); - return; - } - this.range = dataZoomModel.getPercentRange(); - setViewInfoToCoordSysRecord(api, dataZoomModel, { - pan: bind$1(getRangeHandlers.pan, this), - zoom: bind$1(getRangeHandlers.zoom, this), - scrollMove: bind$1(getRangeHandlers.scrollMove, this) - }); - }; - InsideZoomView2.prototype.dispose = function() { - this._clear(); - _super.prototype.dispose.apply(this, arguments); - }; - InsideZoomView2.prototype._clear = function() { - disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel); - this.range = null; - }; - InsideZoomView2.type = "dataZoom.inside"; - return InsideZoomView2; - }(DataZoomView$1) -); -var getRangeHandlers = { - zoom: function(coordSysInfo, coordSysMainType, controller, e) { - var lastRange = this.range; - var range = lastRange.slice(); - var axisModel = coordSysInfo.axisModels[0]; - if (!axisModel) { - return; - } - var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo); - var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0]; - var scale = Math.max(1 / e.scale, 0); - range[0] = (range[0] - percentPoint) * scale + percentPoint; - range[1] = (range[1] - percentPoint) * scale + percentPoint; - var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan(); - sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan); - this.range = range; - if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) { - return range; - } - }, - pan: makeMover(function(range, axisModel, coordSysInfo, coordSysMainType, controller, e) { - var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo); - return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength; - }), - scrollMove: makeMover(function(range, axisModel, coordSysInfo, coordSysMainType, controller, e) { - var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo); - return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta; - }) -}; -function makeMover(getPercentDelta) { - return function(coordSysInfo, coordSysMainType, controller, e) { - var lastRange = this.range; - var range = lastRange.slice(); - var axisModel = coordSysInfo.axisModels[0]; - if (!axisModel) { - return; - } - var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e); - sliderMove(percentDelta, range, [0, 100], "all"); - this.range = range; - if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) { - return range; - } - }; -} -var getDirectionInfo = { - grid: function(oldPoint, newPoint, axisModel, controller, coordSysInfo) { - var axis = axisModel.axis; - var ret = {}; - var rect = coordSysInfo.model.coordinateSystem.getRect(); - oldPoint = oldPoint || [0, 0]; - if (axis.dim === "x") { - ret.pixel = newPoint[0] - oldPoint[0]; - ret.pixelLength = rect.width; - ret.pixelStart = rect.x; - ret.signal = axis.inverse ? 1 : -1; - } else { - ret.pixel = newPoint[1] - oldPoint[1]; - ret.pixelLength = rect.height; - ret.pixelStart = rect.y; - ret.signal = axis.inverse ? -1 : 1; - } - return ret; - }, - polar: function(oldPoint, newPoint, axisModel, controller, coordSysInfo) { - var axis = axisModel.axis; - var ret = {}; - var polar = coordSysInfo.model.coordinateSystem; - var radiusExtent = polar.getRadiusAxis().getExtent(); - var angleExtent = polar.getAngleAxis().getExtent(); - oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0]; - newPoint = polar.pointToCoord(newPoint); - if (axisModel.mainType === "radiusAxis") { - ret.pixel = newPoint[0] - oldPoint[0]; - ret.pixelLength = radiusExtent[1] - radiusExtent[0]; - ret.pixelStart = radiusExtent[0]; - ret.signal = axis.inverse ? 1 : -1; - } else { - ret.pixel = newPoint[1] - oldPoint[1]; - ret.pixelLength = angleExtent[1] - angleExtent[0]; - ret.pixelStart = angleExtent[0]; - ret.signal = axis.inverse ? -1 : 1; - } - return ret; - }, - singleAxis: function(oldPoint, newPoint, axisModel, controller, coordSysInfo) { - var axis = axisModel.axis; - var rect = coordSysInfo.model.coordinateSystem.getRect(); - var ret = {}; - oldPoint = oldPoint || [0, 0]; - if (axis.orient === "horizontal") { - ret.pixel = newPoint[0] - oldPoint[0]; - ret.pixelLength = rect.width; - ret.pixelStart = rect.x; - ret.signal = axis.inverse ? 1 : -1; - } else { - ret.pixel = newPoint[1] - oldPoint[1]; - ret.pixelLength = rect.height; - ret.pixelStart = rect.y; - ret.signal = axis.inverse ? -1 : 1; - } - return ret; - } -}; -const InsideZoomView$1 = InsideZoomView; -function install$8(registers) { - installCommon$1(registers); - registers.registerComponentModel(InsideZoomModel$1); - registers.registerComponentView(InsideZoomView$1); - installDataZoomRoamProcessor(registers); -} -var SliderZoomModel = ( - /** @class */ - function(_super) { - __extends(SliderZoomModel2, _super); - function SliderZoomModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SliderZoomModel2.type; - return _this; - } - SliderZoomModel2.type = "dataZoom.slider"; - SliderZoomModel2.layoutMode = "box"; - SliderZoomModel2.defaultOption = inheritDefaultOption(DataZoomModel$1.defaultOption, { - show: true, - // deault value can only be drived in view stage. - right: "ph", - top: "ph", - width: "ph", - height: "ph", - left: null, - bottom: null, - borderColor: "#d2dbee", - borderRadius: 3, - backgroundColor: "rgba(47,69,84,0)", - // dataBackgroundColor: '#ddd', - dataBackground: { - lineStyle: { - color: "#d2dbee", - width: 0.5 - }, - areaStyle: { - color: "#d2dbee", - opacity: 0.2 - } - }, - selectedDataBackground: { - lineStyle: { - color: "#8fb0f7", - width: 0.5 - }, - areaStyle: { - color: "#8fb0f7", - opacity: 0.2 - } - }, - // Color of selected window. - fillerColor: "rgba(135,175,274,0.2)", - handleIcon: "path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z", - // Percent of the slider height - handleSize: "100%", - handleStyle: { - color: "#fff", - borderColor: "#ACB8D1" - }, - moveHandleSize: 7, - moveHandleIcon: "path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z", - moveHandleStyle: { - color: "#D2DBEE", - opacity: 0.7 - }, - showDetail: true, - showDataShadow: "auto", - realtime: true, - zoomLock: false, - textStyle: { - color: "#6E7079" - }, - brushSelect: true, - brushStyle: { - color: "rgba(135,175,274,0.15)" - }, - emphasis: { - handleStyle: { - borderColor: "#8FB0F7" - }, - moveHandleStyle: { - color: "#8FB0F7" - } - } - }); - return SliderZoomModel2; - }(DataZoomModel$1) -); -const SliderZoomModel$1 = SliderZoomModel; -var Rect = Rect$1; -var DEFAULT_LOCATION_EDGE_GAP = 7; -var DEFAULT_FRAME_BORDER_WIDTH = 1; -var DEFAULT_FILLER_SIZE = 30; -var DEFAULT_MOVE_HANDLE_SIZE = 7; -var HORIZONTAL = "horizontal"; -var VERTICAL = "vertical"; -var LABEL_GAP = 5; -var SHOW_DATA_SHADOW_SERIES_TYPE = ["line", "bar", "candlestick", "scatter"]; -var REALTIME_ANIMATION_CONFIG = { - easing: "cubicOut", - duration: 100, - delay: 0 -}; -var SliderZoomView = ( - /** @class */ - function(_super) { - __extends(SliderZoomView2, _super); - function SliderZoomView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = SliderZoomView2.type; - _this._displayables = {}; - return _this; - } - SliderZoomView2.prototype.init = function(ecModel, api) { - this.api = api; - this._onBrush = bind$1(this._onBrush, this); - this._onBrushEnd = bind$1(this._onBrushEnd, this); - }; - SliderZoomView2.prototype.render = function(dataZoomModel, ecModel, api, payload) { - _super.prototype.render.apply(this, arguments); - createOrUpdate(this, "_dispatchZoomAction", dataZoomModel.get("throttle"), "fixRate"); - this._orient = dataZoomModel.getOrient(); - if (dataZoomModel.get("show") === false) { - this.group.removeAll(); - return; - } - if (dataZoomModel.noTarget()) { - this._clear(); - this.group.removeAll(); - return; - } - if (!payload || payload.type !== "dataZoom" || payload.from !== this.uid) { - this._buildView(); - } - this._updateView(); - }; - SliderZoomView2.prototype.dispose = function() { - this._clear(); - _super.prototype.dispose.apply(this, arguments); - }; - SliderZoomView2.prototype._clear = function() { - clear$1(this, "_dispatchZoomAction"); - var zr = this.api.getZr(); - zr.off("mousemove", this._onBrush); - zr.off("mouseup", this._onBrushEnd); - }; - SliderZoomView2.prototype._buildView = function() { - var thisGroup = this.group; - thisGroup.removeAll(); - this._brushing = false; - this._displayables.brushRect = null; - this._resetLocation(); - this._resetInterval(); - var barGroup = this._displayables.sliderGroup = new Group$2(); - this._renderBackground(); - this._renderHandle(); - this._renderDataShadow(); - thisGroup.add(barGroup); - this._positionGroup(); - }; - SliderZoomView2.prototype._resetLocation = function() { - var dataZoomModel = this.dataZoomModel; - var api = this.api; - var showMoveHandle = dataZoomModel.get("brushSelect"); - var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0; - var coordRect = this._findCoordRect(); - var ecSize = { - width: api.getWidth(), - height: api.getHeight() - }; - var positionInfo = this._orient === HORIZONTAL ? { - // Why using 'right', because right should be used in vertical, - // and it is better to be consistent for dealing with position param merge. - right: ecSize.width - coordRect.x - coordRect.width, - top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize, - width: coordRect.width, - height: DEFAULT_FILLER_SIZE - } : { - right: DEFAULT_LOCATION_EDGE_GAP, - top: coordRect.y, - width: DEFAULT_FILLER_SIZE, - height: coordRect.height - }; - var layoutParams = getLayoutParams(dataZoomModel.option); - each$9(["right", "top", "width", "height"], function(name) { - if (layoutParams[name] === "ph") { - layoutParams[name] = positionInfo[name]; - } - }); - var layoutRect = getLayoutRect(layoutParams, ecSize); - this._location = { - x: layoutRect.x, - y: layoutRect.y - }; - this._size = [layoutRect.width, layoutRect.height]; - this._orient === VERTICAL && this._size.reverse(); - }; - SliderZoomView2.prototype._positionGroup = function() { - var thisGroup = this.group; - var location = this._location; - var orient = this._orient; - var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel(); - var inverse = targetAxisModel && targetAxisModel.get("inverse"); - var sliderGroup = this._displayables.sliderGroup; - var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse; - sliderGroup.attr(orient === HORIZONTAL && !inverse ? { - scaleY: otherAxisInverse ? 1 : -1, - scaleX: 1 - } : orient === HORIZONTAL && inverse ? { - scaleY: otherAxisInverse ? 1 : -1, - scaleX: -1 - } : orient === VERTICAL && !inverse ? { - scaleY: otherAxisInverse ? -1 : 1, - scaleX: 1, - rotation: Math.PI / 2 - } : { - scaleY: otherAxisInverse ? -1 : 1, - scaleX: -1, - rotation: Math.PI / 2 - }); - var rect = thisGroup.getBoundingRect([sliderGroup]); - thisGroup.x = location.x - rect.x; - thisGroup.y = location.y - rect.y; - thisGroup.markRedraw(); - }; - SliderZoomView2.prototype._getViewExtent = function() { - return [0, this._size[0]]; - }; - SliderZoomView2.prototype._renderBackground = function() { - var dataZoomModel = this.dataZoomModel; - var size = this._size; - var barGroup = this._displayables.sliderGroup; - var brushSelect = dataZoomModel.get("brushSelect"); - barGroup.add(new Rect({ - silent: true, - shape: { - x: 0, - y: 0, - width: size[0], - height: size[1] - }, - style: { - fill: dataZoomModel.get("backgroundColor") - }, - z2: -40 - })); - var clickPanel = new Rect({ - shape: { - x: 0, - y: 0, - width: size[0], - height: size[1] - }, - style: { - fill: "transparent" - }, - z2: 0, - onclick: bind$1(this._onClickPanel, this) - }); - var zr = this.api.getZr(); - if (brushSelect) { - clickPanel.on("mousedown", this._onBrushStart, this); - clickPanel.cursor = "crosshair"; - zr.on("mousemove", this._onBrush); - zr.on("mouseup", this._onBrushEnd); - } else { - zr.off("mousemove", this._onBrush); - zr.off("mouseup", this._onBrushEnd); - } - barGroup.add(clickPanel); - }; - SliderZoomView2.prototype._renderDataShadow = function() { - var info = this._dataShadowInfo = this._prepareDataShadowInfo(); - this._displayables.dataShadowSegs = []; - if (!info) { - return; - } - var size = this._size; - var oldSize = this._shadowSize || []; - var seriesModel = info.series; - var data = seriesModel.getRawData(); - var candlestickDim = seriesModel.getShadowDim && seriesModel.getShadowDim(); - var otherDim = candlestickDim && data.getDimensionInfo(candlestickDim) ? seriesModel.getShadowDim() : info.otherDim; - if (otherDim == null) { - return; - } - var polygonPts = this._shadowPolygonPts; - var polylinePts = this._shadowPolylinePts; - if (data !== this._shadowData || otherDim !== this._shadowDim || size[0] !== oldSize[0] || size[1] !== oldSize[1]) { - var otherDataExtent_1 = data.getDataExtent(otherDim); - var otherOffset = (otherDataExtent_1[1] - otherDataExtent_1[0]) * 0.3; - otherDataExtent_1 = [otherDataExtent_1[0] - otherOffset, otherDataExtent_1[1] + otherOffset]; - var otherShadowExtent_1 = [0, size[1]]; - var thisShadowExtent = [0, size[0]]; - var areaPoints_1 = [[size[0], 0], [0, 0]]; - var linePoints_1 = []; - var step_1 = thisShadowExtent[1] / (data.count() - 1); - var thisCoord_1 = 0; - var stride_1 = Math.round(data.count() / size[0]); - var lastIsEmpty_1; - data.each([otherDim], function(value, index) { - if (stride_1 > 0 && index % stride_1) { - thisCoord_1 += step_1; - return; - } - var isEmpty = value == null || isNaN(value) || value === ""; - var otherCoord = isEmpty ? 0 : linearMap$2(value, otherDataExtent_1, otherShadowExtent_1, true); - if (isEmpty && !lastIsEmpty_1 && index) { - areaPoints_1.push([areaPoints_1[areaPoints_1.length - 1][0], 0]); - linePoints_1.push([linePoints_1[linePoints_1.length - 1][0], 0]); - } else if (!isEmpty && lastIsEmpty_1) { - areaPoints_1.push([thisCoord_1, 0]); - linePoints_1.push([thisCoord_1, 0]); - } - areaPoints_1.push([thisCoord_1, otherCoord]); - linePoints_1.push([thisCoord_1, otherCoord]); - thisCoord_1 += step_1; - lastIsEmpty_1 = isEmpty; - }); - polygonPts = this._shadowPolygonPts = areaPoints_1; - polylinePts = this._shadowPolylinePts = linePoints_1; - } - this._shadowData = data; - this._shadowDim = otherDim; - this._shadowSize = [size[0], size[1]]; - var dataZoomModel = this.dataZoomModel; - function createDataShadowGroup(isSelectedArea) { - var model = dataZoomModel.getModel(isSelectedArea ? "selectedDataBackground" : "dataBackground"); - var group2 = new Group$2(); - var polygon = new Polygon({ - shape: { - points: polygonPts - }, - segmentIgnoreThreshold: 1, - style: model.getModel("areaStyle").getAreaStyle(), - silent: true, - z2: -20 - }); - var polyline = new Polyline({ - shape: { - points: polylinePts - }, - segmentIgnoreThreshold: 1, - style: model.getModel("lineStyle").getLineStyle(), - silent: true, - z2: -19 - }); - group2.add(polygon); - group2.add(polyline); - return group2; - } - for (var i = 0; i < 3; i++) { - var group = createDataShadowGroup(i === 1); - this._displayables.sliderGroup.add(group); - this._displayables.dataShadowSegs.push(group); - } - }; - SliderZoomView2.prototype._prepareDataShadowInfo = function() { - var dataZoomModel = this.dataZoomModel; - var showDataShadow = dataZoomModel.get("showDataShadow"); - if (showDataShadow === false) { - return; - } - var result; - var ecModel = this.ecModel; - dataZoomModel.eachTargetAxis(function(axisDim, axisIndex) { - var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels(); - each$9(seriesModels, function(seriesModel) { - if (result) { - return; - } - if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get("type")) < 0) { - return; - } - var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis; - var otherDim = getOtherDim(axisDim); - var otherAxisInverse; - var coordSys = seriesModel.coordinateSystem; - if (otherDim != null && coordSys.getOtherAxis) { - otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse; - } - otherDim = seriesModel.getData().mapDimension(otherDim); - result = { - thisAxis, - series: seriesModel, - thisDim: axisDim, - otherDim, - otherAxisInverse - }; - }, this); - }, this); - return result; - }; - SliderZoomView2.prototype._renderHandle = function() { - var thisGroup = this.group; - var displayables = this._displayables; - var handles = displayables.handles = [null, null]; - var handleLabels = displayables.handleLabels = [null, null]; - var sliderGroup = this._displayables.sliderGroup; - var size = this._size; - var dataZoomModel = this.dataZoomModel; - var api = this.api; - var borderRadius = dataZoomModel.get("borderRadius") || 0; - var brushSelect = dataZoomModel.get("brushSelect"); - var filler = displayables.filler = new Rect({ - silent: brushSelect, - style: { - fill: dataZoomModel.get("fillerColor") - }, - textConfig: { - position: "inside" - } - }); - sliderGroup.add(filler); - sliderGroup.add(new Rect({ - silent: true, - subPixelOptimize: true, - shape: { - x: 0, - y: 0, - width: size[0], - height: size[1], - r: borderRadius - }, - style: { - // deprecated option - stroke: dataZoomModel.get("dataBackgroundColor") || dataZoomModel.get("borderColor"), - lineWidth: DEFAULT_FRAME_BORDER_WIDTH, - fill: "rgba(0,0,0,0)" - } - })); - each$9([0, 1], function(handleIndex) { - var iconStr = dataZoomModel.get("handleIcon"); - if (!symbolBuildProxies[iconStr] && iconStr.indexOf("path://") < 0 && iconStr.indexOf("image://") < 0) { - iconStr = "path://" + iconStr; - } - var path = createSymbol(iconStr, -1, 0, 2, 2, null, true); - path.attr({ - cursor: getCursor$1(this._orient), - draggable: true, - drift: bind$1(this._onDragMove, this, handleIndex), - ondragend: bind$1(this._onDragEnd, this), - onmouseover: bind$1(this._showDataInfo, this, true), - onmouseout: bind$1(this._showDataInfo, this, false), - z2: 5 - }); - var bRect = path.getBoundingRect(); - var handleSize = dataZoomModel.get("handleSize"); - this._handleHeight = parsePercent(handleSize, this._size[1]); - this._handleWidth = bRect.width / bRect.height * this._handleHeight; - path.setStyle(dataZoomModel.getModel("handleStyle").getItemStyle()); - path.style.strokeNoScale = true; - path.rectHover = true; - path.ensureState("emphasis").style = dataZoomModel.getModel(["emphasis", "handleStyle"]).getItemStyle(); - enableHoverEmphasis(path); - var handleColor = dataZoomModel.get("handleColor"); - if (handleColor != null) { - path.style.fill = handleColor; - } - sliderGroup.add(handles[handleIndex] = path); - var textStyleModel = dataZoomModel.getModel("textStyle"); - thisGroup.add(handleLabels[handleIndex] = new ZRText({ - silent: true, - invisible: true, - style: createTextStyle(textStyleModel, { - x: 0, - y: 0, - text: "", - verticalAlign: "middle", - align: "center", - fill: textStyleModel.getTextColor(), - font: textStyleModel.getFont() - }), - z2: 10 - })); - }, this); - var actualMoveZone = filler; - if (brushSelect) { - var moveHandleHeight = parsePercent(dataZoomModel.get("moveHandleSize"), size[1]); - var moveHandle_1 = displayables.moveHandle = new Rect$1({ - style: dataZoomModel.getModel("moveHandleStyle").getItemStyle(), - silent: true, - shape: { - r: [0, 0, 2, 2], - y: size[1] - 0.5, - height: moveHandleHeight - } - }); - var iconSize = moveHandleHeight * 0.8; - var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get("moveHandleIcon"), -iconSize / 2, -iconSize / 2, iconSize, iconSize, "#fff", true); - moveHandleIcon.silent = true; - moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5; - moveHandle_1.ensureState("emphasis").style = dataZoomModel.getModel(["emphasis", "moveHandleStyle"]).getItemStyle(); - var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10)); - actualMoveZone = displayables.moveZone = new Rect$1({ - invisible: true, - shape: { - y: size[1] - moveZoneExpandSize, - height: moveHandleHeight + moveZoneExpandSize - } - }); - actualMoveZone.on("mouseover", function() { - api.enterEmphasis(moveHandle_1); - }).on("mouseout", function() { - api.leaveEmphasis(moveHandle_1); - }); - sliderGroup.add(moveHandle_1); - sliderGroup.add(moveHandleIcon); - sliderGroup.add(actualMoveZone); - } - actualMoveZone.attr({ - draggable: true, - cursor: getCursor$1(this._orient), - drift: bind$1(this._onDragMove, this, "all"), - ondragstart: bind$1(this._showDataInfo, this, true), - ondragend: bind$1(this._onDragEnd, this), - onmouseover: bind$1(this._showDataInfo, this, true), - onmouseout: bind$1(this._showDataInfo, this, false) - }); - }; - SliderZoomView2.prototype._resetInterval = function() { - var range = this._range = this.dataZoomModel.getPercentRange(); - var viewExtent = this._getViewExtent(); - this._handleEnds = [linearMap$2(range[0], [0, 100], viewExtent, true), linearMap$2(range[1], [0, 100], viewExtent, true)]; - }; - SliderZoomView2.prototype._updateInterval = function(handleIndex, delta) { - var dataZoomModel = this.dataZoomModel; - var handleEnds = this._handleEnds; - var viewExtend = this._getViewExtent(); - var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan(); - var percentExtent = [0, 100]; - sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get("zoomLock") ? "all" : handleIndex, minMaxSpan.minSpan != null ? linearMap$2(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap$2(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null); - var lastRange = this._range; - var range = this._range = asc$2([linearMap$2(handleEnds[0], viewExtend, percentExtent, true), linearMap$2(handleEnds[1], viewExtend, percentExtent, true)]); - return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1]; - }; - SliderZoomView2.prototype._updateView = function(nonRealtime) { - var displaybles = this._displayables; - var handleEnds = this._handleEnds; - var handleInterval = asc$2(handleEnds.slice()); - var size = this._size; - each$9([0, 1], function(handleIndex) { - var handle = displaybles.handles[handleIndex]; - var handleHeight = this._handleHeight; - handle.attr({ - scaleX: handleHeight / 2, - scaleY: handleHeight / 2, - // This is a trick, by adding an extra tiny offset to let the default handle's end point align to the drag window. - // NOTE: It may affect some custom shapes a bit. But we prefer to have better result by default. - x: handleEnds[handleIndex] + (handleIndex ? -1 : 1), - y: size[1] / 2 - handleHeight / 2 - }); - }, this); - displaybles.filler.setShape({ - x: handleInterval[0], - y: 0, - width: handleInterval[1] - handleInterval[0], - height: size[1] - }); - var viewExtent = { - x: handleInterval[0], - width: handleInterval[1] - handleInterval[0] - }; - if (displaybles.moveHandle) { - displaybles.moveHandle.setShape(viewExtent); - displaybles.moveZone.setShape(viewExtent); - displaybles.moveZone.getBoundingRect(); - displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr("x", viewExtent.x + viewExtent.width / 2); - } - var dataShadowSegs = displaybles.dataShadowSegs; - var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]]; - for (var i = 0; i < dataShadowSegs.length; i++) { - var segGroup = dataShadowSegs[i]; - var clipPath = segGroup.getClipPath(); - if (!clipPath) { - clipPath = new Rect$1(); - segGroup.setClipPath(clipPath); - } - clipPath.setShape({ - x: segIntervals[i], - y: 0, - width: segIntervals[i + 1] - segIntervals[i], - height: size[1] - }); - } - this._updateDataInfo(nonRealtime); - }; - SliderZoomView2.prototype._updateDataInfo = function(nonRealtime) { - var dataZoomModel = this.dataZoomModel; - var displaybles = this._displayables; - var handleLabels = displaybles.handleLabels; - var orient = this._orient; - var labelTexts = ["", ""]; - if (dataZoomModel.get("showDetail")) { - var axisProxy = dataZoomModel.findRepresentativeAxisProxy(); - if (axisProxy) { - var axis = axisProxy.getAxisModel().axis; - var range = this._range; - var dataInterval = nonRealtime ? axisProxy.calculateDataWindow({ - start: range[0], - end: range[1] - }).valueWindow : axisProxy.getDataValueWindow(); - labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)]; - } - } - var orderedHandleEnds = asc$2(this._handleEnds.slice()); - setLabel.call(this, 0); - setLabel.call(this, 1); - function setLabel(handleIndex) { - var barTransform = getTransform(displaybles.handles[handleIndex].parent, this.group); - var direction = transformDirection(handleIndex === 0 ? "right" : "left", barTransform); - var offset = this._handleWidth / 2 + LABEL_GAP; - var textPoint = applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform); - handleLabels[handleIndex].setStyle({ - x: textPoint[0], - y: textPoint[1], - verticalAlign: orient === HORIZONTAL ? "middle" : direction, - align: orient === HORIZONTAL ? direction : "center", - text: labelTexts[handleIndex] - }); - } - }; - SliderZoomView2.prototype._formatLabel = function(value, axis) { - var dataZoomModel = this.dataZoomModel; - var labelFormatter = dataZoomModel.get("labelFormatter"); - var labelPrecision = dataZoomModel.get("labelPrecision"); - if (labelPrecision == null || labelPrecision === "auto") { - labelPrecision = axis.getPixelPrecision(); - } - var valueStr = value == null || isNaN(value) ? "" : axis.type === "category" || axis.type === "time" ? axis.scale.getLabel({ - value: Math.round(value) - }) : value.toFixed(Math.min(labelPrecision, 20)); - return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace("{value}", valueStr) : valueStr; - }; - SliderZoomView2.prototype._showDataInfo = function(showOrHide) { - showOrHide = this._dragging || showOrHide; - var displayables = this._displayables; - var handleLabels = displayables.handleLabels; - handleLabels[0].attr("invisible", !showOrHide); - handleLabels[1].attr("invisible", !showOrHide); - displayables.moveHandle && this.api[showOrHide ? "enterEmphasis" : "leaveEmphasis"](displayables.moveHandle, 1); - }; - SliderZoomView2.prototype._onDragMove = function(handleIndex, dx, dy, event) { - this._dragging = true; - stop(event.event); - var barTransform = this._displayables.sliderGroup.getLocalTransform(); - var vertex = applyTransform([dx, dy], barTransform, true); - var changed = this._updateInterval(handleIndex, vertex[0]); - var realtime = this.dataZoomModel.get("realtime"); - this._updateView(!realtime); - changed && realtime && this._dispatchZoomAction(true); - }; - SliderZoomView2.prototype._onDragEnd = function() { - this._dragging = false; - this._showDataInfo(false); - var realtime = this.dataZoomModel.get("realtime"); - !realtime && this._dispatchZoomAction(false); - }; - SliderZoomView2.prototype._onClickPanel = function(e) { - var size = this._size; - var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY); - if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) { - return; - } - var handleEnds = this._handleEnds; - var center = (handleEnds[0] + handleEnds[1]) / 2; - var changed = this._updateInterval("all", localPoint[0] - center); - this._updateView(); - changed && this._dispatchZoomAction(false); - }; - SliderZoomView2.prototype._onBrushStart = function(e) { - var x = e.offsetX; - var y = e.offsetY; - this._brushStart = new Point(x, y); - this._brushing = true; - this._brushStartTime = +/* @__PURE__ */ new Date(); - }; - SliderZoomView2.prototype._onBrushEnd = function(e) { - if (!this._brushing) { - return; - } - var brushRect = this._displayables.brushRect; - this._brushing = false; - if (!brushRect) { - return; - } - brushRect.attr("ignore", true); - var brushShape = brushRect.shape; - var brushEndTime = +/* @__PURE__ */ new Date(); - if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) { - return; - } - var viewExtend = this._getViewExtent(); - var percentExtent = [0, 100]; - this._range = asc$2([linearMap$2(brushShape.x, viewExtend, percentExtent, true), linearMap$2(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]); - this._handleEnds = [brushShape.x, brushShape.x + brushShape.width]; - this._updateView(); - this._dispatchZoomAction(false); - }; - SliderZoomView2.prototype._onBrush = function(e) { - if (this._brushing) { - stop(e.event); - this._updateBrushRect(e.offsetX, e.offsetY); - } - }; - SliderZoomView2.prototype._updateBrushRect = function(mouseX, mouseY) { - var displayables = this._displayables; - var dataZoomModel = this.dataZoomModel; - var brushRect = displayables.brushRect; - if (!brushRect) { - brushRect = displayables.brushRect = new Rect({ - silent: true, - style: dataZoomModel.getModel("brushStyle").getItemStyle() - }); - displayables.sliderGroup.add(brushRect); - } - brushRect.attr("ignore", false); - var brushStart = this._brushStart; - var sliderGroup = this._displayables.sliderGroup; - var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY); - var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y); - var size = this._size; - endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0); - brushRect.setShape({ - x: startPoint[0], - y: 0, - width: endPoint[0] - startPoint[0], - height: size[1] - }); - }; - SliderZoomView2.prototype._dispatchZoomAction = function(realtime) { - var range = this._range; - this.api.dispatchAction({ - type: "dataZoom", - from: this.uid, - dataZoomId: this.dataZoomModel.id, - animation: realtime ? REALTIME_ANIMATION_CONFIG : null, - start: range[0], - end: range[1] - }); - }; - SliderZoomView2.prototype._findCoordRect = function() { - var rect; - var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList; - if (!rect && coordSysInfoList.length) { - var coordSys = coordSysInfoList[0].model.coordinateSystem; - rect = coordSys.getRect && coordSys.getRect(); - } - if (!rect) { - var width = this.api.getWidth(); - var height = this.api.getHeight(); - rect = { - x: width * 0.2, - y: height * 0.2, - width: width * 0.6, - height: height * 0.6 - }; - } - return rect; - }; - SliderZoomView2.type = "dataZoom.slider"; - return SliderZoomView2; - }(DataZoomView$1) -); -function getOtherDim(thisDim) { - var map2 = { - x: "y", - y: "x", - radius: "angle", - angle: "radius" - }; - return map2[thisDim]; -} -function getCursor$1(orient) { - return orient === "vertical" ? "ns-resize" : "ew-resize"; -} -const SliderZoomView$1 = SliderZoomView; -function install$7(registers) { - registers.registerComponentModel(SliderZoomModel$1); - registers.registerComponentView(SliderZoomView$1); - installCommon$1(registers); -} -function install$6(registers) { - use(install$8); - use(install$7); -} -var visualDefault = { - /** - * @public - */ - get: function(visualType, key, isCategory) { - var value = clone$1((defaultOption[visualType] || {})[key]); - return isCategory ? isArray$1(value) ? value[value.length - 1] : value : value; - } -}; -var defaultOption = { - color: { - active: ["#006edd", "#e0ffff"], - inactive: ["rgba(0,0,0,0)"] - }, - colorHue: { - active: [0, 360], - inactive: [0, 0] - }, - colorSaturation: { - active: [0.3, 1], - inactive: [0, 0] - }, - colorLightness: { - active: [0.9, 0.5], - inactive: [0, 0] - }, - colorAlpha: { - active: [0.3, 1], - inactive: [0, 0] - }, - opacity: { - active: [0.3, 1], - inactive: [0, 0] - }, - symbol: { - active: ["circle", "roundRect", "diamond"], - inactive: ["none"] - }, - symbolSize: { - active: [10, 50], - inactive: [0, 0] - } -}; -const visualDefault$1 = visualDefault; -var mapVisual = VisualMapping.mapVisual; -var eachVisual = VisualMapping.eachVisual; -var isArray = isArray$1; -var each$2 = each$9; -var asc = asc$2; -var linearMap$1 = linearMap$2; -var VisualMapModel = ( - /** @class */ - function(_super) { - __extends(VisualMapModel2, _super); - function VisualMapModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = VisualMapModel2.type; - _this.stateList = ["inRange", "outOfRange"]; - _this.replacableOptionKeys = ["inRange", "outOfRange", "target", "controller", "color"]; - _this.layoutMode = { - type: "box", - ignoreSize: true - }; - _this.dataBound = [-Infinity, Infinity]; - _this.targetVisuals = {}; - _this.controllerVisuals = {}; - return _this; - } - VisualMapModel2.prototype.init = function(option, parentModel, ecModel) { - this.mergeDefaultAndTheme(option, ecModel); - }; - VisualMapModel2.prototype.optionUpdated = function(newOption, isInit) { - var thisOption = this.option; - !isInit && replaceVisualOption(thisOption, newOption, this.replacableOptionKeys); - this.textStyleModel = this.getModel("textStyle"); - this.resetItemSize(); - this.completeVisualOption(); - }; - VisualMapModel2.prototype.resetVisual = function(supplementVisualOption) { - var stateList = this.stateList; - supplementVisualOption = bind$1(supplementVisualOption, this); - this.controllerVisuals = createVisualMappings(this.option.controller, stateList, supplementVisualOption); - this.targetVisuals = createVisualMappings(this.option.target, stateList, supplementVisualOption); - }; - VisualMapModel2.prototype.getItemSymbol = function() { - return null; - }; - VisualMapModel2.prototype.getTargetSeriesIndices = function() { - var optionSeriesIndex = this.option.seriesIndex; - var seriesIndices = []; - if (optionSeriesIndex == null || optionSeriesIndex === "all") { - this.ecModel.eachSeries(function(seriesModel, index) { - seriesIndices.push(index); - }); - } else { - seriesIndices = normalizeToArray(optionSeriesIndex); - } - return seriesIndices; - }; - VisualMapModel2.prototype.eachTargetSeries = function(callback, context) { - each$9(this.getTargetSeriesIndices(), function(seriesIndex) { - var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex); - if (seriesModel) { - callback.call(context, seriesModel); - } - }, this); - }; - VisualMapModel2.prototype.isTargetSeries = function(seriesModel) { - var is = false; - this.eachTargetSeries(function(model) { - model === seriesModel && (is = true); - }); - return is; - }; - VisualMapModel2.prototype.formatValueText = function(value, isCategory, edgeSymbols) { - var option = this.option; - var precision = option.precision; - var dataBound = this.dataBound; - var formatter = option.formatter; - var isMinMax; - edgeSymbols = edgeSymbols || ["<", ">"]; - if (isArray$1(value)) { - value = value.slice(); - isMinMax = true; - } - var textValue = isCategory ? value : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value); - if (isString(formatter)) { - return formatter.replace("{value}", isMinMax ? textValue[0] : textValue).replace("{value2}", isMinMax ? textValue[1] : textValue); - } else if (isFunction(formatter)) { - return isMinMax ? formatter(value[0], value[1]) : formatter(value); - } - if (isMinMax) { - if (value[0] === dataBound[0]) { - return edgeSymbols[0] + " " + textValue[1]; - } else if (value[1] === dataBound[1]) { - return edgeSymbols[1] + " " + textValue[0]; - } else { - return textValue[0] + " - " + textValue[1]; - } - } else { - return textValue; - } - function toFixed(val) { - return val === dataBound[0] ? "min" : val === dataBound[1] ? "max" : (+val).toFixed(Math.min(precision, 20)); - } - }; - VisualMapModel2.prototype.resetExtent = function() { - var thisOption = this.option; - var extent = asc([thisOption.min, thisOption.max]); - this._dataExtent = extent; - }; - VisualMapModel2.prototype.getDataDimensionIndex = function(data) { - var optDim = this.option.dimension; - if (optDim != null) { - return data.getDimensionIndex(optDim); - } - var dimNames = data.dimensions; - for (var i = dimNames.length - 1; i >= 0; i--) { - var dimName = dimNames[i]; - var dimInfo = data.getDimensionInfo(dimName); - if (!dimInfo.isCalculationCoord) { - return dimInfo.storeDimIndex; - } - } - }; - VisualMapModel2.prototype.getExtent = function() { - return this._dataExtent.slice(); - }; - VisualMapModel2.prototype.completeVisualOption = function() { - var ecModel = this.ecModel; - var thisOption = this.option; - var base = { - inRange: thisOption.inRange, - outOfRange: thisOption.outOfRange - }; - var target = thisOption.target || (thisOption.target = {}); - var controller = thisOption.controller || (thisOption.controller = {}); - merge(target, base); - merge(controller, base); - var isCategory = this.isCategory(); - completeSingle.call(this, target); - completeSingle.call(this, controller); - completeInactive.call(this, target, "inRange", "outOfRange"); - completeController.call(this, controller); - function completeSingle(base2) { - if (isArray(thisOption.color) && !base2.inRange) { - base2.inRange = { - color: thisOption.color.slice().reverse() - }; - } - base2.inRange = base2.inRange || { - color: ecModel.get("gradientColor") - }; - } - function completeInactive(base2, stateExist, stateAbsent) { - var optExist = base2[stateExist]; - var optAbsent = base2[stateAbsent]; - if (optExist && !optAbsent) { - optAbsent = base2[stateAbsent] = {}; - each$2(optExist, function(visualData, visualType) { - if (!VisualMapping.isValidType(visualType)) { - return; - } - var defa = visualDefault$1.get(visualType, "inactive", isCategory); - if (defa != null) { - optAbsent[visualType] = defa; - if (visualType === "color" && !optAbsent.hasOwnProperty("opacity") && !optAbsent.hasOwnProperty("colorAlpha")) { - optAbsent.opacity = [0, 0]; - } - } - }); - } - } - function completeController(controller2) { - var symbolExists = (controller2.inRange || {}).symbol || (controller2.outOfRange || {}).symbol; - var symbolSizeExists = (controller2.inRange || {}).symbolSize || (controller2.outOfRange || {}).symbolSize; - var inactiveColor = this.get("inactiveColor"); - var itemSymbol = this.getItemSymbol(); - var defaultSymbol = itemSymbol || "roundRect"; - each$2(this.stateList, function(state) { - var itemSize = this.itemSize; - var visuals = controller2[state]; - if (!visuals) { - visuals = controller2[state] = { - color: isCategory ? inactiveColor : [inactiveColor] - }; - } - if (visuals.symbol == null) { - visuals.symbol = symbolExists && clone$1(symbolExists) || (isCategory ? defaultSymbol : [defaultSymbol]); - } - if (visuals.symbolSize == null) { - visuals.symbolSize = symbolSizeExists && clone$1(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]); - } - visuals.symbol = mapVisual(visuals.symbol, function(symbol) { - return symbol === "none" ? defaultSymbol : symbol; - }); - var symbolSize = visuals.symbolSize; - if (symbolSize != null) { - var max_1 = -Infinity; - eachVisual(symbolSize, function(value) { - value > max_1 && (max_1 = value); - }); - visuals.symbolSize = mapVisual(symbolSize, function(value) { - return linearMap$1(value, [0, max_1], [0, itemSize[0]], true); - }); - } - }, this); - } - }; - VisualMapModel2.prototype.resetItemSize = function() { - this.itemSize = [parseFloat(this.get("itemWidth")), parseFloat(this.get("itemHeight"))]; - }; - VisualMapModel2.prototype.isCategory = function() { - return !!this.option.categories; - }; - VisualMapModel2.prototype.setSelected = function(selected) { - }; - VisualMapModel2.prototype.getSelected = function() { - return null; - }; - VisualMapModel2.prototype.getValueState = function(value) { - return null; - }; - VisualMapModel2.prototype.getVisualMeta = function(getColorVisual2) { - return null; - }; - VisualMapModel2.type = "visualMap"; - VisualMapModel2.dependencies = ["series"]; - VisualMapModel2.defaultOption = { - show: true, - // zlevel: 0, - z: 4, - seriesIndex: "all", - min: 0, - max: 200, - left: 0, - right: null, - top: null, - bottom: 0, - itemWidth: null, - itemHeight: null, - inverse: false, - orient: "vertical", - backgroundColor: "rgba(0,0,0,0)", - borderColor: "#ccc", - contentColor: "#5793f3", - inactiveColor: "#aaa", - borderWidth: 0, - padding: 5, - // 接受数组分别设定上右下左边距,同css - textGap: 10, - precision: 0, - textStyle: { - color: "#333" - // 值域文字颜色 - } - }; - return VisualMapModel2; - }(ComponentModel) -); -const VisualMapModel$1 = VisualMapModel; -var DEFAULT_BAR_BOUND = [20, 140]; -var ContinuousModel = ( - /** @class */ - function(_super) { - __extends(ContinuousModel2, _super); - function ContinuousModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ContinuousModel2.type; - return _this; - } - ContinuousModel2.prototype.optionUpdated = function(newOption, isInit) { - _super.prototype.optionUpdated.apply(this, arguments); - this.resetExtent(); - this.resetVisual(function(mappingOption) { - mappingOption.mappingMethod = "linear"; - mappingOption.dataExtent = this.getExtent(); - }); - this._resetRange(); - }; - ContinuousModel2.prototype.resetItemSize = function() { - _super.prototype.resetItemSize.apply(this, arguments); - var itemSize = this.itemSize; - (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]); - (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]); - }; - ContinuousModel2.prototype._resetRange = function() { - var dataExtent = this.getExtent(); - var range = this.option.range; - if (!range || range.auto) { - dataExtent.auto = 1; - this.option.range = dataExtent; - } else if (isArray$1(range)) { - if (range[0] > range[1]) { - range.reverse(); - } - range[0] = Math.max(range[0], dataExtent[0]); - range[1] = Math.min(range[1], dataExtent[1]); - } - }; - ContinuousModel2.prototype.completeVisualOption = function() { - _super.prototype.completeVisualOption.apply(this, arguments); - each$9(this.stateList, function(state) { - var symbolSize = this.option.controller[state].symbolSize; - if (symbolSize && symbolSize[0] !== symbolSize[1]) { - symbolSize[0] = symbolSize[1] / 3; - } - }, this); - }; - ContinuousModel2.prototype.setSelected = function(selected) { - this.option.range = selected.slice(); - this._resetRange(); - }; - ContinuousModel2.prototype.getSelected = function() { - var dataExtent = this.getExtent(); - var dataInterval = asc$2((this.get("range") || []).slice()); - dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]); - dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]); - dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]); - dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]); - return dataInterval; - }; - ContinuousModel2.prototype.getValueState = function(value) { - var range = this.option.range; - var dataExtent = this.getExtent(); - return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? "inRange" : "outOfRange"; - }; - ContinuousModel2.prototype.findTargetDataIndices = function(range) { - var result = []; - this.eachTargetSeries(function(seriesModel) { - var dataIndices = []; - var data = seriesModel.getData(); - data.each(this.getDataDimensionIndex(data), function(value, dataIndex) { - range[0] <= value && value <= range[1] && dataIndices.push(dataIndex); - }, this); - result.push({ - seriesId: seriesModel.id, - dataIndex: dataIndices - }); - }, this); - return result; - }; - ContinuousModel2.prototype.getVisualMeta = function(getColorVisual2) { - var oVals = getColorStopValues(this, "outOfRange", this.getExtent()); - var iVals = getColorStopValues(this, "inRange", this.option.range.slice()); - var stops = []; - function setStop(value, valueState) { - stops.push({ - value, - color: getColorVisual2(value, valueState) - }); - } - var iIdx = 0; - var oIdx = 0; - var iLen = iVals.length; - var oLen = oVals.length; - for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) { - if (oVals[oIdx] < iVals[iIdx]) { - setStop(oVals[oIdx], "outOfRange"); - } - } - for (var first = 1; iIdx < iLen; iIdx++, first = 0) { - first && stops.length && setStop(iVals[iIdx], "outOfRange"); - setStop(iVals[iIdx], "inRange"); - } - for (var first = 1; oIdx < oLen; oIdx++) { - if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) { - if (first) { - stops.length && setStop(stops[stops.length - 1].value, "outOfRange"); - first = 0; - } - setStop(oVals[oIdx], "outOfRange"); - } - } - var stopsLen = stops.length; - return { - stops, - outerColors: [stopsLen ? stops[0].color : "transparent", stopsLen ? stops[stopsLen - 1].color : "transparent"] - }; - }; - ContinuousModel2.type = "visualMap.continuous"; - ContinuousModel2.defaultOption = inheritDefaultOption(VisualMapModel$1.defaultOption, { - align: "auto", - calculable: false, - hoverLink: true, - realtime: true, - handleIcon: "path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z", - handleSize: "120%", - handleStyle: { - borderColor: "#fff", - borderWidth: 1 - }, - indicatorIcon: "circle", - indicatorSize: "50%", - indicatorStyle: { - borderColor: "#fff", - borderWidth: 2, - shadowBlur: 2, - shadowOffsetX: 1, - shadowOffsetY: 1, - shadowColor: "rgba(0,0,0,0.2)" - } - // emphasis: { - // handleStyle: { - // shadowBlur: 3, - // shadowOffsetX: 1, - // shadowOffsetY: 1, - // shadowColor: 'rgba(0,0,0,0.2)' - // } - // } - }); - return ContinuousModel2; - }(VisualMapModel$1) -); -function getColorStopValues(visualMapModel, valueState, dataExtent) { - if (dataExtent[0] === dataExtent[1]) { - return dataExtent.slice(); - } - var count2 = 200; - var step = (dataExtent[1] - dataExtent[0]) / count2; - var value = dataExtent[0]; - var stopValues = []; - for (var i = 0; i <= count2 && value < dataExtent[1]; i++) { - stopValues.push(value); - value += step; - } - stopValues.push(dataExtent[1]); - return stopValues; -} -const ContinuousModel$1 = ContinuousModel; -var VisualMapView = ( - /** @class */ - function(_super) { - __extends(VisualMapView2, _super); - function VisualMapView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = VisualMapView2.type; - _this.autoPositionValues = { - left: 1, - right: 1, - top: 1, - bottom: 1 - }; - return _this; - } - VisualMapView2.prototype.init = function(ecModel, api) { - this.ecModel = ecModel; - this.api = api; - }; - VisualMapView2.prototype.render = function(visualMapModel, ecModel, api, payload) { - this.visualMapModel = visualMapModel; - if (visualMapModel.get("show") === false) { - this.group.removeAll(); - return; - } - this.doRender(visualMapModel, ecModel, api, payload); - }; - VisualMapView2.prototype.renderBackground = function(group) { - var visualMapModel = this.visualMapModel; - var padding = normalizeCssArray(visualMapModel.get("padding") || 0); - var rect = group.getBoundingRect(); - group.add(new Rect$1({ - z2: -1, - silent: true, - shape: { - x: rect.x - padding[3], - y: rect.y - padding[0], - width: rect.width + padding[3] + padding[1], - height: rect.height + padding[0] + padding[2] - }, - style: { - fill: visualMapModel.get("backgroundColor"), - stroke: visualMapModel.get("borderColor"), - lineWidth: visualMapModel.get("borderWidth") - } - })); - }; - VisualMapView2.prototype.getControllerVisual = function(targetValue, visualCluster, opts) { - opts = opts || {}; - var forceState = opts.forceState; - var visualMapModel = this.visualMapModel; - var visualObj = {}; - if (visualCluster === "color") { - var defaultColor = visualMapModel.get("contentColor"); - visualObj.color = defaultColor; - } - function getter(key) { - return visualObj[key]; - } - function setter(key, value) { - visualObj[key] = value; - } - var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)]; - var visualTypes = VisualMapping.prepareVisualTypes(mappings); - each$9(visualTypes, function(type) { - var visualMapping = mappings[type]; - if (opts.convertOpacityToAlpha && type === "opacity") { - type = "colorAlpha"; - visualMapping = mappings.__alphaForOpacity; - } - if (VisualMapping.dependsOn(type, visualCluster)) { - visualMapping && visualMapping.applyVisual(targetValue, getter, setter); - } - }); - return visualObj[visualCluster]; - }; - VisualMapView2.prototype.positionGroup = function(group) { - var model = this.visualMapModel; - var api = this.api; - positionElement(group, model.getBoxLayoutParams(), { - width: api.getWidth(), - height: api.getHeight() - }); - }; - VisualMapView2.prototype.doRender = function(visualMapModel, ecModel, api, payload) { - }; - VisualMapView2.type = "visualMap"; - return VisualMapView2; - }(ComponentView) -); -const VisualMapView$1 = VisualMapView; -var paramsSet = [["left", "right", "width"], ["top", "bottom", "height"]]; -function getItemAlign(visualMapModel, api, itemSize) { - var modelOption = visualMapModel.option; - var itemAlign = modelOption.align; - if (itemAlign != null && itemAlign !== "auto") { - return itemAlign; - } - var ecSize = { - width: api.getWidth(), - height: api.getHeight() - }; - var realIndex = modelOption.orient === "horizontal" ? 1 : 0; - var reals = paramsSet[realIndex]; - var fakeValue = [0, null, 10]; - var layoutInput = {}; - for (var i = 0; i < 3; i++) { - layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i]; - layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]]; - } - var rParam = [["x", "width", 3], ["y", "height", 0]][realIndex]; - var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding); - return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1]; -} -function makeHighDownBatch(batch, visualMapModel) { - each$9(batch || [], function(batchItem) { - if (batchItem.dataIndex != null) { - batchItem.dataIndexInside = batchItem.dataIndex; - batchItem.dataIndex = null; - } - batchItem.highlightKey = "visualMap" + (visualMapModel ? visualMapModel.componentIndex : ""); - }); - return batch; -} -var linearMap = linearMap$2; -var each$1 = each$9; -var mathMin = Math.min; -var mathMax = Math.max; -var HOVER_LINK_SIZE = 12; -var HOVER_LINK_OUT = 6; -var ContinuousView = ( - /** @class */ - function(_super) { - __extends(ContinuousView2, _super); - function ContinuousView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ContinuousView2.type; - _this._shapes = {}; - _this._dataInterval = []; - _this._handleEnds = []; - _this._hoverLinkDataIndices = []; - return _this; - } - ContinuousView2.prototype.doRender = function(visualMapModel, ecModel, api, payload) { - this._api = api; - if (!payload || payload.type !== "selectDataRange" || payload.from !== this.uid) { - this._buildView(); - } - }; - ContinuousView2.prototype._buildView = function() { - this.group.removeAll(); - var visualMapModel = this.visualMapModel; - var thisGroup = this.group; - this._orient = visualMapModel.get("orient"); - this._useHandle = visualMapModel.get("calculable"); - this._resetInterval(); - this._renderBar(thisGroup); - var dataRangeText = visualMapModel.get("text"); - this._renderEndsText(thisGroup, dataRangeText, 0); - this._renderEndsText(thisGroup, dataRangeText, 1); - this._updateView(true); - this.renderBackground(thisGroup); - this._updateView(); - this._enableHoverLinkToSeries(); - this._enableHoverLinkFromSeries(); - this.positionGroup(thisGroup); - }; - ContinuousView2.prototype._renderEndsText = function(group, dataRangeText, endsIndex) { - if (!dataRangeText) { - return; - } - var text = dataRangeText[1 - endsIndex]; - text = text != null ? text + "" : ""; - var visualMapModel = this.visualMapModel; - var textGap = visualMapModel.get("textGap"); - var itemSize = visualMapModel.itemSize; - var barGroup = this._shapes.mainGroup; - var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup); - var align = this._applyTransform(endsIndex === 0 ? "bottom" : "top", barGroup); - var orient = this._orient; - var textStyleModel = this.visualMapModel.textStyleModel; - this.group.add(new ZRText({ - style: createTextStyle(textStyleModel, { - x: position[0], - y: position[1], - verticalAlign: orient === "horizontal" ? "middle" : align, - align: orient === "horizontal" ? align : "center", - text - }) - })); - }; - ContinuousView2.prototype._renderBar = function(targetGroup) { - var visualMapModel = this.visualMapModel; - var shapes = this._shapes; - var itemSize = visualMapModel.itemSize; - var orient = this._orient; - var useHandle = this._useHandle; - var itemAlign = getItemAlign(visualMapModel, this.api, itemSize); - var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign); - var gradientBarGroup = new Group$2(); - mainGroup.add(gradientBarGroup); - gradientBarGroup.add(shapes.outOfRange = createPolygon()); - gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, bind$1(this._dragHandle, this, "all", false), bind$1(this._dragHandle, this, "all", true))); - gradientBarGroup.setClipPath(new Rect$1({ - shape: { - x: 0, - y: 0, - width: itemSize[0], - height: itemSize[1], - r: 3 - } - })); - var textRect = visualMapModel.textStyleModel.getTextRect("国"); - var textSize = mathMax(textRect.width, textRect.height); - if (useHandle) { - shapes.handleThumbs = []; - shapes.handleLabels = []; - shapes.handleLabelPoints = []; - this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient); - this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient); - } - this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient); - targetGroup.add(mainGroup); - }; - ContinuousView2.prototype._createHandle = function(visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) { - var onDrift = bind$1(this._dragHandle, this, handleIndex, false); - var onDragEnd = bind$1(this._dragHandle, this, handleIndex, true); - var handleSize = parsePercent$1(visualMapModel.get("handleSize"), itemSize[0]); - var handleThumb = createSymbol(visualMapModel.get("handleIcon"), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true); - var cursor = getCursor(this._orient); - handleThumb.attr({ - cursor, - draggable: true, - drift: onDrift, - ondragend: onDragEnd, - onmousemove: function(e) { - stop(e.event); - } - }); - handleThumb.x = itemSize[0] / 2; - handleThumb.useStyle(visualMapModel.getModel("handleStyle").getItemStyle()); - handleThumb.setStyle({ - strokeNoScale: true, - strokeFirst: true - }); - handleThumb.style.lineWidth *= 2; - handleThumb.ensureState("emphasis").style = visualMapModel.getModel(["emphasis", "handleStyle"]).getItemStyle(); - setAsHighDownDispatcher(handleThumb, true); - mainGroup.add(handleThumb); - var textStyleModel = this.visualMapModel.textStyleModel; - var handleLabel = new ZRText({ - cursor, - draggable: true, - drift: onDrift, - onmousemove: function(e) { - stop(e.event); - }, - ondragend: onDragEnd, - style: createTextStyle(textStyleModel, { - x: 0, - y: 0, - text: "" - }) - }); - handleLabel.ensureState("blur").style = { - opacity: 0.1 - }; - handleLabel.stateTransition = { - duration: 200 - }; - this.group.add(handleLabel); - var handleLabelPoint = [handleSize, 0]; - var shapes = this._shapes; - shapes.handleThumbs[handleIndex] = handleThumb; - shapes.handleLabelPoints[handleIndex] = handleLabelPoint; - shapes.handleLabels[handleIndex] = handleLabel; - }; - ContinuousView2.prototype._createIndicator = function(visualMapModel, mainGroup, itemSize, textSize, orient) { - var scale = parsePercent$1(visualMapModel.get("indicatorSize"), itemSize[0]); - var indicator = createSymbol(visualMapModel.get("indicatorIcon"), -scale / 2, -scale / 2, scale, scale, null, true); - indicator.attr({ - cursor: "move", - invisible: true, - silent: true, - x: itemSize[0] / 2 - }); - var indicatorStyle = visualMapModel.getModel("indicatorStyle").getItemStyle(); - if (indicator instanceof ZRImage) { - var pathStyle = indicator.style; - indicator.useStyle(extend({ - // TODO other properties like x, y ? - image: pathStyle.image, - x: pathStyle.x, - y: pathStyle.y, - width: pathStyle.width, - height: pathStyle.height - }, indicatorStyle)); - } else { - indicator.useStyle(indicatorStyle); - } - mainGroup.add(indicator); - var textStyleModel = this.visualMapModel.textStyleModel; - var indicatorLabel = new ZRText({ - silent: true, - invisible: true, - style: createTextStyle(textStyleModel, { - x: 0, - y: 0, - text: "" - }) - }); - this.group.add(indicatorLabel); - var indicatorLabelPoint = [(orient === "horizontal" ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2, 0]; - var shapes = this._shapes; - shapes.indicator = indicator; - shapes.indicatorLabel = indicatorLabel; - shapes.indicatorLabelPoint = indicatorLabelPoint; - this._firstShowIndicator = true; - }; - ContinuousView2.prototype._dragHandle = function(handleIndex, isEnd, dx, dy) { - if (!this._useHandle) { - return; - } - this._dragging = !isEnd; - if (!isEnd) { - var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true); - this._updateInterval(handleIndex, vertex[1]); - this._hideIndicator(); - this._updateView(); - } - if (isEnd === !this.visualMapModel.get("realtime")) { - this.api.dispatchAction({ - type: "selectDataRange", - from: this.uid, - visualMapId: this.visualMapModel.id, - selected: this._dataInterval.slice() - }); - } - if (isEnd) { - !this._hovering && this._clearHoverLinkToSeries(); - } else if (useHoverLinkOnHandle(this.visualMapModel)) { - this._doHoverLinkToSeries(this._handleEnds[handleIndex], false); - } - }; - ContinuousView2.prototype._resetInterval = function() { - var visualMapModel = this.visualMapModel; - var dataInterval = this._dataInterval = visualMapModel.getSelected(); - var dataExtent = visualMapModel.getExtent(); - var sizeExtent = [0, visualMapModel.itemSize[1]]; - this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)]; - }; - ContinuousView2.prototype._updateInterval = function(handleIndex, delta) { - delta = delta || 0; - var visualMapModel = this.visualMapModel; - var handleEnds = this._handleEnds; - var sizeExtent = [0, visualMapModel.itemSize[1]]; - sliderMove( - delta, - handleEnds, - sizeExtent, - handleIndex, - // cross is forbidden - 0 - ); - var dataExtent = visualMapModel.getExtent(); - this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)]; - }; - ContinuousView2.prototype._updateView = function(forSketch) { - var visualMapModel = this.visualMapModel; - var dataExtent = visualMapModel.getExtent(); - var shapes = this._shapes; - var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]]; - var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds; - var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, "inRange"); - var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, "outOfRange"); - shapes.inRange.setStyle({ - fill: visualInRange.barColor - // opacity: visualInRange.opacity - }).setShape("points", visualInRange.barPoints); - shapes.outOfRange.setStyle({ - fill: visualOutOfRange.barColor - // opacity: visualOutOfRange.opacity - }).setShape("points", visualOutOfRange.barPoints); - this._updateHandle(inRangeHandleEnds, visualInRange); - }; - ContinuousView2.prototype._createBarVisual = function(dataInterval, dataExtent, handleEnds, forceState) { - var opts = { - forceState, - convertOpacityToAlpha: true - }; - var colorStops = this._makeColorGradient(dataInterval, opts); - var symbolSizes = [this.getControllerVisual(dataInterval[0], "symbolSize", opts), this.getControllerVisual(dataInterval[1], "symbolSize", opts)]; - var barPoints = this._createBarPoints(handleEnds, symbolSizes); - return { - barColor: new LinearGradient(0, 0, 0, 1, colorStops), - barPoints, - handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color] - }; - }; - ContinuousView2.prototype._makeColorGradient = function(dataInterval, opts) { - var sampleNumber = 100; - var colorStops = []; - var step = (dataInterval[1] - dataInterval[0]) / sampleNumber; - colorStops.push({ - color: this.getControllerVisual(dataInterval[0], "color", opts), - offset: 0 - }); - for (var i = 1; i < sampleNumber; i++) { - var currValue = dataInterval[0] + step * i; - if (currValue > dataInterval[1]) { - break; - } - colorStops.push({ - color: this.getControllerVisual(currValue, "color", opts), - offset: i / sampleNumber - }); - } - colorStops.push({ - color: this.getControllerVisual(dataInterval[1], "color", opts), - offset: 1 - }); - return colorStops; - }; - ContinuousView2.prototype._createBarPoints = function(handleEnds, symbolSizes) { - var itemSize = this.visualMapModel.itemSize; - return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]]; - }; - ContinuousView2.prototype._createBarGroup = function(itemAlign) { - var orient = this._orient; - var inverse = this.visualMapModel.get("inverse"); - return new Group$2(orient === "horizontal" && !inverse ? { - scaleX: itemAlign === "bottom" ? 1 : -1, - rotation: Math.PI / 2 - } : orient === "horizontal" && inverse ? { - scaleX: itemAlign === "bottom" ? -1 : 1, - rotation: -Math.PI / 2 - } : orient === "vertical" && !inverse ? { - scaleX: itemAlign === "left" ? 1 : -1, - scaleY: -1 - } : { - scaleX: itemAlign === "left" ? 1 : -1 - }); - }; - ContinuousView2.prototype._updateHandle = function(handleEnds, visualInRange) { - if (!this._useHandle) { - return; - } - var shapes = this._shapes; - var visualMapModel = this.visualMapModel; - var handleThumbs = shapes.handleThumbs; - var handleLabels = shapes.handleLabels; - var itemSize = visualMapModel.itemSize; - var dataExtent = visualMapModel.getExtent(); - each$1([0, 1], function(handleIndex) { - var handleThumb = handleThumbs[handleIndex]; - handleThumb.setStyle("fill", visualInRange.handlesColor[handleIndex]); - handleThumb.y = handleEnds[handleIndex]; - var val = linearMap(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true); - var symbolSize = this.getControllerVisual(val, "symbolSize"); - handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0]; - handleThumb.x = itemSize[0] - symbolSize / 2; - var textPoint = applyTransform(shapes.handleLabelPoints[handleIndex], getTransform(handleThumb, this.group)); - handleLabels[handleIndex].setStyle({ - x: textPoint[0], - y: textPoint[1], - text: visualMapModel.formatValueText(this._dataInterval[handleIndex]), - verticalAlign: "middle", - align: this._orient === "vertical" ? this._applyTransform("left", shapes.mainGroup) : "center" - }); - }, this); - }; - ContinuousView2.prototype._showIndicator = function(cursorValue, textValue, rangeSymbol, halfHoverLinkSize) { - var visualMapModel = this.visualMapModel; - var dataExtent = visualMapModel.getExtent(); - var itemSize = visualMapModel.itemSize; - var sizeExtent = [0, itemSize[1]]; - var shapes = this._shapes; - var indicator = shapes.indicator; - if (!indicator) { - return; - } - indicator.attr("invisible", false); - var opts = { - convertOpacityToAlpha: true - }; - var color = this.getControllerVisual(cursorValue, "color", opts); - var symbolSize = this.getControllerVisual(cursorValue, "symbolSize"); - var y = linearMap(cursorValue, dataExtent, sizeExtent, true); - var x = itemSize[0] - symbolSize / 2; - var oldIndicatorPos = { - x: indicator.x, - y: indicator.y - }; - indicator.y = y; - indicator.x = x; - var textPoint = applyTransform(shapes.indicatorLabelPoint, getTransform(indicator, this.group)); - var indicatorLabel = shapes.indicatorLabel; - indicatorLabel.attr("invisible", false); - var align = this._applyTransform("left", shapes.mainGroup); - var orient = this._orient; - var isHorizontal = orient === "horizontal"; - indicatorLabel.setStyle({ - text: (rangeSymbol ? rangeSymbol : "") + visualMapModel.formatValueText(textValue), - verticalAlign: isHorizontal ? align : "middle", - align: isHorizontal ? "center" : align - }); - var indicatorNewProps = { - x, - y, - style: { - fill: color - } - }; - var labelNewProps = { - style: { - x: textPoint[0], - y: textPoint[1] - } - }; - if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) { - var animationCfg = { - duration: 100, - easing: "cubicInOut", - additive: true - }; - indicator.x = oldIndicatorPos.x; - indicator.y = oldIndicatorPos.y; - indicator.animateTo(indicatorNewProps, animationCfg); - indicatorLabel.animateTo(labelNewProps, animationCfg); - } else { - indicator.attr(indicatorNewProps); - indicatorLabel.attr(labelNewProps); - } - this._firstShowIndicator = false; - var handleLabels = this._shapes.handleLabels; - if (handleLabels) { - for (var i = 0; i < handleLabels.length; i++) { - this._api.enterBlur(handleLabels[i]); - } - } - }; - ContinuousView2.prototype._enableHoverLinkToSeries = function() { - var self = this; - this._shapes.mainGroup.on("mousemove", function(e) { - self._hovering = true; - if (!self._dragging) { - var itemSize = self.visualMapModel.itemSize; - var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true); - pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]); - self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]); - } - }).on("mouseout", function() { - self._hovering = false; - !self._dragging && self._clearHoverLinkToSeries(); - }); - }; - ContinuousView2.prototype._enableHoverLinkFromSeries = function() { - var zr = this.api.getZr(); - if (this.visualMapModel.option.hoverLink) { - zr.on("mouseover", this._hoverLinkFromSeriesMouseOver, this); - zr.on("mouseout", this._hideIndicator, this); - } else { - this._clearHoverLinkFromSeries(); - } - }; - ContinuousView2.prototype._doHoverLinkToSeries = function(cursorPos, hoverOnBar) { - var visualMapModel = this.visualMapModel; - var itemSize = visualMapModel.itemSize; - if (!visualMapModel.option.hoverLink) { - return; - } - var sizeExtent = [0, itemSize[1]]; - var dataExtent = visualMapModel.getExtent(); - cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]); - var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent); - var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize]; - var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true); - var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)]; - hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity); - hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity); - if (hoverOnBar) { - if (valueRange[0] === -Infinity) { - this._showIndicator(cursorValue, valueRange[1], "< ", halfHoverLinkSize); - } else if (valueRange[1] === Infinity) { - this._showIndicator(cursorValue, valueRange[0], "> ", halfHoverLinkSize); - } else { - this._showIndicator(cursorValue, cursorValue, "≈ ", halfHoverLinkSize); - } - } - var oldBatch = this._hoverLinkDataIndices; - var newBatch = []; - if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) { - newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange); - } - var resultBatches = compressBatches(oldBatch, newBatch); - this._dispatchHighDown("downplay", makeHighDownBatch(resultBatches[0], visualMapModel)); - this._dispatchHighDown("highlight", makeHighDownBatch(resultBatches[1], visualMapModel)); - }; - ContinuousView2.prototype._hoverLinkFromSeriesMouseOver = function(e) { - var ecData; - findEventDispatcher(e.target, function(target) { - var currECData = getECData(target); - if (currECData.dataIndex != null) { - ecData = currECData; - return true; - } - }, true); - if (!ecData) { - return; - } - var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex); - var visualMapModel = this.visualMapModel; - if (!visualMapModel.isTargetSeries(dataModel)) { - return; - } - var data = dataModel.getData(ecData.dataType); - var value = data.getStore().get(visualMapModel.getDataDimensionIndex(data), ecData.dataIndex); - if (!isNaN(value)) { - this._showIndicator(value, value); - } - }; - ContinuousView2.prototype._hideIndicator = function() { - var shapes = this._shapes; - shapes.indicator && shapes.indicator.attr("invisible", true); - shapes.indicatorLabel && shapes.indicatorLabel.attr("invisible", true); - var handleLabels = this._shapes.handleLabels; - if (handleLabels) { - for (var i = 0; i < handleLabels.length; i++) { - this._api.leaveBlur(handleLabels[i]); - } - } - }; - ContinuousView2.prototype._clearHoverLinkToSeries = function() { - this._hideIndicator(); - var indices = this._hoverLinkDataIndices; - this._dispatchHighDown("downplay", makeHighDownBatch(indices, this.visualMapModel)); - indices.length = 0; - }; - ContinuousView2.prototype._clearHoverLinkFromSeries = function() { - this._hideIndicator(); - var zr = this.api.getZr(); - zr.off("mouseover", this._hoverLinkFromSeriesMouseOver); - zr.off("mouseout", this._hideIndicator); - }; - ContinuousView2.prototype._applyTransform = function(vertex, element, inverse, global) { - var transform = getTransform(element, global ? null : this.group); - return isArray$1(vertex) ? applyTransform(vertex, transform, inverse) : transformDirection(vertex, transform, inverse); - }; - ContinuousView2.prototype._dispatchHighDown = function(type, batch) { - batch && batch.length && this.api.dispatchAction({ - type, - batch - }); - }; - ContinuousView2.prototype.dispose = function() { - this._clearHoverLinkFromSeries(); - this._clearHoverLinkToSeries(); - }; - ContinuousView2.prototype.remove = function() { - this._clearHoverLinkFromSeries(); - this._clearHoverLinkToSeries(); - }; - ContinuousView2.type = "visualMap.continuous"; - return ContinuousView2; - }(VisualMapView$1) -); -function createPolygon(points, cursor, onDrift, onDragEnd) { - return new Polygon({ - shape: { - points - }, - draggable: !!onDrift, - cursor, - drift: onDrift, - onmousemove: function(e) { - stop(e.event); - }, - ondragend: onDragEnd - }); -} -function getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) { - var halfHoverLinkSize = HOVER_LINK_SIZE / 2; - var hoverLinkDataSize = visualMapModel.get("hoverLinkDataSize"); - if (hoverLinkDataSize) { - halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2; - } - return halfHoverLinkSize; -} -function useHoverLinkOnHandle(visualMapModel) { - var hoverLinkOnHandle = visualMapModel.get("hoverLinkOnHandle"); - return !!(hoverLinkOnHandle == null ? visualMapModel.get("realtime") : hoverLinkOnHandle); -} -function getCursor(orient) { - return orient === "vertical" ? "ns-resize" : "ew-resize"; -} -const ContinuousView$1 = ContinuousView; -var visualMapActionInfo = { - type: "selectDataRange", - event: "dataRangeSelected", - // FIXME use updateView appears wrong - update: "update" -}; -var visualMapActionHander = function(payload, ecModel) { - ecModel.eachComponent({ - mainType: "visualMap", - query: payload - }, function(model) { - model.setSelected(payload.selected); - }); -}; -var visualMapEncodingHandlers = [ - { - createOnAllSeries: true, - reset: function(seriesModel, ecModel) { - var resetDefines = []; - ecModel.eachComponent("visualMap", function(visualMapModel) { - var pipelineContext = seriesModel.pipelineContext; - if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) { - return; - } - resetDefines.push(incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, bind$1(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimensionIndex(seriesModel.getData()))); - }); - return resetDefines; - } - }, - // Only support color. - { - createOnAllSeries: true, - reset: function(seriesModel, ecModel) { - var data = seriesModel.getData(); - var visualMetaList = []; - ecModel.eachComponent("visualMap", function(visualMapModel) { - if (visualMapModel.isTargetSeries(seriesModel)) { - var visualMeta = visualMapModel.getVisualMeta(bind$1(getColorVisual, null, seriesModel, visualMapModel)) || { - stops: [], - outerColors: [] - }; - var dimIdx = visualMapModel.getDataDimensionIndex(data); - if (dimIdx >= 0) { - visualMeta.dimension = dimIdx; - visualMetaList.push(visualMeta); - } - } - }); - seriesModel.getData().setVisual("visualMeta", visualMetaList); - } - } -]; -function getColorVisual(seriesModel, visualMapModel, value, valueState) { - var mappings = visualMapModel.targetVisuals[valueState]; - var visualTypes = VisualMapping.prepareVisualTypes(mappings); - var resultVisual = { - color: getVisualFromData(seriesModel.getData(), "color") - // default color. - }; - for (var i = 0, len = visualTypes.length; i < len; i++) { - var type = visualTypes[i]; - var mapping = mappings[type === "opacity" ? "__alphaForOpacity" : type]; - mapping && mapping.applyVisual(value, getVisual, setVisual); - } - return resultVisual.color; - function getVisual(key) { - return resultVisual[key]; - } - function setVisual(key, value2) { - resultVisual[key] = value2; - } -} -var each = each$9; -function visualMapPreprocessor(option) { - var visualMap = option && option.visualMap; - if (!isArray$1(visualMap)) { - visualMap = visualMap ? [visualMap] : []; - } - each(visualMap, function(opt) { - if (!opt) { - return; - } - if (has(opt, "splitList") && !has(opt, "pieces")) { - opt.pieces = opt.splitList; - delete opt.splitList; - } - var pieces = opt.pieces; - if (pieces && isArray$1(pieces)) { - each(pieces, function(piece) { - if (isObject(piece)) { - if (has(piece, "start") && !has(piece, "min")) { - piece.min = piece.start; - } - if (has(piece, "end") && !has(piece, "max")) { - piece.max = piece.end; - } - } - }); - } - }); -} -function has(obj, name) { - return obj && obj.hasOwnProperty && obj.hasOwnProperty(name); -} -var installed = false; -function installCommon(registers) { - if (installed) { - return; - } - installed = true; - registers.registerSubTypeDefaulter("visualMap", function(option) { - return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? "continuous" : "piecewise"; - }); - registers.registerAction(visualMapActionInfo, visualMapActionHander); - each$9(visualMapEncodingHandlers, function(handler) { - registers.registerVisual(registers.PRIORITY.VISUAL.COMPONENT, handler); - }); - registers.registerPreprocessor(visualMapPreprocessor); -} -function install$5(registers) { - registers.registerComponentModel(ContinuousModel$1); - registers.registerComponentView(ContinuousView$1); - installCommon(registers); -} -var PiecewiseModel = ( - /** @class */ - function(_super) { - __extends(PiecewiseModel2, _super); - function PiecewiseModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = PiecewiseModel2.type; - _this._pieceList = []; - return _this; - } - PiecewiseModel2.prototype.optionUpdated = function(newOption, isInit) { - _super.prototype.optionUpdated.apply(this, arguments); - this.resetExtent(); - var mode = this._mode = this._determineMode(); - this._pieceList = []; - resetMethods[this._mode].call(this, this._pieceList); - this._resetSelected(newOption, isInit); - var categories = this.option.categories; - this.resetVisual(function(mappingOption, state) { - if (mode === "categories") { - mappingOption.mappingMethod = "category"; - mappingOption.categories = clone$1(categories); - } else { - mappingOption.dataExtent = this.getExtent(); - mappingOption.mappingMethod = "piecewise"; - mappingOption.pieceList = map(this._pieceList, function(piece) { - piece = clone$1(piece); - if (state !== "inRange") { - piece.visual = null; - } - return piece; - }); - } - }); - }; - PiecewiseModel2.prototype.completeVisualOption = function() { - var option = this.option; - var visualTypesInPieces = {}; - var visualTypes = VisualMapping.listVisualTypes(); - var isCategory = this.isCategory(); - each$9(option.pieces, function(piece) { - each$9(visualTypes, function(visualType) { - if (piece.hasOwnProperty(visualType)) { - visualTypesInPieces[visualType] = 1; - } - }); - }); - each$9(visualTypesInPieces, function(v, visualType) { - var exists = false; - each$9(this.stateList, function(state) { - exists = exists || has2(option, state, visualType) || has2(option.target, state, visualType); - }, this); - !exists && each$9(this.stateList, function(state) { - (option[state] || (option[state] = {}))[visualType] = visualDefault$1.get(visualType, state === "inRange" ? "active" : "inactive", isCategory); - }); - }, this); - function has2(obj, state, visualType) { - return obj && obj[state] && obj[state].hasOwnProperty(visualType); - } - _super.prototype.completeVisualOption.apply(this, arguments); - }; - PiecewiseModel2.prototype._resetSelected = function(newOption, isInit) { - var thisOption = this.option; - var pieceList = this._pieceList; - var selected = (isInit ? thisOption : newOption).selected || {}; - thisOption.selected = selected; - each$9(pieceList, function(piece, index) { - var key = this.getSelectedMapKey(piece); - if (!selected.hasOwnProperty(key)) { - selected[key] = true; - } - }, this); - if (thisOption.selectedMode === "single") { - var hasSel_1 = false; - each$9(pieceList, function(piece, index) { - var key = this.getSelectedMapKey(piece); - if (selected[key]) { - hasSel_1 ? selected[key] = false : hasSel_1 = true; - } - }, this); - } - }; - PiecewiseModel2.prototype.getItemSymbol = function() { - return this.get("itemSymbol"); - }; - PiecewiseModel2.prototype.getSelectedMapKey = function(piece) { - return this._mode === "categories" ? piece.value + "" : piece.index + ""; - }; - PiecewiseModel2.prototype.getPieceList = function() { - return this._pieceList; - }; - PiecewiseModel2.prototype._determineMode = function() { - var option = this.option; - return option.pieces && option.pieces.length > 0 ? "pieces" : this.option.categories ? "categories" : "splitNumber"; - }; - PiecewiseModel2.prototype.setSelected = function(selected) { - this.option.selected = clone$1(selected); - }; - PiecewiseModel2.prototype.getValueState = function(value) { - var index = VisualMapping.findPieceIndex(value, this._pieceList); - return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? "inRange" : "outOfRange" : "outOfRange"; - }; - PiecewiseModel2.prototype.findTargetDataIndices = function(pieceIndex) { - var result = []; - var pieceList = this._pieceList; - this.eachTargetSeries(function(seriesModel) { - var dataIndices = []; - var data = seriesModel.getData(); - data.each(this.getDataDimensionIndex(data), function(value, dataIndex) { - var pIdx = VisualMapping.findPieceIndex(value, pieceList); - pIdx === pieceIndex && dataIndices.push(dataIndex); - }, this); - result.push({ - seriesId: seriesModel.id, - dataIndex: dataIndices - }); - }, this); - return result; - }; - PiecewiseModel2.prototype.getRepresentValue = function(piece) { - var representValue; - if (this.isCategory()) { - representValue = piece.value; - } else { - if (piece.value != null) { - representValue = piece.value; - } else { - var pieceInterval = piece.interval || []; - representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2; - } - } - return representValue; - }; - PiecewiseModel2.prototype.getVisualMeta = function(getColorVisual2) { - if (this.isCategory()) { - return; - } - var stops = []; - var outerColors = ["", ""]; - var visualMapModel = this; - function setStop(interval, valueState) { - var representValue = visualMapModel.getRepresentValue({ - interval - }); - if (!valueState) { - valueState = visualMapModel.getValueState(representValue); - } - var color = getColorVisual2(representValue, valueState); - if (interval[0] === -Infinity) { - outerColors[0] = color; - } else if (interval[1] === Infinity) { - outerColors[1] = color; - } else { - stops.push({ - value: interval[0], - color - }, { - value: interval[1], - color - }); - } - } - var pieceList = this._pieceList.slice(); - if (!pieceList.length) { - pieceList.push({ - interval: [-Infinity, Infinity] - }); - } else { - var edge = pieceList[0].interval[0]; - edge !== -Infinity && pieceList.unshift({ - interval: [-Infinity, edge] - }); - edge = pieceList[pieceList.length - 1].interval[1]; - edge !== Infinity && pieceList.push({ - interval: [edge, Infinity] - }); - } - var curr = -Infinity; - each$9(pieceList, function(piece) { - var interval = piece.interval; - if (interval) { - interval[0] > curr && setStop([curr, interval[0]], "outOfRange"); - setStop(interval.slice()); - curr = interval[1]; - } - }, this); - return { - stops, - outerColors - }; - }; - PiecewiseModel2.type = "visualMap.piecewise"; - PiecewiseModel2.defaultOption = inheritDefaultOption(VisualMapModel$1.defaultOption, { - selected: null, - minOpen: false, - maxOpen: false, - align: "auto", - itemWidth: 20, - itemHeight: 14, - itemSymbol: "roundRect", - pieces: null, - categories: null, - splitNumber: 5, - selectedMode: "multiple", - itemGap: 10, - hoverLink: true - // Enable hover highlight. - }); - return PiecewiseModel2; - }(VisualMapModel$1) -); -var resetMethods = { - splitNumber: function(outPieceList) { - var thisOption = this.option; - var precision = Math.min(thisOption.precision, 20); - var dataExtent = this.getExtent(); - var splitNumber = thisOption.splitNumber; - splitNumber = Math.max(parseInt(splitNumber, 10), 1); - thisOption.splitNumber = splitNumber; - var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; - while (+splitStep.toFixed(precision) !== splitStep && precision < 5) { - precision++; - } - thisOption.precision = precision; - splitStep = +splitStep.toFixed(precision); - if (thisOption.minOpen) { - outPieceList.push({ - interval: [-Infinity, dataExtent[0]], - close: [0, 0] - }); - } - for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) { - var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep; - outPieceList.push({ - interval: [curr, max], - close: [1, 1] - }); - } - if (thisOption.maxOpen) { - outPieceList.push({ - interval: [dataExtent[1], Infinity], - close: [0, 0] - }); - } - reformIntervals(outPieceList); - each$9(outPieceList, function(piece, index2) { - piece.index = index2; - piece.text = this.formatValueText(piece.interval); - }, this); - }, - categories: function(outPieceList) { - var thisOption = this.option; - each$9(thisOption.categories, function(cate) { - outPieceList.push({ - text: this.formatValueText(cate, true), - value: cate - }); - }, this); - normalizeReverse(thisOption, outPieceList); - }, - pieces: function(outPieceList) { - var thisOption = this.option; - each$9(thisOption.pieces, function(pieceListItem, index) { - if (!isObject(pieceListItem)) { - pieceListItem = { - value: pieceListItem - }; - } - var item = { - text: "", - index - }; - if (pieceListItem.label != null) { - item.text = pieceListItem.label; - } - if (pieceListItem.hasOwnProperty("value")) { - var value = item.value = pieceListItem.value; - item.interval = [value, value]; - item.close = [1, 1]; - } else { - var interval = item.interval = []; - var close_1 = item.close = [0, 0]; - var closeList = [1, 0, 1]; - var infinityList = [-Infinity, Infinity]; - var useMinMax = []; - for (var lg = 0; lg < 2; lg++) { - var names = [["gte", "gt", "min"], ["lte", "lt", "max"]][lg]; - for (var i = 0; i < 3 && interval[lg] == null; i++) { - interval[lg] = pieceListItem[names[i]]; - close_1[lg] = closeList[i]; - useMinMax[lg] = i === 2; - } - interval[lg] == null && (interval[lg] = infinityList[lg]); - } - useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0); - useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0); - if (interval[0] === interval[1] && close_1[0] && close_1[1]) { - item.value = interval[0]; - } - } - item.visual = VisualMapping.retrieveVisuals(pieceListItem); - outPieceList.push(item); - }, this); - normalizeReverse(thisOption, outPieceList); - reformIntervals(outPieceList); - each$9(outPieceList, function(piece) { - var close = piece.close; - var edgeSymbols = [["<", "≤"][close[1]], [">", "≥"][close[0]]]; - piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols); - }, this); - } -}; -function normalizeReverse(thisOption, pieceList) { - var inverse = thisOption.inverse; - if (thisOption.orient === "vertical" ? !inverse : inverse) { - pieceList.reverse(); - } -} -const PiecewiseModel$1 = PiecewiseModel; -var PiecewiseVisualMapView = ( - /** @class */ - function(_super) { - __extends(PiecewiseVisualMapView2, _super); - function PiecewiseVisualMapView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = PiecewiseVisualMapView2.type; - return _this; - } - PiecewiseVisualMapView2.prototype.doRender = function() { - var thisGroup = this.group; - thisGroup.removeAll(); - var visualMapModel = this.visualMapModel; - var textGap = visualMapModel.get("textGap"); - var textStyleModel = visualMapModel.textStyleModel; - var textFont = textStyleModel.getFont(); - var textFill = textStyleModel.getTextColor(); - var itemAlign = this._getItemAlign(); - var itemSize = visualMapModel.itemSize; - var viewData = this._getViewData(); - var endsText = viewData.endsText; - var showLabel = retrieve(visualMapModel.get("showLabel", true), !endsText); - endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign); - each$9(viewData.viewPieceList, function(item) { - var piece = item.piece; - var itemGroup = new Group$2(); - itemGroup.onclick = bind$1(this._onItemClick, this, piece); - this._enableHoverLink(itemGroup, item.indexInModelPieceList); - var representValue = visualMapModel.getRepresentValue(piece); - this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]); - if (showLabel) { - var visualState = this.visualMapModel.getValueState(representValue); - itemGroup.add(new ZRText({ - style: { - x: itemAlign === "right" ? -textGap : itemSize[0] + textGap, - y: itemSize[1] / 2, - text: piece.text, - verticalAlign: "middle", - align: itemAlign, - font: textFont, - fill: textFill, - opacity: visualState === "outOfRange" ? 0.5 : 1 - } - })); - } - thisGroup.add(itemGroup); - }, this); - endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign); - box(visualMapModel.get("orient"), thisGroup, visualMapModel.get("itemGap")); - this.renderBackground(thisGroup); - this.positionGroup(thisGroup); - }; - PiecewiseVisualMapView2.prototype._enableHoverLink = function(itemGroup, pieceIndex) { - var _this = this; - itemGroup.on("mouseover", function() { - return onHoverLink("highlight"); - }).on("mouseout", function() { - return onHoverLink("downplay"); - }); - var onHoverLink = function(method) { - var visualMapModel = _this.visualMapModel; - visualMapModel.option.hoverLink && _this.api.dispatchAction({ - type: method, - batch: makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel) - }); - }; - }; - PiecewiseVisualMapView2.prototype._getItemAlign = function() { - var visualMapModel = this.visualMapModel; - var modelOption = visualMapModel.option; - if (modelOption.orient === "vertical") { - return getItemAlign(visualMapModel, this.api, visualMapModel.itemSize); - } else { - var align = modelOption.align; - if (!align || align === "auto") { - align = "left"; - } - return align; - } - }; - PiecewiseVisualMapView2.prototype._renderEndsText = function(group, text, itemSize, showLabel, itemAlign) { - if (!text) { - return; - } - var itemGroup = new Group$2(); - var textStyleModel = this.visualMapModel.textStyleModel; - itemGroup.add(new ZRText({ - style: createTextStyle(textStyleModel, { - x: showLabel ? itemAlign === "right" ? itemSize[0] : 0 : itemSize[0] / 2, - y: itemSize[1] / 2, - verticalAlign: "middle", - align: showLabel ? itemAlign : "center", - text - }) - })); - group.add(itemGroup); - }; - PiecewiseVisualMapView2.prototype._getViewData = function() { - var visualMapModel = this.visualMapModel; - var viewPieceList = map(visualMapModel.getPieceList(), function(piece, index) { - return { - piece, - indexInModelPieceList: index - }; - }); - var endsText = visualMapModel.get("text"); - var orient = visualMapModel.get("orient"); - var inverse = visualMapModel.get("inverse"); - if (orient === "horizontal" ? inverse : !inverse) { - viewPieceList.reverse(); - } else if (endsText) { - endsText = endsText.slice().reverse(); - } - return { - viewPieceList, - endsText - }; - }; - PiecewiseVisualMapView2.prototype._createItemSymbol = function(group, representValue, shapeParam) { - group.add(createSymbol( - // symbol will be string - this.getControllerVisual(representValue, "symbol"), - shapeParam[0], - shapeParam[1], - shapeParam[2], - shapeParam[3], - // color will be string - this.getControllerVisual(representValue, "color") - )); - }; - PiecewiseVisualMapView2.prototype._onItemClick = function(piece) { - var visualMapModel = this.visualMapModel; - var option = visualMapModel.option; - var selectedMode = option.selectedMode; - if (!selectedMode) { - return; - } - var selected = clone$1(option.selected); - var newKey = visualMapModel.getSelectedMapKey(piece); - if (selectedMode === "single" || selectedMode === true) { - selected[newKey] = true; - each$9(selected, function(o, key) { - selected[key] = key === newKey; - }); - } else { - selected[newKey] = !selected[newKey]; - } - this.api.dispatchAction({ - type: "selectDataRange", - from: this.uid, - visualMapId: this.visualMapModel.id, - selected - }); - }; - PiecewiseVisualMapView2.type = "visualMap.piecewise"; - return PiecewiseVisualMapView2; - }(VisualMapView$1) -); -const PiecewiseView = PiecewiseVisualMapView; -function install$4(registers) { - registers.registerComponentModel(PiecewiseModel$1); - registers.registerComponentView(PiecewiseView); - installCommon(registers); -} -function install$3(registers) { - use(install$5); - use(install$4); -} -var DEFAULT_OPTION = { - label: { - enabled: true - }, - decal: { - show: false - } -}; -var inner = makeInner(); -var decalPaletteScope = {}; -function ariaVisual(ecModel, api) { - var ariaModel = ecModel.getModel("aria"); - if (!ariaModel.get("enabled")) { - return; - } - var defaultOption2 = clone$1(DEFAULT_OPTION); - merge(defaultOption2.label, ecModel.getLocaleModel().get("aria"), false); - merge(ariaModel.option, defaultOption2, false); - setDecal(); - setLabel(); - function setDecal() { - var decalModel = ariaModel.getModel("decal"); - var useDecal = decalModel.get("show"); - if (useDecal) { - var paletteScopeGroupByType_1 = createHashMap(); - ecModel.eachSeries(function(seriesModel) { - if (seriesModel.isColorBySeries()) { - return; - } - var decalScope = paletteScopeGroupByType_1.get(seriesModel.type); - if (!decalScope) { - decalScope = {}; - paletteScopeGroupByType_1.set(seriesModel.type, decalScope); - } - inner(seriesModel).scope = decalScope; - }); - ecModel.eachRawSeries(function(seriesModel) { - if (ecModel.isSeriesFiltered(seriesModel)) { - return; - } - if (isFunction(seriesModel.enableAriaDecal)) { - seriesModel.enableAriaDecal(); - return; - } - var data = seriesModel.getData(); - if (!seriesModel.isColorBySeries()) { - var dataAll_1 = seriesModel.getRawData(); - var idxMap_1 = {}; - var decalScope_1 = inner(seriesModel).scope; - data.each(function(idx) { - var rawIdx = data.getRawIndex(idx); - idxMap_1[rawIdx] = idx; - }); - var dataCount_1 = dataAll_1.count(); - dataAll_1.each(function(rawIdx) { - var idx = idxMap_1[rawIdx]; - var name = dataAll_1.getName(rawIdx) || rawIdx + ""; - var paletteDecal2 = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1); - var specifiedDecal2 = data.getItemVisual(idx, "decal"); - data.setItemVisual(idx, "decal", mergeDecal(specifiedDecal2, paletteDecal2)); - }); - } else { - var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount()); - var specifiedDecal = data.getVisual("decal"); - data.setVisual("decal", mergeDecal(specifiedDecal, paletteDecal)); - } - function mergeDecal(specifiedDecal2, paletteDecal2) { - var resultDecal = specifiedDecal2 ? extend(extend({}, paletteDecal2), specifiedDecal2) : paletteDecal2; - resultDecal.dirty = true; - return resultDecal; - } - }); - } - } - function setLabel() { - var labelLocale = ecModel.getLocaleModel().get("aria"); - var labelModel = ariaModel.getModel("label"); - labelModel.option = defaults(labelModel.option, labelLocale); - if (!labelModel.get("enabled")) { - return; - } - var dom = api.getZr().dom; - if (labelModel.get("description")) { - dom.setAttribute("aria-label", labelModel.get("description")); - return; - } - var seriesCnt = ecModel.getSeriesCount(); - var maxDataCnt = labelModel.get(["data", "maxCount"]) || 10; - var maxSeriesCnt = labelModel.get(["series", "maxCount"]) || 10; - var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt); - var ariaLabel; - if (seriesCnt < 1) { - return; - } else { - var title = getTitle(); - if (title) { - var withTitle = labelModel.get(["general", "withTitle"]); - ariaLabel = replace(withTitle, { - title - }); - } else { - ariaLabel = labelModel.get(["general", "withoutTitle"]); - } - var seriesLabels_1 = []; - var prefix = seriesCnt > 1 ? labelModel.get(["series", "multiple", "prefix"]) : labelModel.get(["series", "single", "prefix"]); - ariaLabel += replace(prefix, { - seriesCount: seriesCnt - }); - ecModel.eachSeries(function(seriesModel, idx) { - if (idx < displaySeriesCnt) { - var seriesLabel = void 0; - var seriesName = seriesModel.get("name"); - var withName = seriesName ? "withName" : "withoutName"; - seriesLabel = seriesCnt > 1 ? labelModel.get(["series", "multiple", withName]) : labelModel.get(["series", "single", withName]); - seriesLabel = replace(seriesLabel, { - seriesId: seriesModel.seriesIndex, - seriesName: seriesModel.get("name"), - seriesType: getSeriesTypeName(seriesModel.subType) - }); - var data = seriesModel.getData(); - if (data.count() > maxDataCnt) { - var partialLabel = labelModel.get(["data", "partialData"]); - seriesLabel += replace(partialLabel, { - displayCnt: maxDataCnt - }); - } else { - seriesLabel += labelModel.get(["data", "allData"]); - } - var middleSeparator_1 = labelModel.get(["data", "separator", "middle"]); - var endSeparator_1 = labelModel.get(["data", "separator", "end"]); - var dataLabels = []; - for (var i = 0; i < data.count(); i++) { - if (i < maxDataCnt) { - var name_1 = data.getName(i); - var value = data.getValues(i); - var dataLabel = labelModel.get(["data", name_1 ? "withName" : "withoutName"]); - dataLabels.push(replace(dataLabel, { - name: name_1, - value: value.join(middleSeparator_1) - })); - } - } - seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1; - seriesLabels_1.push(seriesLabel); - } - }); - var separatorModel = labelModel.getModel(["series", "multiple", "separator"]); - var middleSeparator = separatorModel.get("middle"); - var endSeparator = separatorModel.get("end"); - ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator; - dom.setAttribute("aria-label", ariaLabel); - } - } - function replace(str, keyValues) { - if (!isString(str)) { - return str; - } - var result = str; - each$9(keyValues, function(value, key) { - result = result.replace(new RegExp("\\{\\s*" + key + "\\s*\\}", "g"), value); - }); - return result; - } - function getTitle() { - var title = ecModel.get("title"); - if (title && title.length) { - title = title[0]; - } - return title && title.text; - } - function getSeriesTypeName(type) { - return ecModel.getLocaleModel().get(["series", "typeNames"])[type] || "自定义图"; - } -} -function ariaPreprocessor(option) { - if (!option || !option.aria) { - return; - } - var aria = option.aria; - if (aria.show != null) { - aria.enabled = aria.show; - } - aria.label = aria.label || {}; - each$9(["description", "general", "series", "data"], function(name) { - if (aria[name] != null) { - aria.label[name] = aria[name]; - } - }); -} -function install$2(registers) { - registers.registerPreprocessor(ariaPreprocessor); - registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual); -} -var RELATIONAL_EXPRESSION_OP_ALIAS_MAP = { - value: "eq", - // PENDING: not good for literal semantic? - "<": "lt", - "<=": "lte", - ">": "gt", - ">=": "gte", - "=": "eq", - "!=": "ne", - "<>": "ne" - // Might be misleading for sake of the difference between '==' and '===', - // so don't support them. - // '==': 'eq', - // '===': 'seq', - // '!==': 'sne' - // PENDING: Whether support some common alias "ge", "le", "neq"? - // ge: 'gte', - // le: 'lte', - // neq: 'ne', -}; -var RegExpEvaluator = ( - /** @class */ - function() { - function RegExpEvaluator2(rVal) { - var condValue = this._condVal = isString(rVal) ? new RegExp(rVal) : isRegExp(rVal) ? rVal : null; - if (condValue == null) { - var errMsg = ""; - throwError(errMsg); - } - } - RegExpEvaluator2.prototype.evaluate = function(lVal) { - var type = typeof lVal; - return isString(type) ? this._condVal.test(lVal) : isNumber(type) ? this._condVal.test(lVal + "") : false; - }; - return RegExpEvaluator2; - }() -); -var ConstConditionInternal = ( - /** @class */ - function() { - function ConstConditionInternal2() { - } - ConstConditionInternal2.prototype.evaluate = function() { - return this.value; - }; - return ConstConditionInternal2; - }() -); -var AndConditionInternal = ( - /** @class */ - function() { - function AndConditionInternal2() { - } - AndConditionInternal2.prototype.evaluate = function() { - var children = this.children; - for (var i = 0; i < children.length; i++) { - if (!children[i].evaluate()) { - return false; - } - } - return true; - }; - return AndConditionInternal2; - }() -); -var OrConditionInternal = ( - /** @class */ - function() { - function OrConditionInternal2() { - } - OrConditionInternal2.prototype.evaluate = function() { - var children = this.children; - for (var i = 0; i < children.length; i++) { - if (children[i].evaluate()) { - return true; - } - } - return false; - }; - return OrConditionInternal2; - }() -); -var NotConditionInternal = ( - /** @class */ - function() { - function NotConditionInternal2() { - } - NotConditionInternal2.prototype.evaluate = function() { - return !this.child.evaluate(); - }; - return NotConditionInternal2; - }() -); -var RelationalConditionInternal = ( - /** @class */ - function() { - function RelationalConditionInternal2() { - } - RelationalConditionInternal2.prototype.evaluate = function() { - var needParse = !!this.valueParser; - var getValue = this.getValue; - var tarValRaw = getValue(this.valueGetterParam); - var tarValParsed = needParse ? this.valueParser(tarValRaw) : null; - for (var i = 0; i < this.subCondList.length; i++) { - if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) { - return false; - } - } - return true; - }; - return RelationalConditionInternal2; - }() -); -function parseOption(exprOption, getters) { - if (exprOption === true || exprOption === false) { - var cond = new ConstConditionInternal(); - cond.value = exprOption; - return cond; - } - var errMsg = ""; - if (!isObjectNotArray(exprOption)) { - throwError(errMsg); - } - if (exprOption.and) { - return parseAndOrOption("and", exprOption, getters); - } else if (exprOption.or) { - return parseAndOrOption("or", exprOption, getters); - } else if (exprOption.not) { - return parseNotOption(exprOption, getters); - } - return parseRelationalOption(exprOption, getters); -} -function parseAndOrOption(op, exprOption, getters) { - var subOptionArr = exprOption[op]; - var errMsg = ""; - if (!isArray$1(subOptionArr)) { - throwError(errMsg); - } - if (!subOptionArr.length) { - throwError(errMsg); - } - var cond = op === "and" ? new AndConditionInternal() : new OrConditionInternal(); - cond.children = map(subOptionArr, function(subOption) { - return parseOption(subOption, getters); - }); - if (!cond.children.length) { - throwError(errMsg); - } - return cond; -} -function parseNotOption(exprOption, getters) { - var subOption = exprOption.not; - var errMsg = ""; - if (!isObjectNotArray(subOption)) { - throwError(errMsg); - } - var cond = new NotConditionInternal(); - cond.child = parseOption(subOption, getters); - if (!cond.child) { - throwError(errMsg); - } - return cond; -} -function parseRelationalOption(exprOption, getters) { - var errMsg = ""; - var valueGetterParam = getters.prepareGetValue(exprOption); - var subCondList = []; - var exprKeys = keys(exprOption); - var parserName = exprOption.parser; - var valueParser = parserName ? getRawValueParser(parserName) : null; - for (var i = 0; i < exprKeys.length; i++) { - var keyRaw = exprKeys[i]; - if (keyRaw === "parser" || getters.valueGetterAttrMap.get(keyRaw)) { - continue; - } - var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw; - var condValueRaw = exprOption[keyRaw]; - var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw; - var evaluator = createFilterComparator(op, condValueParsed) || op === "reg" && new RegExpEvaluator(condValueParsed); - if (!evaluator) { - throwError(errMsg); - } - subCondList.push(evaluator); - } - if (!subCondList.length) { - throwError(errMsg); - } - var cond = new RelationalConditionInternal(); - cond.valueGetterParam = valueGetterParam; - cond.valueParser = valueParser; - cond.getValue = getters.getValue; - cond.subCondList = subCondList; - return cond; -} -function isObjectNotArray(val) { - return isObject(val) && !isArrayLike(val); -} -var ConditionalExpressionParsed = ( - /** @class */ - function() { - function ConditionalExpressionParsed2(exprOption, getters) { - this._cond = parseOption(exprOption, getters); - } - ConditionalExpressionParsed2.prototype.evaluate = function() { - return this._cond.evaluate(); - }; - return ConditionalExpressionParsed2; - }() -); -function parseConditionalExpression(exprOption, getters) { - return new ConditionalExpressionParsed(exprOption, getters); -} -var filterTransform = { - type: "echarts:filter", - // PENDING: enhance to filter by index rather than create new data - transform: function(params) { - var upstream = params.upstream; - var rawItem; - var condition = parseConditionalExpression(params.config, { - valueGetterAttrMap: createHashMap({ - dimension: true - }), - prepareGetValue: function(exprOption) { - var errMsg = ""; - var dimLoose = exprOption.dimension; - if (!hasOwn(exprOption, "dimension")) { - throwError(errMsg); - } - var dimInfo = upstream.getDimensionInfo(dimLoose); - if (!dimInfo) { - throwError(errMsg); - } - return { - dimIdx: dimInfo.index - }; - }, - getValue: function(param) { - return upstream.retrieveValueFromItem(rawItem, param.dimIdx); - } - }); - var resultData = []; - for (var i = 0, len = upstream.count(); i < len; i++) { - rawItem = upstream.getRawDataItem(i); - if (condition.evaluate()) { - resultData.push(rawItem); - } - } - return { - data: resultData - }; - } -}; -var sortTransform = { - type: "echarts:sort", - transform: function(params) { - var upstream = params.upstream; - var config = params.config; - var errMsg = ""; - var orderExprList = normalizeToArray(config); - if (!orderExprList.length) { - throwError(errMsg); - } - var orderDefList = []; - each$9(orderExprList, function(orderExpr) { - var dimLoose = orderExpr.dimension; - var order = orderExpr.order; - var parserName = orderExpr.parser; - var incomparable = orderExpr.incomparable; - if (dimLoose == null) { - throwError(errMsg); - } - if (order !== "asc" && order !== "desc") { - throwError(errMsg); - } - if (incomparable && incomparable !== "min" && incomparable !== "max") { - var errMsg_1 = ""; - throwError(errMsg_1); - } - if (order !== "asc" && order !== "desc") { - var errMsg_2 = ""; - throwError(errMsg_2); - } - var dimInfo = upstream.getDimensionInfo(dimLoose); - if (!dimInfo) { - throwError(errMsg); - } - var parser = parserName ? getRawValueParser(parserName) : null; - if (parserName && !parser) { - throwError(errMsg); - } - orderDefList.push({ - dimIdx: dimInfo.index, - parser, - comparator: new SortOrderComparator(order, incomparable) - }); - }); - var sourceFormat = upstream.sourceFormat; - if (sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) { - throwError(errMsg); - } - var resultData = []; - for (var i = 0, len = upstream.count(); i < len; i++) { - resultData.push(upstream.getRawDataItem(i)); - } - resultData.sort(function(item0, item1) { - for (var i2 = 0; i2 < orderDefList.length; i2++) { - var orderDef = orderDefList[i2]; - var val0 = upstream.retrieveValueFromItem(item0, orderDef.dimIdx); - var val1 = upstream.retrieveValueFromItem(item1, orderDef.dimIdx); - if (orderDef.parser) { - val0 = orderDef.parser(val0); - val1 = orderDef.parser(val1); - } - var result = orderDef.comparator.evaluate(val0, val1); - if (result !== 0) { - return result; - } - } - return 0; - }); - return { - data: resultData - }; - } -}; -function install$1(registers) { - registers.registerTransform(filterTransform); - registers.registerTransform(sortTransform); -} -var DatasetModel = ( - /** @class */ - function(_super) { - __extends(DatasetModel2, _super); - function DatasetModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "dataset"; - return _this; - } - DatasetModel2.prototype.init = function(option, parentModel, ecModel) { - _super.prototype.init.call(this, option, parentModel, ecModel); - this._sourceManager = new SourceManager(this); - disableTransformOptionMerge(this); - }; - DatasetModel2.prototype.mergeOption = function(newOption, ecModel) { - _super.prototype.mergeOption.call(this, newOption, ecModel); - disableTransformOptionMerge(this); - }; - DatasetModel2.prototype.optionUpdated = function() { - this._sourceManager.dirty(); - }; - DatasetModel2.prototype.getSourceManager = function() { - return this._sourceManager; - }; - DatasetModel2.type = "dataset"; - DatasetModel2.defaultOption = { - seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN - }; - return DatasetModel2; - }(ComponentModel) -); -var DatasetView = ( - /** @class */ - function(_super) { - __extends(DatasetView2, _super); - function DatasetView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "dataset"; - return _this; - } - DatasetView2.type = "dataset"; - return DatasetView2; - }(ComponentView) -); -function install(registers) { - registers.registerComponentModel(DatasetModel); - registers.registerComponentView(DatasetView); -} -export { - install$2 as AriaComponent, - install$q as AxisPointerComponent, - install$h as BrushComponent, - install$m as CalendarComponent, - install$6 as DataZoomComponent, - install$8 as DataZoomInsideComponent, - install$7 as DataZoomSliderComponent, - install as DatasetComponent, - f as GeoComponent, - install$l as GraphicComponent, - install$p as GridComponent, - install$r as GridSimpleComponent, - install$9 as LegendComponent, - install$b as LegendPlainComponent, - install$a as LegendScrollComponent, - install$c as MarkAreaComponent, - install$d as MarkLineComponent, - install$e as MarkPointComponent, - l as ParallelComponent, - install$o as PolarComponent, - d as RadarComponent, - install$n as SingleAxisComponent, - install$f as TimelineComponent, - install$g as TitleComponent, - install$j as ToolboxComponent, - install$i as TooltipComponent, - install$1 as TransformComponent, - install$3 as VisualMapComponent, - install$5 as VisualMapContinuousComponent, - install$4 as VisualMapPiecewiseComponent -}; diff --git a/templates/assets/dist/assets/components-cce90504.js b/templates/assets/dist/assets/components-cce90504.js new file mode 100644 index 00000000..8a8de9f4 --- /dev/null +++ b/templates/assets/dist/assets/components-cce90504.js @@ -0,0 +1,22 @@ +import{x as Fn,A as Nt,y as jr,z as Zn,B as Wt,C as Yn,c as Un,D as ar,E as Xn,F as Kn,q as qn,r as jn,t as Jn,v as Ee,G as Qn,w as Jr,H as to,n as eo,I as $t,J as ro,K as io,N as ao,O as Ea,k as j,S as no,L as oo,i as br,R as so}from"./customGraphicKeyframeAnimation-15977b4b.js";import{f as gv,l as yv,d as mv}from"./customGraphicKeyframeAnimation-15977b4b.js";import{d as V,Z as B,l as L,o as st,g as _,c as N,b as P,aC as _r,p as z,n as E,a$ as wr,aJ as xe,aL as Ar,_ as M,z as q,q as k,h as G,m as Pe,f as F,i as kt,aO as Tt,R as ot,r as Y,V as J,j as et,ap as Qt,O as yt,aj as lo,N as Na,a as Ga,b7 as Ha,b8 as uo,ar as ho,K as Se,B as Cr,az as nr,S as Tr,aN as Qr,aZ as co,b4 as po,b3 as vo,ai as fo,Y as go,b9 as yo}from"./graphic-083f2b2f.js";import{br as it,I as tt,bt as mo,U as Le,cf as Gt,cn as ae,co as be,a3 as ke,a9 as Re,a as X,cs as Wa,cp as St,ab as K,ac as Q,b9 as xo,aK as rt,aZ as Pt,A as $a,aM as _t,bn as H,c7 as ti,n as or,c as Fa,G as sr,O as So,L as Mt,a0 as vt,M as mt,f as Z,S as Za,cd as Ya,i as Ua,ca as bo,h as pt,c0 as Mr,ct as _o,c1 as Ir,N as Xa,cu as wo,cv as ei,v as Ao,cw as Co,cx as To,bB as jt,cb as Dr,bD as Pr,X as Mo,cy as Io,cz as Do,s as U,m as Po,cA as Lo,cB as ko,k as ct,cC as It,bG as Ro,cj as Oo,bO as ri,bP as ii,av as Lr,cD as ai,cE as Ka,Y as Jt,cF as Vo,cG as zo,aa as qa,cH as Bo,b6 as _e,cI as ja,bS as W,cJ as Eo,cl as Ja,bw as te,cK as ni,cL as oi,D as No,a7 as Go,cM as Ho,cN as Wo,cO as Ne,aT as kr,cP as Qa,cQ as tn,cR as Zt,cS as oe,bH as si,b0 as $o,aI as Dt,bg as Ft,cT as en,d as Et,c3 as Fo,cU as Zo,cV as Yo,b as Lt,bu as Uo,bU as Xo,bq as Ko,o as qo,cW as we,cX as jo,cY as Jo,cZ as Oe,g as Qo,P as Ae,bb as rn,bc as ts,b7 as es,b8 as rs,c_ as is,bV as as,c$ as ns,cq as an,bJ as os,K as ss,d0 as ls,z as li,bC as ui,d1 as nn,d2 as us,d3 as hs,bR as cs,d4 as ps,d5 as vs,d6 as hi,d7 as ds}from"./Axis-b5ea7d9c.js";var At=it(),ci=N,Ge=P,fs=function(){function i(){this._dragging=!1,this.animationThreshold=15}return i.prototype.render=function(e,t,r,a){var n=t.get("value"),o=t.get("status");if(this._axisModel=e,this._axisPointerModel=t,this._api=r,!(!a&&this._lastValue===n&&this._lastStatus===o)){this._lastValue=n,this._lastStatus=o;var s=this._group,l=this._handle;if(!o||o==="hide"){s&&s.hide(),l&&l.hide();return}s&&s.show(),l&&l.show();var u={};this.makeElOption(u,n,e,t,r);var h=u.graphicKey;h!==this._lastGraphicKey&&this.clear(r),this._lastGraphicKey=h;var c=this._moveAnimation=this.determineAnimation(e,t);if(!s)s=this._group=new tt,this.createPointerEl(s,u,e,t),this.createLabelEl(s,u,e,t),r.getZr().add(s);else{var p=V(pi,t,c);this.updatePointerEl(s,u,p),this.updateLabelEl(s,u,p,t)}di(s,t,!0),this._renderHandle(n)}},i.prototype.remove=function(e){this.clear(e)},i.prototype.dispose=function(e){this.clear(e)},i.prototype.determineAnimation=function(e,t){var r=t.get("animation"),a=e.axis,n=a.type==="category",o=t.get("snap");if(!o&&!n)return!1;if(r==="auto"||r==null){var s=this.animationThreshold;if(n&&a.getBandWidth()>s)return!0;if(o){var l=Fn(e).seriesDataCount,u=a.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return r===!0},i.prototype.makeElOption=function(e,t,r,a,n){},i.prototype.createPointerEl=function(e,t,r,a){var n=t.pointer;if(n){var o=At(e).pointerEl=new mo[n.type](ci(t.pointer));e.add(o)}},i.prototype.createLabelEl=function(e,t,r,a){if(t.label){var n=At(e).labelEl=new B(ci(t.label));e.add(n),vi(n,a)}},i.prototype.updatePointerEl=function(e,t,r){var a=At(e).pointerEl;a&&t.pointer&&(a.setStyle(t.pointer.style),r(a,{shape:t.pointer.shape}))},i.prototype.updateLabelEl=function(e,t,r,a){var n=At(e).labelEl;n&&(n.setStyle(t.label.style),r(n,{x:t.label.x,y:t.label.y}),vi(n,a))},i.prototype._renderHandle=function(e){if(!(this._dragging||!this.updateHandleTransform)){var t=this._axisPointerModel,r=this._api.getZr(),a=this._handle,n=t.getModel("handle"),o=t.get("status");if(!n.get("show")||!o||o==="hide"){a&&r.remove(a),this._handle=null;return}var s;this._handle||(s=!0,a=this._handle=Le(n.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){Gt(u.event)},onmousedown:Ge(this._onHandleDragMove,this,0,0),drift:Ge(this._onHandleDragMove,this),ondragend:Ge(this._onHandleDragEnd,this)}),r.add(a)),di(a,t,!1),a.setStyle(n.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=n.get("size");L(l)||(l=[l,l]),a.scaleX=l[0]/2,a.scaleY=l[1]/2,ae(this,"_doDispatchAxisPointer",n.get("throttle")||0,"fixRate"),this._moveHandleToValue(e,s)}},i.prototype._moveHandleToValue=function(e,t){pi(this._axisPointerModel,!t&&this._moveAnimation,this._handle,He(this.getHandleTransform(e,this._axisModel,this._axisPointerModel)))},i.prototype._onHandleDragMove=function(e,t){var r=this._handle;if(r){this._dragging=!0;var a=this.updateHandleTransform(He(r),[e,t],this._axisModel,this._axisPointerModel);this._payloadInfo=a,r.stopAnimation(),r.attr(He(a)),At(r).lastProp=null,this._doDispatchAxisPointer()}},i.prototype._doDispatchAxisPointer=function(){var e=this._handle;if(e){var t=this._payloadInfo,r=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:r.axis.dim,axisIndex:r.componentIndex}]})}},i.prototype._onHandleDragEnd=function(){this._dragging=!1;var e=this._handle;if(e){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},i.prototype.clear=function(e){this._lastValue=null,this._lastStatus=null;var t=e.getZr(),r=this._group,a=this._handle;t&&r&&(this._lastGraphicKey=null,r&&t.remove(r),a&&t.remove(a),this._group=null,this._handle=null,this._payloadInfo=null),be(this,"_doDispatchAxisPointer")},i.prototype.doClear=function(){},i.prototype.buildLabel=function(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}},i}();function pi(i,e,t,r){on(At(t).lastProp,r)||(At(t).lastProp=r,e?ke(t,r,i):(t.stopAnimation(),t.attr(r)))}function on(i,e){if(st(i)&&st(e)){var t=!0;return _(e,function(r,a){t=t&&on(i[a],r)}),!!t}else return i===e}function vi(i,e){i[e.get(["label","show"])?"show":"hide"]()}function He(i){return{x:i.x||0,y:i.y||0,rotation:i.rotation||0}}function di(i,e,t){var r=e.get("z"),a=e.get("zlevel");i&&i.traverse(function(n){n.type!=="group"&&(r!=null&&(n.z=r),a!=null&&(n.zlevel=a),n.silent=t)})}const Rr=fs;function Or(i){var e=i.get("type"),t=i.getModel(e+"Style"),r;return e==="line"?(r=t.getLineStyle(),r.fill=null):e==="shadow"&&(r=t.getAreaStyle(),r.stroke=null),r}function sn(i,e,t,r,a){var n=t.get("value"),o=ln(n,e.axis,e.ecModel,t.get("seriesDataIndices"),{precision:t.get(["label","precision"]),formatter:t.get(["label","formatter"])}),s=t.getModel("label"),l=Re(s.get("padding")||0),u=s.getFont(),h=_r(o,u),c=a.position,p=h.width+l[1]+l[3],v=h.height+l[0]+l[2],d=a.align;d==="right"&&(c[0]-=p),d==="center"&&(c[0]-=p/2);var f=a.verticalAlign;f==="bottom"&&(c[1]-=v),f==="middle"&&(c[1]-=v/2),gs(c,p,v,r);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=e.get(["axisLine","lineStyle","color"])),i.label={x:c[0],y:c[1],style:X(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function gs(i,e,t,r){var a=r.getWidth(),n=r.getHeight();i[0]=Math.min(i[0]+e,a)-e,i[1]=Math.min(i[1]+t,n)-t,i[0]=Math.max(i[0],0),i[1]=Math.max(i[1],0)}function ln(i,e,t,r,a){i=e.scale.parse(i);var n=e.scale.getLabel({value:i},{precision:a.precision}),o=a.formatter;if(o){var s={value:Wa(e,{value:i}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};_(r,function(l){var u=t.getSeriesByIndex(l.seriesIndex),h=l.dataIndexInside,c=u&&u.getDataParams(h);c&&s.seriesData.push(c)}),z(o)?n=o.replace("{value}",n):E(o)&&(n=o(s))}return n}function Vr(i,e,t){var r=Ar();return wr(r,r,t.rotation),xe(r,r,t.position),St([i.dataToCoord(e),(t.labelOffset||0)+(t.labelDirection||1)*(t.labelMargin||0)],r)}function un(i,e,t,r,a,n){var o=Nt.innerTextLayout(t.rotation,0,t.labelDirection);t.labelMargin=a.get(["label","margin"]),sn(e,r,a,n,{position:Vr(r.axis,i,t),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function zr(i,e,t){return t=t||0,{x1:i[t],y1:i[1-t],x2:e[t],y2:e[1-t]}}function hn(i,e,t){return t=t||0,{x:i[t],y:i[1-t],width:e[t],height:e[1-t]}}function fi(i,e,t,r,a,n){return{cx:i,cy:e,r0:t,r,startAngle:a,endAngle:n,clockwise:!0}}var ys=function(i){M(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e.prototype.makeElOption=function(t,r,a,n,o){var s=a.axis,l=s.grid,u=n.get("type"),h=gi(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(r,!0));if(u&&u!=="none"){var p=Or(n),v=ms[u](s,c,h);v.style=p,t.graphicKey=v.type,t.pointer=v}var d=jr(l.model,a);un(r,t,d,a,n,o)},e.prototype.getHandleTransform=function(t,r,a){var n=jr(r.axis.grid.model,r,{labelInside:!1});n.labelMargin=a.get(["handle","margin"]);var o=Vr(r.axis,t,n);return{x:o[0],y:o[1],rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,r,a,n){var o=a.axis,s=o.grid,l=o.getGlobalExtent(!0),u=gi(s,o).getOtherAxis(o).getGlobalExtent(),h=o.dim==="x"?0:1,c=[t.x,t.y];c[h]+=r[h],c[h]=Math.min(l[1],c[h]),c[h]=Math.max(l[0],c[h]);var p=(u[1]+u[0])/2,v=[p,p];v[h]=c[h];var d=[{verticalAlign:"middle"},{align:"center"}];return{x:c[0],y:c[1],rotation:t.rotation,cursorPoint:v,tooltipOption:d[h]}},e}(Rr);function gi(i,e){var t={};return t[e.dim+"AxisIndex"]=e.index,i.getCartesian(t)}var ms={line:function(i,e,t){var r=zr([e,t[0]],[e,t[1]],yi(i));return{type:"Line",subPixelOptimize:!0,shape:r}},shadow:function(i,e,t){var r=Math.max(1,i.getBandWidth()),a=t[1]-t[0];return{type:"Rect",shape:hn([e-r/2,t[0]],[r,a],yi(i))}}};function yi(i){return i.dim==="x"?0:1}const xs=ys;var Ss=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.type="axisPointer",e.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(K);const bs=Ss;var dt=it(),_s=_;function cn(i,e,t){if(!q.node){var r=e.getZr();dt(r).records||(dt(r).records={}),ws(r,e);var a=dt(r).records[i]||(dt(r).records[i]={});a.handler=t}}function ws(i,e){if(dt(i).initialized)return;dt(i).initialized=!0,t("click",V(mi,"click")),t("mousemove",V(mi,"mousemove")),t("globalout",Cs);function t(r,a){i.on(r,function(n){var o=Ts(e);_s(dt(i).records,function(s){s&&a(s,n,o.dispatchAction)}),As(o.pendings,e)})}}function As(i,e){var t=i.showTip.length,r=i.hideTip.length,a;t?a=i.showTip[t-1]:r&&(a=i.hideTip[r-1]),a&&(a.dispatchAction=null,e.dispatchAction(a))}function Cs(i,e,t){i.handler("leave",null,t)}function mi(i,e,t,r){e.handler(i,t,r)}function Ts(i){var e={showTip:[],hideTip:[]},t=function(r){var a=e[r.type];a?a.push(r):(r.dispatchAction=t,i.dispatchAction(r))};return{dispatchAction:t,pendings:e}}function lr(i,e){if(!q.node){var t=e.getZr(),r=(dt(t).records||{})[i];r&&(dt(t).records[i]=null)}}var Ms=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,r,a){var n=r.getComponent("tooltip"),o=t.get("triggerOn")||n&&n.get("triggerOn")||"mousemove|click";cn("axisPointer",a,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},e.prototype.remove=function(t,r){lr("axisPointer",r)},e.prototype.dispose=function(t,r){lr("axisPointer",r)},e.type="axisPointer",e}(Q);const Is=Ms;function pn(i,e){var t=[],r=i.seriesIndex,a;if(r==null||!(a=e.getSeriesByIndex(r)))return{point:[]};var n=a.getData(),o=xo(n,i);if(o==null||o<0||L(o))return{point:[]};var s=n.getItemGraphicEl(o),l=a.coordinateSystem;if(a.getTooltipPosition)t=a.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(i.isStacked){var u=l.getBaseAxis(),h=l.getOtherAxis(u),c=h.dim,p=u.dim,v=c==="x"||c==="radius"?1:0,d=n.mapDimension(p),f=[];f[v]=n.get(d,o),f[1-v]=n.get(n.getCalculationInfo("stackResultDimension"),o),t=l.dataToPoint(f)||[]}else t=l.dataToPoint(n.getValues(k(l.dimensions,function(y){return n.mapDimension(y)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),t=[g.x+g.width/2,g.y+g.height/2]}return{point:t,el:s}}var xi=it();function Ds(i,e,t){var r=i.currTrigger,a=[i.x,i.y],n=i,o=i.dispatchAction||P(t.dispatchAction,t),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){ge(a)&&(a=pn({seriesIndex:n.seriesIndex,dataIndex:n.dataIndex},e).point);var l=ge(a),u=n.axesInfo,h=s.axesInfo,c=r==="leave"||ge(a),p={},v={},d={list:[],map:{}},f={showPointer:V(Ls,v),showTooltip:V(ks,d)};_(s.coordSysMap,function(y,x){var m=l||y.containPoint(a);_(s.coordSysAxesInfo[x],function(S,b){var w=S.axis,A=zs(u,S);if(!c&&m&&(!u||A)){var C=A&&A.value;C==null&&!l&&(C=w.pointToData(a)),C!=null&&Si(S,C,f,!1,p)}})});var g={};return _(h,function(y,x){var m=y.linkGroup;m&&!v[x]&&_(m.axesInfo,function(S,b){var w=v[b];if(S!==y&&w){var A=w.value;m.mapper&&(A=y.axis.scale.parse(m.mapper(A,bi(S),bi(y)))),g[y.key]=A}})}),_(g,function(y,x){Si(h[x],y,f,!0,p)}),Rs(v,h,p),Os(d,a,i,o),Vs(h,o,t),p}}function Si(i,e,t,r,a){var n=i.axis;if(!(n.scale.isBlank()||!n.containData(e))){if(!i.involveSeries){t.showPointer(i,e);return}var o=Ps(e,i),s=o.payloadBatch,l=o.snapToValue;s[0]&&a.seriesIndex==null&&G(a,s[0]),!r&&i.snap&&n.containData(l)&&l!=null&&(e=l),t.showPointer(i,e,s),t.showTooltip(i,o,l)}}function Ps(i,e){var t=e.axis,r=t.dim,a=i,n=[],o=Number.MAX_VALUE,s=-1;return _(e.seriesModels,function(l,u){var h=l.getData().mapDimensionsAll(r),c,p;if(l.getAxisTooltipData){var v=l.getAxisTooltipData(h,i,t);p=v.dataIndices,c=v.nestestValue}else{if(p=l.getData().indicesOfNearest(h[0],i,t.type==="category"?.5:null),!p.length)return;c=l.getData().get(h[0],p[0])}if(!(c==null||!isFinite(c))){var d=i-c,f=Math.abs(d);f<=o&&((f=0&&s<0)&&(o=f,s=d,a=c,n.length=0),_(p,function(g){n.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:n,snapToValue:a}}function Ls(i,e,t,r){i[e.key]={value:t,payloadBatch:r}}function ks(i,e,t,r){var a=t.payloadBatch,n=e.axis,o=n.model,s=e.axisPointerModel;if(!(!e.triggerTooltip||!a.length)){var l=e.coordSys.model,u=Zn(l),h=i.map[u];h||(h=i.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},i.list.push(h)),h.dataByAxis.push({axisDim:n.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:r,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:a.slice()})}}function Rs(i,e,t){var r=t.axesInfo=[];_(e,function(a,n){var o=a.axisPointerModel.option,s=i[n];s?(!a.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!a.useHandle&&(o.status="hide"),o.status==="show"&&r.push({axisDim:a.axis.dim,axisIndex:a.axis.model.componentIndex,value:o.value})})}function Os(i,e,t,r){if(ge(e)||!i.list.length){r({type:"hideTip"});return}var a=((i.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};r({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:t.tooltipOption,position:t.position,dataIndexInside:a.dataIndexInside,dataIndex:a.dataIndex,seriesIndex:a.seriesIndex,dataByCoordSys:i.list})}function Vs(i,e,t){var r=t.getZr(),a="axisPointerLastHighlights",n=xi(r)[a]||{},o=xi(r)[a]={};_(i,function(u,h){var c=u.axisPointerModel.option;c.status==="show"&&_(c.seriesDataIndices,function(p){var v=p.seriesIndex+" | "+p.dataIndex;o[v]=p})});var s=[],l=[];_(n,function(u,h){!o[h]&&l.push(u)}),_(o,function(u,h){!n[h]&&s.push(u)}),l.length&&t.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&t.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function zs(i,e){for(var t=0;t<(i||[]).length;t++){var r=i[t];if(e.axis.dim===r.axisDim&&e.axis.model.componentIndex===r.axisIndex)return r}}function bi(i){var e=i.axis.model,t={},r=t.axisDim=i.axis.dim;return t.axisIndex=t[r+"AxisIndex"]=e.componentIndex,t.axisName=t[r+"AxisName"]=e.name,t.axisId=t[r+"AxisId"]=e.id,t}function ge(i){return!i||i[0]==null||isNaN(i[0])||i[1]==null||isNaN(i[1])}function Ve(i){Wt.registerAxisPointerClass("CartesianAxisPointer",xs),i.registerComponentModel(bs),i.registerComponentView(Is),i.registerPreprocessor(function(e){if(e){(!e.axisPointer||e.axisPointer.length===0)&&(e.axisPointer={});var t=e.axisPointer.link;t&&!L(t)&&(e.axisPointer.link=[t])}}),i.registerProcessor(i.PRIORITY.PROCESSOR.STATISTIC,function(e,t){e.getComponent("axisPointer").coordSysAxesInfo=Yn(e,t)}),i.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},Ds)}function Kp(i){rt(Un),rt(Ve)}var Bs=function(i){M(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e.prototype.makeElOption=function(t,r,a,n,o){var s=a.axis;s.dim==="angle"&&(this.animationThreshold=Math.PI/18);var l=s.polar,u=l.getOtherAxis(s),h=u.getExtent(),c=s.dataToCoord(r),p=n.get("type");if(p&&p!=="none"){var v=Or(n),d=Ns[p](s,l,c,h);d.style=v,t.graphicKey=d.type,t.pointer=d}var f=n.get(["label","margin"]),g=Es(r,a,n,l,f);sn(t,a,n,o,g)},e}(Rr);function Es(i,e,t,r,a){var n=e.axis,o=n.dataToCoord(i),s=r.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l=r.getRadiusAxis().getExtent(),u,h,c;if(n.dim==="radius"){var p=Ar();wr(p,p,s),xe(p,p,[r.cx,r.cy]),u=St([o,-a],p);var v=e.getModel("axisLabel").get("rotate")||0,d=Nt.innerTextLayout(s,v*Math.PI/180,-1);h=d.textAlign,c=d.textVerticalAlign}else{var f=l[1];u=r.coordToPoint([f+a,o]);var g=r.cx,y=r.cy;h=Math.abs(u[0]-g)/f<.3?"center":u[0]>g?"left":"right",c=Math.abs(u[1]-y)/f<.3?"middle":u[1]>y?"top":"bottom"}return{position:u,align:h,verticalAlign:c}}var Ns={line:function(i,e,t,r){return i.dim==="angle"?{type:"Line",shape:zr(e.coordToPoint([r[0],t]),e.coordToPoint([r[1],t]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:t}}},shadow:function(i,e,t,r){var a=Math.max(1,i.getBandWidth()),n=Math.PI/180;return i.dim==="angle"?{type:"Sector",shape:fi(e.cx,e.cy,r[0],r[1],(-t-a/2)*n,(-t+a/2)*n)}:{type:"Sector",shape:fi(e.cx,e.cy,t-a/2,t+a/2,0,Math.PI*2)}}};const Gs=Bs;var Hs=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.findAxisModel=function(t){var r,a=this.ecModel;return a.eachComponent(t,function(n){n.getCoordSysModel()===this&&(r=n)},this),r},e.type="polar",e.dependencies=["radiusAxis","angleAxis"],e.defaultOption={z:0,center:["50%","50%"],radius:"80%"},e}(K);const Ws=Hs;var Br=function(i){M(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",Pt).models[0]},e.type="polarAxis",e}(K);Pe(Br,$a);var $s=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.type="angleAxis",e}(Br),Fs=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.type="radiusAxis",e}(Br),Er=function(i){M(e,i);function e(t,r){return i.call(this,"radius",t,r)||this}return e.prototype.pointToData=function(t,r){return this.polar.pointToData(t,r)[this.dim==="radius"?0:1]},e}(_t);Er.prototype.dataToRadius=_t.prototype.dataToCoord;Er.prototype.radiusToData=_t.prototype.coordToData;const Zs=Er;var Ys=it(),Nr=function(i){M(e,i);function e(t,r){return i.call(this,"angle",t,r||[0,360])||this}return e.prototype.pointToData=function(t,r){return this.polar.pointToData(t,r)[this.dim==="radius"?0:1]},e.prototype.calculateCategoryInterval=function(){var t=this,r=t.getLabelModel(),a=t.scale,n=a.getExtent(),o=a.count();if(n[1]-n[0]<1)return 0;var s=n[0],l=t.dataToCoord(s+1)-t.dataToCoord(s),u=Math.abs(l),h=_r(s==null?"":s+"",r.getFont(),"center","top"),c=Math.max(h.height,7),p=c/u;isNaN(p)&&(p=1/0);var v=Math.max(0,Math.floor(p)),d=Ys(t.model),f=d.lastAutoInterval,g=d.lastTickCount;return f!=null&&g!=null&&Math.abs(f-v)<=1&&Math.abs(g-o)<=1&&f>v?v=f:(d.lastTickCount=o,d.lastAutoInterval=v),v},e}(_t);Nr.prototype.dataToAngle=_t.prototype.dataToCoord;Nr.prototype.angleToData=_t.prototype.coordToData;const Us=Nr;var vn=["radius","angle"],Xs=function(){function i(e){this.dimensions=vn,this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new Zs,this._angleAxis=new Us,this.axisPointerEnabled=!0,this.name=e||"",this._radiusAxis.polar=this._angleAxis.polar=this}return i.prototype.containPoint=function(e){var t=this.pointToCoord(e);return this._radiusAxis.contain(t[0])&&this._angleAxis.contain(t[1])},i.prototype.containData=function(e){return this._radiusAxis.containData(e[0])&&this._angleAxis.containData(e[1])},i.prototype.getAxis=function(e){var t="_"+e+"Axis";return this[t]},i.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},i.prototype.getAxesByScale=function(e){var t=[],r=this._angleAxis,a=this._radiusAxis;return r.scale.type===e&&t.push(r),a.scale.type===e&&t.push(a),t},i.prototype.getAngleAxis=function(){return this._angleAxis},i.prototype.getRadiusAxis=function(){return this._radiusAxis},i.prototype.getOtherAxis=function(e){var t=this._angleAxis;return e===t?this._radiusAxis:t},i.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},i.prototype.getTooltipAxes=function(e){var t=e!=null&&e!=="auto"?this.getAxis(e):this.getBaseAxis();return{baseAxes:[t],otherAxes:[this.getOtherAxis(t)]}},i.prototype.dataToPoint=function(e,t){return this.coordToPoint([this._radiusAxis.dataToRadius(e[0],t),this._angleAxis.dataToAngle(e[1],t)])},i.prototype.pointToData=function(e,t){var r=this.pointToCoord(e);return[this._radiusAxis.radiusToData(r[0],t),this._angleAxis.angleToData(r[1],t)]},i.prototype.pointToCoord=function(e){var t=e[0]-this.cx,r=e[1]-this.cy,a=this.getAngleAxis(),n=a.getExtent(),o=Math.min(n[0],n[1]),s=Math.max(n[0],n[1]);a.inverse?o=s-360:s=o+360;var l=Math.sqrt(t*t+r*r);t/=l,r/=l;for(var u=Math.atan2(-r,t)/Math.PI*180,h=us;)u+=h*360;return[l,u]},i.prototype.coordToPoint=function(e){var t=e[0],r=e[1]/180*Math.PI,a=Math.cos(r)*t+this.cx,n=-Math.sin(r)*t+this.cy;return[a,n]},i.prototype.getArea=function(){var e=this.getAngleAxis(),t=this.getRadiusAxis(),r=t.getExtent().slice();r[0]>r[1]&&r.reverse();var a=e.getExtent(),n=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:r[0],r:r[1],startAngle:-a[0]*n,endAngle:-a[1]*n,clockwise:e.inverse,contain:function(o,s){var l=o-this.cx,u=s-this.cy,h=l*l+u*u-1e-4,c=this.r,p=this.r0;return h<=c*c&&h>=p*p}}},i.prototype.convertToPixel=function(e,t,r){var a=_i(t);return a===this?this.dataToPoint(r):null},i.prototype.convertFromPixel=function(e,t,r){var a=_i(t);return a===this?this.pointToData(r):null},i}();function _i(i){var e=i.seriesModel,t=i.polarModel;return t&&t.coordinateSystem||e&&e.coordinateSystem}const Ks=Xs;function qs(i,e,t){var r=e.get("center"),a=t.getWidth(),n=t.getHeight();i.cx=H(r[0],a),i.cy=H(r[1],n);var o=i.getRadiusAxis(),s=Math.min(a,n)/2,l=e.get("radius");l==null?l=[0,"100%"]:L(l)||(l=[0,l]);var u=[H(l[0],s),H(l[1],s)];o.inverse?o.setExtent(u[1],u[0]):o.setExtent(u[0],u[1])}function js(i,e){var t=this,r=t.getAngleAxis(),a=t.getRadiusAxis();if(r.scale.setExtent(1/0,-1/0),a.scale.setExtent(1/0,-1/0),i.eachSeries(function(s){if(s.coordinateSystem===t){var l=s.getData();_(ti(l,"radius"),function(u){a.scale.unionExtentFromData(l,u)}),_(ti(l,"angle"),function(u){r.scale.unionExtentFromData(l,u)})}}),or(r.scale,r.model),or(a.scale,a.model),r.type==="category"&&!r.onBand){var n=r.getExtent(),o=360/r.scale.count();r.inverse?n[1]+=o:n[1]-=o,r.setExtent(n[0],n[1])}}function Js(i){return i.mainType==="angleAxis"}function wi(i,e){if(i.type=e.get("type"),i.scale=Fa(e),i.onBand=e.get("boundaryGap")&&i.type==="category",i.inverse=e.get("inverse"),Js(e)){i.inverse=i.inverse!==e.get("clockwise");var t=e.get("startAngle");i.setExtent(t,t+(i.inverse?-360:360))}e.axis=i,i.model=e}var Qs={dimensions:vn,create:function(i,e){var t=[];return i.eachComponent("polar",function(r,a){var n=new Ks(a+"");n.update=js;var o=n.getRadiusAxis(),s=n.getAngleAxis(),l=r.findAxisModel("radiusAxis"),u=r.findAxisModel("angleAxis");wi(o,l),wi(s,u),qs(n,r,e),t.push(n),r.coordinateSystem=n,n.model=r}),i.eachSeries(function(r){if(r.get("coordinateSystem")==="polar"){var a=r.getReferringComponents("polar",Pt).models[0];r.coordinateSystem=a.coordinateSystem}}),t}};const tl=Qs;var el=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function se(i,e,t){e[1]>e[0]&&(e=e.slice().reverse());var r=i.coordToPoint([e[0],t]),a=i.coordToPoint([e[1],t]);return{x1:r[0],y1:r[1],x2:a[0],y2:a[1]}}function le(i){var e=i.getRadiusAxis();return e.inverse?0:1}function Ai(i){var e=i[0],t=i[i.length-1];e&&t&&Math.abs(Math.abs(e.coord-t.coord)-360)<1e-4&&i.pop()}var rl=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t.axisPointerClass="PolarAxisPointer",t}return e.prototype.render=function(t,r){if(this.group.removeAll(),!!t.get("show")){var a=t.axis,n=a.polar,o=n.getRadiusAxis().getExtent(),s=a.getTicksCoords(),l=a.getMinorTicksCoords(),u=k(a.getViewLabels(),function(h){h=N(h);var c=a.scale,p=c.type==="ordinal"?c.getRawOrdinalNumber(h.tickValue):h.tickValue;return h.coord=a.dataToCoord(p),h});Ai(u),Ai(s),_(el,function(h){t.get([h,"show"])&&(!a.scale.isBlank()||h==="axisLine")&&il[h](this.group,t,n,s,l,o,u)},this)}},e.type="angleAxis",e}(Wt),il={axisLine:function(i,e,t,r,a,n){var o=e.getModel(["axisLine","lineStyle"]),s=le(t),l=s?0:1,u;n[l]===0?u=new sr({shape:{cx:t.cx,cy:t.cy,r:n[s]},style:o.getLineStyle(),z2:1,silent:!0}):u=new So({shape:{cx:t.cx,cy:t.cy,r:n[s],r0:n[l]},style:o.getLineStyle(),z2:1,silent:!0}),u.style.fill=null,i.add(u)},axisTick:function(i,e,t,r,a,n){var o=e.getModel("axisTick"),s=(o.get("inside")?-1:1)*o.get("length"),l=n[le(t)],u=k(r,function(h){return new Mt({shape:se(t,[l,l+s],h.coord)})});i.add(vt(u,{style:F(o.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(i,e,t,r,a,n){if(a.length){for(var o=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(o.get("inside")?-1:1)*s.get("length"),u=n[le(t)],h=[],c=0;cy?"left":"right",S=Math.abs(g[1]-x)/f<.3?"middle":g[1]>x?"top":"bottom";if(s&&s[d]){var b=s[d];st(b)&&b.textStyle&&(v=new mt(b.textStyle,l,l.ecModel))}var w=new B({silent:Nt.isLabelSilent(e),style:X(v,{x:g[0],y:g[1],fill:v.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:c.formattedLabel,align:m,verticalAlign:S})});if(i.add(w),h){var A=Nt.makeAxisEventDataBase(e);A.targetType="axisLabel",A.value=c.rawLabel,Z(w).eventData=A}},this)},splitLine:function(i,e,t,r,a,n){var o=e.getModel("splitLine"),s=o.getModel("lineStyle"),l=s.get("color"),u=0;l=l instanceof Array?l:[l];for(var h=[],c=0;c=0?"p":"n",O=A;b&&(r[h][D]||(r[h][D]={p:A,n:A}),O=r[h][D][R]);var $=void 0,lt=void 0,wt=void 0,ft=void 0;if(d.dim==="radius"){var ut=d.dataToCoord(I)-A,ne=l.dataToCoord(D);Math.abs(ut)=ft})}}})}function pl(i){var e={};_(i,function(r,a){var n=r.getData(),o=r.coordinateSystem,s=o.getBaseAxis(),l=fn(o,s),u=s.getExtent(),h=s.type==="category"?s.getBandWidth():Math.abs(u[1]-u[0])/n.count(),c=e[l]||{bandWidth:h,remainedWidth:h,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},p=c.stacks;e[l]=c;var v=dn(r);p[v]||c.autoWidthCount++,p[v]=p[v]||{width:0,maxWidth:0};var d=H(r.get("barWidth"),h),f=H(r.get("barMaxWidth"),h),g=r.get("barGap"),y=r.get("barCategoryGap");d&&!p[v].width&&(d=Math.min(c.remainedWidth,d),p[v].width=d,c.remainedWidth-=d),f&&(p[v].maxWidth=f),g!=null&&(c.gap=g),y!=null&&(c.categoryGap=y)});var t={};return _(e,function(r,a){t[a]={};var n=r.stacks,o=r.bandWidth,s=H(r.categoryGap,o),l=H(r.gap,1),u=r.remainedWidth,h=r.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),_(n,function(f,g){var y=f.maxWidth;y&&y=t.y&&e[1]<=t.y+t.height:r.contain(r.toLocalCoord(e[1]))&&e[0]>=t.y&&e[0]<=t.y+t.height},i.prototype.pointToData=function(e){var t=this.getAxis();return[t.coordToData(t.toLocalCoord(e[t.orient==="horizontal"?0:1]))]},i.prototype.dataToPoint=function(e){var t=this.getAxis(),r=this.getRect(),a=[],n=t.orient==="horizontal"?0:1;return e instanceof Array&&(e=e[0]),a[n]=t.toGlobalCoord(t.dataToCoord(+e)),a[1-n]=n===0?r.y+r.height/2:r.x+r.width/2,a},i.prototype.convertToPixel=function(e,t,r){var a=Ci(t);return a===this?this.dataToPoint(r):null},i.prototype.convertFromPixel=function(e,t,r){var a=Ci(t);return a===this?this.pointToData(r):null},i}();function Ci(i){var e=i.seriesModel,t=i.singleAxisModel;return t&&t.coordinateSystem||e&&e.coordinateSystem}function Al(i,e){var t=[];return i.eachComponent("singleAxis",function(r,a){var n=new wl(r,i,e);n.name="single_"+a,n.resize(r,e),r.coordinateSystem=n,t.push(n)}),i.eachSeries(function(r){if(r.get("coordinateSystem")==="singleAxis"){var a=r.getReferringComponents("singleAxis",Pt).models[0];r.coordinateSystem=a&&a.coordinateSystem}}),t}var Cl={create:Al,dimensions:yn};const Tl=Cl;var Ti=["x","y"],Ml=["width","height"],Il=function(i){M(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e.prototype.makeElOption=function(t,r,a,n,o){var s=a.axis,l=s.coordinateSystem,u=$e(l,1-Ce(s)),h=l.dataToPoint(r)[0],c=n.get("type");if(c&&c!=="none"){var p=Or(n),v=Dl[c](s,h,u);v.style=p,t.graphicKey=v.type,t.pointer=v}var d=ur(a);un(r,t,d,a,n,o)},e.prototype.getHandleTransform=function(t,r,a){var n=ur(r,{labelInside:!1});n.labelMargin=a.get(["handle","margin"]);var o=Vr(r.axis,t,n);return{x:o[0],y:o[1],rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,r,a,n){var o=a.axis,s=o.coordinateSystem,l=Ce(o),u=$e(s,l),h=[t.x,t.y];h[l]+=r[l],h[l]=Math.min(u[1],h[l]),h[l]=Math.max(u[0],h[l]);var c=$e(s,1-l),p=(c[1]+c[0])/2,v=[p,p];return v[l]=h[l],{x:h[0],y:h[1],rotation:t.rotation,cursorPoint:v,tooltipOption:{verticalAlign:"middle"}}},e}(Rr),Dl={line:function(i,e,t){var r=zr([e,t[0]],[e,t[1]],Ce(i));return{type:"Line",subPixelOptimize:!0,shape:r}},shadow:function(i,e,t){var r=i.getBandWidth(),a=t[1]-t[0];return{type:"Rect",shape:hn([e-r/2,t[0]],[r,a],Ce(i))}}};function Ce(i){return i.isHorizontal()?0:1}function $e(i,e){var t=i.getRect();return[t[Ti[e]],t[Ti[e]]+t[Ml[e]]]}const Pl=Il;var Ll=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.type="single",e}(Q);function jp(i){rt(Ve),Wt.registerAxisPointerClass("SingleAxisPointer",Pl),i.registerComponentView(Ll),i.registerComponentView(Sl),i.registerComponentModel(We),ar(i,"single",We,We.defaultOption),i.registerCoordinateSystem("single",Tl)}var kl=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,r,a){var n=Mr(t);i.prototype.init.apply(this,arguments),Mi(t,n)},e.prototype.mergeOption=function(t){i.prototype.mergeOption.apply(this,arguments),Mi(this.option,t)},e.prototype.getCellSize=function(){return this.option.cellSize},e.type="calendar",e.defaultOption={z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},e}(K);function Mi(i,e){var t=i.cellSize,r;L(t)?r=t:r=i.cellSize=[t,t],r.length===1&&(r[1]=r[0]);var a=k([0,1],function(n){return _o(e,n)&&(r[n]="auto"),r[n]!=null&&r[n]!=="auto"});Ir(i,e,{type:"box",ignoreSize:a})}const Rl=kl;var Ol=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,r,a){var n=this.group;n.removeAll();var o=t.coordinateSystem,s=o.getRangeInfo(),l=o.getOrient(),u=r.getLocaleModel();this._renderDayRect(t,s,n),this._renderLines(t,s,l,n),this._renderYearText(t,s,l,n),this._renderMonthText(t,u,l,n),this._renderWeekText(t,u,s,l,n)},e.prototype._renderDayRect=function(t,r,a){for(var n=t.coordinateSystem,o=t.getModel("itemStyle").getItemStyle(),s=n.getCellWidth(),l=n.getCellHeight(),u=r.start.time;u<=r.end.time;u=n.getNextNDay(u,1).time){var h=n.dataToRect([u],!1).tl,c=new ot({shape:{x:h[0],y:h[1],width:s,height:l},cursor:"default",style:o});a.add(c)}},e.prototype._renderLines=function(t,r,a,n){var o=this,s=t.coordinateSystem,l=t.getModel(["splitLine","lineStyle"]).getLineStyle(),u=t.get(["splitLine","show"]),h=l.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var c=r.start,p=0;c.time<=r.end.time;p++){d(c.formatedDate),p===0&&(c=s.getDateInfo(r.start.y+"-"+r.start.m));var v=c.date;v.setMonth(v.getMonth()+1),c=s.getDateInfo(v)}d(s.getNextNDay(r.end.time,1).formatedDate);function d(f){o._firstDayOfMonth.push(s.getDateInfo(f)),o._firstDayPoints.push(s.dataToRect([f],!1).tl);var g=o._getLinePointsOfOneWeek(t,f,a);o._tlpoints.push(g[0]),o._blpoints.push(g[g.length-1]),u&&o._drawSplitline(g,l,n)}u&&this._drawSplitline(o._getEdgesPoints(o._tlpoints,h,a),l,n),u&&this._drawSplitline(o._getEdgesPoints(o._blpoints,h,a),l,n)},e.prototype._getEdgesPoints=function(t,r,a){var n=[t[0].slice(),t[t.length-1].slice()],o=a==="horizontal"?0:1;return n[0][o]=n[0][o]-r/2,n[1][o]=n[1][o]+r/2,n},e.prototype._drawSplitline=function(t,r,a){var n=new Xa({z2:20,shape:{points:t},style:r});a.add(n)},e.prototype._getLinePointsOfOneWeek=function(t,r,a){for(var n=t.coordinateSystem,o=n.getDateInfo(r),s=[],l=0;l<7;l++){var u=n.getNextNDay(o.time,l),h=n.dataToRect([u.time],!1);s[2*u.day]=h.tl,s[2*u.day+1]=h[a==="horizontal"?"bl":"tr"]}return s},e.prototype._formatterLabel=function(t,r){return z(t)&&t?wo(t,r):E(t)?t(r):r.nameMap},e.prototype._yearTextPositionControl=function(t,r,a,n,o){var s=r[0],l=r[1],u=["center","bottom"];n==="bottom"?(l+=o,u=["center","top"]):n==="left"?s-=o:n==="right"?(s+=o,u=["center","top"]):l-=o;var h=0;return(n==="left"||n==="right")&&(h=Math.PI/2),{rotation:h,x:s,y:l,style:{align:u[0],verticalAlign:u[1]}}},e.prototype._renderYearText=function(t,r,a,n){var o=t.getModel("yearLabel");if(o.get("show")){var s=o.get("margin"),l=o.get("position");l||(l=a!=="horizontal"?"top":"left");var u=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],h=(u[0][0]+u[1][0])/2,c=(u[0][1]+u[1][1])/2,p=a==="horizontal"?0:1,v={top:[h,u[p][1]],bottom:[h,u[1-p][1]],left:[u[1-p][0],c],right:[u[p][0],c]},d=r.start.y;+r.end.y>+r.start.y&&(d=d+"-"+r.end.y);var f=o.get("formatter"),g={start:r.start.y,end:r.end.y,nameMap:d},y=this._formatterLabel(f,g),x=new B({z2:30,style:X(o,{text:y})});x.attr(this._yearTextPositionControl(x,v[l],a,l,s)),n.add(x)}},e.prototype._monthTextPositionControl=function(t,r,a,n,o){var s="left",l="top",u=t[0],h=t[1];return a==="horizontal"?(h=h+o,r&&(s="center"),n==="start"&&(l="bottom")):(u=u+o,r&&(l="middle"),n==="start"&&(s="right")),{x:u,y:h,align:s,verticalAlign:l}},e.prototype._renderMonthText=function(t,r,a,n){var o=t.getModel("monthLabel");if(o.get("show")){var s=o.get("nameMap"),l=o.get("margin"),u=o.get("position"),h=o.get("align"),c=[this._tlpoints,this._blpoints];(!s||z(s))&&(s&&(r=ei(s)||r),s=r.get(["time","monthAbbr"])||[]);var p=u==="start"?0:1,v=a==="horizontal"?0:1;l=u==="start"?-l:l;for(var d=h==="center",f=0;f=a.start.time&&r.times.end.time&&t.reverse(),t},i.prototype._getRangeInfo=function(e){var t=[this.getDateInfo(e[0]),this.getDateInfo(e[1])],r;t[0].time>t[1].time&&(r=!0,t.reverse());var a=Math.floor(t[1].time/Fe)-Math.floor(t[0].time/Fe)+1,n=new Date(t[0].time),o=n.getDate(),s=t[1].date.getDate();n.setDate(o+a-1);var l=n.getDate();if(l!==s)for(var u=n.getTime()-t[1].time>0?1:-1;(l=n.getDate())!==s&&(n.getTime()-t[1].time)*u>0;)a-=u,n.setDate(l-u);var h=Math.floor((a+t[0].day+6)/7),c=r?-h+1:h-1;return r&&t.reverse(),{range:[t[0].formatedDate,t[1].formatedDate],start:t[0],end:t[1],allDay:a,weeks:h,nthWeek:c,fweek:t[0].day,lweek:t[1].day}},i.prototype._getDateByWeeksAndDay=function(e,t,r){var a=this._getRangeInfo(r);if(e>a.weeks||e===0&&ta.lweek)return null;var n=(e-1)*7-a.fweek+t,o=new Date(a.start.time);return o.setDate(+a.start.d+n),this.getDateInfo(o)},i.create=function(e,t){var r=[];return e.eachComponent("calendar",function(a){var n=new i(a);r.push(n),a.coordinateSystem=n}),e.eachSeries(function(a){a.get("coordinateSystem")==="calendar"&&(a.coordinateSystem=r[a.get("calendarIndex")||0])}),r},i.dimensions=["time","value"],i}();function Ii(i){var e=i.calendarModel,t=i.seriesModel,r=e?e.coordinateSystem:t?t.coordinateSystem:null;return r}const Bl=zl;function Jp(i){i.registerComponentModel(Rl),i.registerComponentView(Vl),i.registerCoordinateSystem("calendar",Bl)}function El(i,e){var t=i.existing;if(e.id=i.keyInfo.id,!e.type&&t&&(e.type=t.type),e.parentId==null){var r=e.parentOption;r?e.parentId=r.id:t&&(e.parentId=t.parentId)}e.parentOption=null}function Di(i,e){var t;return _(e,function(r){i[r]!=null&&i[r]!=="auto"&&(t=!0)}),t}function Nl(i,e,t){var r=G({},t),a=i[e],n=t.$action||"merge";n==="merge"?a?(Y(a,r,!0),Ir(a,r,{ignoreSize:!0}),To(t,a),ue(t,a),ue(t,a,"shape"),ue(t,a,"style"),ue(t,a,"extra"),t.clipPath=a.clipPath):i[e]=r:n==="replace"?i[e]=r:n==="remove"&&a&&(i[e]=null)}var mn=["transition","enterFrom","leaveTo"],Gl=mn.concat(["enterAnimation","updateAnimation","leaveAnimation"]);function ue(i,e,t){if(t&&(!i[t]&&e[t]&&(i[t]={}),i=i[t],e=e[t]),!(!i||!e))for(var r=t?mn:Gl,a=0;a=0;h--){var c=a[h],p=jt(c.id,null),v=p!=null?o.get(p):null;if(v){var d=v.parent,y=at(d),x=d===n?{width:s,height:l}:{width:y.width,height:y.height},m={},S=Pr(v,c,x,null,{hv:c.hv,boundingMode:c.bounding},m);if(!at(v).isNew&&S){for(var b=c.transition,w={},A=0;A=0)?w[C]=T:v[C]=T}ke(v,w,t,0)}else v.attr(m)}}},e.prototype._clear=function(){var t=this,r=this._elMap;r.each(function(a){ye(a,at(a).option,r,t._lastGraphicModel)}),this._elMap=J()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(Q);function hr(i){var e=Qt(Pi,i)?Pi[i]:Mo(i),t=new e({});return at(t).type=i,t}function Li(i,e,t,r){var a=hr(t);return e.add(a),r.set(i,a),at(a).id=i,at(a).isNew=!0,a}function ye(i,e,t,r){var a=i&&i.parent;a&&(i.type==="group"&&i.traverse(function(n){ye(n,e,t,r)}),eo(i,e,r),t.removeKey(at(i).id))}function ki(i,e,t,r){i.isGroup||_([["cursor",lo.prototype.cursor],["zlevel",r||0],["z",t||0],["z2",0]],function(a){var n=a[0];Qt(e,n)?i[n]=yt(e[n],a[1]):i[n]==null&&(i[n]=a[1])}),_(Na(e),function(a){if(a.indexOf("on")===0){var n=e[a];i[a]=E(n)?n:null}}),Qt(e,"draggable")&&(i.draggable=e.draggable),e.name!=null&&(i.name=e.name),e.id!=null&&(i.id=e.id)}function Fl(i){return i=G({},i),_(["id","parentId","$action","hv","bounding","textContent","clipPath"].concat(Io),function(e){delete i[e]}),i}function Zl(i,e,t){var r=Z(i).eventData;!i.silent&&!i.ignore&&!r&&(r=Z(i).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:i.name}),r&&(r.info=t.info)}function Qp(i){i.registerComponentModel(Wl),i.registerComponentView($l),i.registerPreprocessor(function(e){var t=e.graphic;L(t)?!t[0]||!t[0].elements?e.graphic=[{elements:t}]:e.graphic=[e.graphic[0]]:t&&!t.elements&&(e.graphic=[{elements:[t]}])})}var Ri=["x","y","radius","angle","single"],Yl=["cartesian2d","polar","singleAxis"];function Ul(i){var e=i.get("coordinateSystem");return et(Yl,e)>=0}function xt(i){return i+"Axis"}function Xl(i,e){var t=J(),r=[],a=J();i.eachComponent({mainType:"dataZoom",query:e},function(h){a.get(h.uid)||s(h)});var n;do n=!1,i.eachComponent("dataZoom",o);while(n);function o(h){!a.get(h.uid)&&l(h)&&(s(h),n=!0)}function s(h){a.set(h.uid,!0),r.push(h),u(h)}function l(h){var c=!1;return h.eachTargetAxis(function(p,v){var d=t.get(p);d&&d[v]&&(c=!0)}),c}function u(h){h.eachTargetAxis(function(c,p){(t.get(c)||t.set(c,[]))[p]=!0})}return r}function xn(i){var e=i.ecModel,t={infoList:[],infoMap:J()};return i.eachTargetAxis(function(r,a){var n=e.getComponent(xt(r),a);if(n){var o=n.getCoordSysModel();if(o){var s=o.uid,l=t.infoMap.get(s);l||(l={model:o,axisModels:[]},t.infoList.push(l),t.infoMap.set(s,l)),l.axisModels.push(n)}}}),t}var Ze=function(){function i(){this.indexList=[],this.indexMap=[]}return i.prototype.add=function(e){this.indexMap[e]||(this.indexList.push(e),this.indexMap[e]=!0)},i}(),Kl=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t._autoThrottle=!0,t._noTarget=!0,t._rangePropMode=["percent","percent"],t}return e.prototype.init=function(t,r,a){var n=Oi(t);this.settledOption=n,this.mergeDefaultAndTheme(t,a),this._doInit(n)},e.prototype.mergeOption=function(t){var r=Oi(t);Y(this.option,t,!0),Y(this.settledOption,r,!0),this._doInit(r)},e.prototype._doInit=function(t){var r=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var a=this.settledOption;_([["start","startValue"],["end","endValue"]],function(n,o){this._rangePropMode[o]==="value"&&(r[n[0]]=a[n[0]]=null)},this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),r=this._targetAxisInfoMap=J(),a=this._fillSpecifiedTargetAxis(r);a?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(r,this._orient)),this._noTarget=!0,r.each(function(n){n.indexList.length&&(this._noTarget=!1)},this)},e.prototype._fillSpecifiedTargetAxis=function(t){var r=!1;return _(Ri,function(a){var n=this.getReferringComponents(xt(a),Do);if(n.specified){r=!0;var o=new Ze;_(n.models,function(s){o.add(s.componentIndex)}),t.set(a,o)}},this),r},e.prototype._fillAutoTargetAxisByOrient=function(t,r){var a=this.ecModel,n=!0;if(n){var o=r==="vertical"?"y":"x",s=a.findComponents({mainType:o+"Axis"});l(s,o)}if(n){var s=a.findComponents({mainType:"singleAxis",filter:function(h){return h.get("orient",!0)===r}});l(s,"single")}function l(u,h){var c=u[0];if(c){var p=new Ze;if(p.add(c.componentIndex),t.set(h,p),n=!1,h==="x"||h==="y"){var v=c.getReferringComponents("grid",Pt).models[0];v&&_(u,function(d){c.componentIndex!==d.componentIndex&&v===d.getReferringComponents("grid",Pt).models[0]&&p.add(d.componentIndex)})}}}n&&_(Ri,function(u){if(n){var h=a.findComponents({mainType:xt(u),filter:function(p){return p.get("type",!0)==="category"}});if(h[0]){var c=new Ze;c.add(h[0].componentIndex),t.set(u,c),n=!1}}},this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis(function(r){!t&&(t=r)},this),t==="y"?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var r=this.ecModel.option;this.option.throttle=r.animation&&r.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var r=this._rangePropMode,a=this.get("rangeMode");_([["start","startValue"],["end","endValue"]],function(n,o){var s=t[n[0]]!=null,l=t[n[1]]!=null;s&&!l?r[o]="percent":!s&&l?r[o]="value":a?r[o]=a[o]:s&&(r[o]="percent")})},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis(function(r,a){t==null&&(t=this.ecModel.getComponent(xt(r),a))},this),t},e.prototype.eachTargetAxis=function(t,r){this._targetAxisInfoMap.each(function(a,n){_(a.indexList,function(o){t.call(r,n,o)})})},e.prototype.getAxisProxy=function(t,r){var a=this.getAxisModel(t,r);if(a)return a.__dzAxisProxy},e.prototype.getAxisModel=function(t,r){var a=this._targetAxisInfoMap.get(t);if(a&&a.indexMap[r])return this.ecModel.getComponent(xt(t),r)},e.prototype.setRawRange=function(t){var r=this.option,a=this.settledOption;_([["start","startValue"],["end","endValue"]],function(n){(t[n[0]]!=null||t[n[1]]!=null)&&(r[n[0]]=a[n[0]]=t[n[0]],r[n[1]]=a[n[1]]=t[n[1]])},this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var r=this.option;_(["start","startValue","end","endValue"],function(a){r[a]=t[a]})},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,r){if(t==null&&r==null){var a=this.findRepresentativeAxisProxy();if(a)return a.getDataValueWindow()}else return this.getAxisProxy(t,r).getDataValueWindow()},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var r,a=this._targetAxisInfoMap.keys(),n=0;no[1];if(m&&!S&&!b)return!0;m&&(g=!0),S&&(d=!0),b&&(f=!0)}return g&&d&&f})}else zt(h,function(v){if(n==="empty")l.setData(u=u.map(v,function(f){return s(f)?f:NaN}));else{var d={};d[v]=o,u.selectRange(d)}});zt(h,function(v){u.setApproximateExtent(o,v)})}});function s(l){return l>=o[0]&&l<=o[1]}},i.prototype._updateMinMaxSpan=function(){var e=this._minMaxSpan={},t=this._dataZoomModel,r=this._dataExtent;zt(["min","max"],function(a){var n=t.get(a+"Span"),o=t.get(a+"ValueSpan");o!=null&&(o=this.getAxisModel().axis.scale.parse(o)),o!=null?n=U(r[0]+o,r,[0,100],!0):n!=null&&(o=U(n,[0,100],r,!0)-r[0]),e[a+"Span"]=n,e[a+"ValueSpan"]=o},this)},i.prototype._setAxisModel=function(){var e=this.getAxisModel(),t=this._percentWindow,r=this._valueWindow;if(t){var a=Po(r,[0,500]);a=Math.min(a,20);var n=e.axis.scale.rawExtentInfo;t[0]!==0&&n.setDeterminedMinMax("min",+r[0].toFixed(a)),t[1]!==100&&n.setDeterminedMinMax("max",+r[1].toFixed(a)),n.freeze()}},i}();function ru(i,e,t){var r=[1/0,-1/0];zt(t,function(o){Lo(r,o.getData(),e)});var a=i.getAxisModel(),n=ko(a.axis.scale,a,r).calculate();return[n.min,n.max]}const iu=eu;var au={getTargetSeries:function(i){function e(a){i.eachComponent("dataZoom",function(n){n.eachTargetAxis(function(o,s){var l=i.getComponent(xt(o),s);a(o,s,l,n)})})}e(function(a,n,o,s){o.__dzAxisProxy=null});var t=[];e(function(a,n,o,s){o.__dzAxisProxy||(o.__dzAxisProxy=new iu(a,n,s,i),t.push(o.__dzAxisProxy))});var r=J();return _(t,function(a){_(a.getTargetSeriesModels(),function(n){r.set(n.uid,n)})}),r},overallReset:function(i,e){i.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(r,a){t.getAxisProxy(r,a).reset(t)}),t.eachTargetAxis(function(r,a){t.getAxisProxy(r,a).filterData(t,e)})}),i.eachComponent("dataZoom",function(t){var r=t.findRepresentativeAxisProxy();if(r){var a=r.getDataPercentWindow(),n=r.getDataValueWindow();t.setCalculatedRange({start:a[0],end:a[1],startValue:n[0],endValue:n[1]})}})}};const nu=au;function ou(i){i.registerAction("dataZoom",function(e,t){var r=Xl(t,e);_(r,function(a){a.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})})}var zi=!1;function Hr(i){zi||(zi=!0,i.registerProcessor(i.PRIORITY.PROCESSOR.FILTER,nu),ou(i),i.registerSubTypeDefaulter("dataZoom",function(){return"slider"}))}function su(i){i.registerComponentModel(jl),i.registerComponentView(tu),Hr(i)}var nt=function(){function i(){}return i}(),Sn={};function Bt(i,e){Sn[i]=e}function bn(i){return Sn[i]}var lu=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.optionUpdated=function(){i.prototype.optionUpdated.apply(this,arguments);var t=this.ecModel;_(this.option.feature,function(r,a){var n=bn(a);n&&(n.getDefaultOption&&(n.defaultOption=n.getDefaultOption(t)),Y(r,n.defaultOption))})},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1,position:"bottom"}},e}(K);const uu=lu;function hu(i,e,t){var r=e.getBoxLayoutParams(),a=e.get("padding"),n={width:t.getWidth(),height:t.getHeight()},o=pt(r,n,a);It(e.get("orient"),i,e.get("itemGap"),o.width,o.height),Pr(i,r,n,a)}function _n(i,e){var t=Re(e.get("padding")),r=e.getItemStyle(["color","opacity"]);return r.fill=e.get("backgroundColor"),i=new ot({shape:{x:i.x-t[3],y:i.y-t[0],width:i.width+t[1]+t[3],height:i.height+t[0]+t[2],r:e.get("borderRadius")},style:r,silent:!0,z2:-1}),i}var cu=function(i){M(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e.prototype.render=function(t,r,a,n){var o=this.group;if(o.removeAll(),!t.get("show"))return;var s=+t.get("itemSize"),l=t.get("orient")==="vertical",u=t.get("feature")||{},h=this._features||(this._features={}),c=[];_(u,function(d,f){c.push(f)}),new Ro(this._featureNames||[],c).add(p).update(p).remove(V(p,null)).execute(),this._featureNames=c;function p(d,f){var g=c[d],y=c[f],x=u[g],m=new mt(x,t,t.ecModel),S;if(n&&n.newTitle!=null&&n.featureName===g&&(x.title=n.newTitle),g&&!y){if(pu(g))S={onclick:m.option.onclick,featureName:g};else{var b=bn(g);if(!b)return;S=new b}h[g]=S}else if(S=h[y],!S)return;S.uid=Oo("toolbox-feature"),S.model=m,S.ecModel=r,S.api=a;var w=S instanceof nt;if(!g&&y){w&&S.dispose&&S.dispose(r,a);return}if(!m.get("show")||w&&S.unusable){w&&S.remove&&S.remove(r,a);return}v(m,S,g),m.setIconStatus=function(A,C){var T=this.option,I=this.iconPaths;T.iconStatus=T.iconStatus||{},T.iconStatus[A]=C,I[A]&&(C==="emphasis"?ri:ii)(I[A])},S instanceof nt&&S.render&&S.render(m,r,a,n)}function v(d,f,g){var y=d.getModel("iconStyle"),x=d.getModel(["emphasis","iconStyle"]),m=f instanceof nt&&f.getIcons?f.getIcons():d.get("icon"),S=d.get("title")||{},b,w;z(m)?(b={},b[g]=m):b=m,z(S)?(w={},w[g]=S):w=S;var A=d.iconPaths={};_(b,function(C,T){var I=Le(C,{},{x:-s/2,y:-s/2,width:s,height:s});I.setStyle(y.getItemStyle());var D=I.ensureState("emphasis");D.style=x.getItemStyle();var R=new B({style:{text:w[T],align:x.get("textAlign"),borderRadius:x.get("textBorderRadius"),padding:x.get("textPadding"),fill:null},ignore:!0});I.setTextContent(R),Dr({el:I,componentModel:t,itemName:T,formatterParamsExtra:{title:w[T]}}),I.__title=w[T],I.on("mouseover",function(){var O=x.getItemStyle(),$=l?t.get("right")==null&&t.get("left")!=="right"?"right":"left":t.get("bottom")==null&&t.get("top")!=="bottom"?"bottom":"top";R.setStyle({fill:x.get("textFill")||O.fill||O.stroke||"#000",backgroundColor:x.get("textBackgroundColor")}),I.setTextConfig({position:x.get("textPosition")||$}),R.ignore=!t.get("showTitle"),a.enterEmphasis(this)}).on("mouseout",function(){d.get(["iconStatus",T])!=="emphasis"&&a.leaveEmphasis(this),R.hide()}),(d.get(["iconStatus",T])==="emphasis"?ri:ii)(I),o.add(I),I.on("click",P(f.onclick,f,r,a,T)),A[T]=I})}hu(o,t,a),o.add(_n(o.getBoundingRect(),t)),l||o.eachChild(function(d){var f=d.__title,g=d.ensureState("emphasis"),y=g.textConfig||(g.textConfig={}),x=d.getTextContent(),m=x&&x.ensureState("emphasis");if(m&&!E(m)&&f){var S=m.style||(m.style={}),b=_r(f,B.makeFont(S)),w=d.x+o.x,A=d.y+o.y+s,C=!1;A+b.height>a.getHeight()&&(y.position="top",C=!0);var T=C?-5-b.height:s+10;w+b.width/2>a.getWidth()?(y.position=["100%",T],S.align="right"):w-b.width/2<0&&(y.position=[0,T],S.align="left")}})},e.prototype.updateView=function(t,r,a,n){_(this._features,function(o){o instanceof nt&&o.updateView&&o.updateView(o.model,r,a,n)})},e.prototype.remove=function(t,r){_(this._features,function(a){a instanceof nt&&a.remove&&a.remove(t,r)}),this.group.removeAll()},e.prototype.dispose=function(t,r){_(this._features,function(a){a instanceof nt&&a.dispose&&a.dispose(t,r)})},e.type="toolbox",e}(Q);function pu(i){return i.indexOf("my")===0}const vu=cu;var du=function(i){M(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e.prototype.onclick=function(t,r){var a=this.model,n=a.get("name")||t.get("title.0.text")||"echarts",o=r.getZr().painter.getType()==="svg",s=o?"svg":a.get("type",!0)||"png",l=r.getConnectedDataURL({type:s,backgroundColor:a.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:a.get("connectedBackgroundColor"),excludeComponents:a.get("excludeComponents"),pixelRatio:a.get("pixelRatio")}),u=q.browser;if(E(MouseEvent)&&(u.newEdge||!u.ie&&!u.edge)){var h=document.createElement("a");h.download=n+"."+s,h.target="_blank",h.href=l;var c=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});h.dispatchEvent(c)}else if(window.navigator.msSaveOrOpenBlob||o){var p=l.split(","),v=p[0].indexOf("base64")>-1,d=o?decodeURIComponent(p[1]):p[1];v&&(d=window.atob(d));var f=n+"."+s;if(window.navigator.msSaveOrOpenBlob){for(var g=d.length,y=new Uint8Array(g);g--;)y[g]=d.charCodeAt(g);var x=new Blob([y]);window.navigator.msSaveOrOpenBlob(x,f)}else{var m=document.createElement("iframe");document.body.appendChild(m);var S=m.contentWindow,b=S.document;b.open("image/svg+xml","replace"),b.write(d),b.close(),S.focus(),b.execCommand("SaveAs",!0,f),document.body.removeChild(m)}}else{var w=a.get("lang"),A='',C=window.open();C.document.write(A),C.document.title=n}},e.getDefaultOption=function(t){var r={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocaleModel().get(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],lang:t.getLocaleModel().get(["toolbox","saveAsImage","lang"])};return r},e}(nt);const fu=du;var Bi="__ec_magicType_stack__",gu=[["line","bar"],["stack"]],yu=function(i){M(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e.prototype.getIcons=function(){var t=this.model,r=t.get("icon"),a={};return _(t.get("type"),function(n){r[n]&&(a[n]=r[n])}),a},e.getDefaultOption=function(t){var r={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocaleModel().get(["toolbox","magicType","title"]),option:{},seriesIndex:{}};return r},e.prototype.onclick=function(t,r,a){var n=this.model,o=n.get(["seriesIndex",a]);if(Ei[a]){var s={series:[]},l=function(c){var p=c.subType,v=c.id,d=Ei[a](p,v,c,n);d&&(F(d,c.option),s.series.push(d));var f=c.coordinateSystem;if(f&&f.type==="cartesian2d"&&(a==="line"||a==="bar")){var g=f.getAxesByScale("ordinal")[0];if(g){var y=g.dim,x=y+"Axis",m=c.getReferringComponents(x,Pt).models[0],S=m.componentIndex;s[x]=s[x]||[];for(var b=0;b<=S;b++)s[x][S]=s[x][S]||{};s[x][S].boundaryGap=a==="bar"}}};_(gu,function(c){et(c,a)>=0&&_(c,function(p){n.setIconStatus(p,"normal")})}),n.setIconStatus(a,"emphasis"),t.eachComponent({mainType:"series",query:o==null?null:{seriesIndex:o}},l);var u,h=a;a==="stack"&&(u=Y({stack:n.option.title.tiled,tiled:n.option.title.stack},n.option.title),n.get(["iconStatus",a])!=="emphasis"&&(h="tiled")),r.dispatchAction({type:"changeMagicType",currentType:h,newOption:s,newTitle:u,featureName:"magicType"})}},e}(nt),Ei={line:function(i,e,t,r){if(i==="bar")return Y({id:e,type:"line",data:t.get("data"),stack:t.get("stack"),markPoint:t.get("markPoint"),markLine:t.get("markLine")},r.get(["option","line"])||{},!0)},bar:function(i,e,t,r){if(i==="line")return Y({id:e,type:"bar",data:t.get("data"),stack:t.get("stack"),markPoint:t.get("markPoint"),markLine:t.get("markLine")},r.get(["option","bar"])||{},!0)},stack:function(i,e,t,r){var a=t.get("stack")===Bi;if(i==="line"||i==="bar")return r.setIconStatus("stack",a?"normal":"emphasis"),Y({id:e,stack:a?"":Bi},r.get(["option","stack"])||{},!0)}};Lr({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(i,e){e.mergeOption(i.newOption)});const mu=yu;var ze=new Array(60).join("-"),Ht=" ";function xu(i){var e={},t=[],r=[];return i.eachRawSeries(function(a){var n=a.coordinateSystem;if(n&&(n.type==="cartesian2d"||n.type==="polar")){var o=n.getBaseAxis();if(o.type==="category"){var s=o.dim+"_"+o.index;e[s]||(e[s]={categoryAxis:o,valueAxis:n.getOtherAxis(o),series:[]},r.push({axisDim:o.dim,axisIndex:o.index})),e[s].series.push(a)}else t.push(a)}else t.push(a)}),{seriesGroupByCategoryAxis:e,other:t,meta:r}}function Su(i){var e=[];return _(i,function(t,r){var a=t.categoryAxis,n=t.valueAxis,o=n.dim,s=[" "].concat(k(t.series,function(v){return v.name})),l=[a.model.getCategories()];_(t.series,function(v){var d=v.getRawData();l.push(v.getRawData().mapArray(d.mapDimension(o),function(f){return f}))});for(var u=[s.join(Ht)],h=0;h=0)return!0}var cr=new RegExp("["+Ht+"]+","g");function Au(i){for(var e=i.split(/\n+/g),t=Te(e.shift()).split(cr),r=[],a=k(t,function(l){return{name:l,data:[]}}),n=0;n=0;n--){var o=t[n];if(o[a])break}if(n<0){var s=i.queryComponents({mainType:"dataZoom",subType:"select",id:a})[0];if(s){var l=s.getPercentRange();t[0][a]={dataZoomId:a,start:l[0],end:l[1]}}}}),t.push(e)}function Lu(i){var e=Wr(i),t=e[e.length-1];e.length>1&&e.pop();var r={};return wn(t,function(a,n){for(var o=e.length-1;o>=0;o--)if(a=e[o][n],a){r[n]=a;break}}),r}function ku(i){An(i).snapshots=null}function Ru(i){return Wr(i).length}function Wr(i){var e=An(i);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var Ou=function(i){M(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e.prototype.onclick=function(t,r){ku(t),r.dispatchAction({type:"restore",from:this.uid})},e.getDefaultOption=function(t){var r={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocaleModel().get(["toolbox","restore","title"])};return r},e}(nt);Lr({type:"restore",event:"restore",update:"prepareAndUpdate"},function(i,e){e.resetOption("recreate")});const Vu=Ou;var zu=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],Bu=function(){function i(e,t,r){var a=this;this._targetInfoList=[];var n=Ni(t,e);_(Eu,function(o,s){(!r||!r.include||et(r.include,s)>=0)&&o(n,a._targetInfoList)})}return i.prototype.setOutputRanges=function(e,t){return this.matchOutputRanges(e,t,function(r,a,n){if((r.coordRanges||(r.coordRanges=[])).push(a),!r.coordRange){r.coordRange=a;var o=Ye[r.brushType](0,n,a);r.__rangeOffset={offset:$i[r.brushType](o.values,r.range,[1,1]),xyMinMax:o.xyMinMax}}}),e},i.prototype.matchOutputRanges=function(e,t,r){_(e,function(a){var n=this.findTargetInfo(a,t);n&&n!==!0&&_(n.coordSyses,function(o){var s=Ye[a.brushType](1,o,a.range,!0);r(a,s.values,o,t)})},this)},i.prototype.setInputRanges=function(e,t){_(e,function(r){var a=this.findTargetInfo(r,t);if(r.range=r.range||[],a&&a!==!0){r.panelId=a.panelId;var n=Ye[r.brushType](0,a.coordSys,r.coordRange),o=r.__rangeOffset;r.range=o?$i[r.brushType](n.values,o.offset,Nu(n.xyMinMax,o.xyMinMax)):n.values}},this)},i.prototype.makePanelOpts=function(e,t){return k(this._targetInfoList,function(r){var a=r.getPanelRect();return{panelId:r.panelId,defaultBrushType:t?t(r):null,clipPath:ro(a),isTargetByCursor:io(a,e,r.coordSysModel),getLinearBrushOtherExtent:ao(a)}})},i.prototype.controlSeries=function(e,t,r){var a=this.findTargetInfo(e,r);return a===!0||a&&et(a.coordSyses,t.coordinateSystem)>=0},i.prototype.findTargetInfo=function(e,t){for(var r=this._targetInfoList,a=Ni(t,e),n=0;ni[1]&&i.reverse(),i}function Ni(i,e){return Ka(i,e,{includeMainTypes:zu})}var Eu={grid:function(i,e){var t=i.xAxisModels,r=i.yAxisModels,a=i.gridModels,n=J(),o={},s={};!t&&!r&&!a||(_(t,function(l){var u=l.axis.grid.model;n.set(u.id,u),o[u.id]=!0}),_(r,function(l){var u=l.axis.grid.model;n.set(u.id,u),s[u.id]=!0}),_(a,function(l){n.set(l.id,l),o[l.id]=!0,s[l.id]=!0}),n.each(function(l){var u=l.coordinateSystem,h=[];_(u.getCartesians(),function(c,p){(et(t,c.getAxis("x").model)>=0||et(r,c.getAxis("y").model)>=0)&&h.push(c)}),e.push({panelId:"grid--"+l.id,gridModel:l,coordSysModel:l,coordSys:h[0],coordSyses:h,getPanelRect:Hi.grid,xAxisDeclared:o[l.id],yAxisDeclared:s[l.id]})}))},geo:function(i,e){_(i.geoModels,function(t){var r=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:r,coordSyses:[r],getPanelRect:Hi.geo})})}},Gi=[function(i,e){var t=i.xAxisModel,r=i.yAxisModel,a=i.gridModel;return!a&&t&&(a=t.axis.grid.model),!a&&r&&(a=r.axis.grid.model),a&&a===e.gridModel},function(i,e){var t=i.geoModel;return t&&t===e.geoModel}],Hi={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var i=this.coordSys,e=i.getBoundingRect().clone();return e.applyTransform(Jt(i)),e}},Ye={lineX:V(Wi,0),lineY:V(Wi,1),rect:function(i,e,t,r){var a=i?e.pointToData([t[0][0],t[1][0]],r):e.dataToPoint([t[0][0],t[1][0]],r),n=i?e.pointToData([t[0][1],t[1][1]],r):e.dataToPoint([t[0][1],t[1][1]],r),o=[pr([a[0],n[0]]),pr([a[1],n[1]])];return{values:o,xyMinMax:o}},polygon:function(i,e,t,r){var a=[[1/0,-1/0],[1/0,-1/0]],n=k(t,function(o){var s=i?e.pointToData(o,r):e.dataToPoint(o,r);return a[0][0]=Math.min(a[0][0],s[0]),a[1][0]=Math.min(a[1][0],s[1]),a[0][1]=Math.max(a[0][1],s[0]),a[1][1]=Math.max(a[1][1],s[1]),s});return{values:n,xyMinMax:a}}};function Wi(i,e,t,r){var a=t.getAxis(["x","y"][i]),n=pr(k([0,1],function(s){return e?a.coordToData(a.toLocalCoord(r[s]),!0):a.toGlobalCoord(a.dataToCoord(r[s]))})),o=[];return o[i]=n,o[1-i]=[NaN,NaN],{values:n,xyMinMax:o}}var $i={lineX:V(Fi,0),lineY:V(Fi,1),rect:function(i,e,t){return[[i[0][0]-t[0]*e[0][0],i[0][1]-t[0]*e[0][1]],[i[1][0]-t[1]*e[1][0],i[1][1]-t[1]*e[1][1]]]},polygon:function(i,e,t){return k(i,function(r,a){return[r[0]-t[0]*e[a][0],r[1]-t[1]*e[a][1]]})}};function Fi(i,e,t,r){return[e[0]-r[i]*t[0],e[1]-r[i]*t[1]]}function Nu(i,e){var t=Zi(i),r=Zi(e),a=[t[0]/r[0],t[1]/r[1]];return isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a}function Zi(i){return i?[i[0][1]-i[0][0],i[1][1]-i[1][0]]:[NaN,NaN]}const $r=Bu;var vr=_,Gu=zo("toolbox-dataZoom_"),Hu=function(i){M(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e.prototype.render=function(t,r,a,n){this._brushController||(this._brushController=new Ea(a.getZr()),this._brushController.on("brush",P(this._onBrush,this)).mount()),Fu(t,r,this,n,a),$u(t,r)},e.prototype.onclick=function(t,r,a){Wu[a].call(this)},e.prototype.remove=function(t,r){this._brushController&&this._brushController.unmount()},e.prototype.dispose=function(t,r){this._brushController&&this._brushController.dispose()},e.prototype._onBrush=function(t){var r=t.areas;if(!t.isEnd||!r.length)return;var a={},n=this.ecModel;this._brushController.updateCovers([]);var o=new $r(Fr(this.model),n,{include:["grid"]});o.matchOutputRanges(r,n,function(u,h,c){if(c.type==="cartesian2d"){var p=u.brushType;p==="rect"?(s("x",c,h[0]),s("y",c,h[1])):s({lineX:"x",lineY:"y"}[p],c,h)}}),Pu(n,a),this._dispatchZoomAction(a);function s(u,h,c){var p=h.getAxis(u),v=p.model,d=l(u,v,n),f=d.findRepresentativeAxisProxy(v).getMinMaxSpan();(f.minValueSpan!=null||f.maxValueSpan!=null)&&(c=$t(0,c.slice(),p.scale.getExtent(),0,f.minValueSpan,f.maxValueSpan)),d&&(a[d.id]={dataZoomId:d.id,startValue:c[0],endValue:c[1]})}function l(u,h,c){var p;return c.eachComponent({mainType:"dataZoom",subType:"select"},function(v){var d=v.getAxisModel(u,h.componentIndex);d&&(p=v)}),p}},e.prototype._dispatchZoomAction=function(t){var r=[];vr(t,function(a,n){r.push(N(a))}),r.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:r})},e.getDefaultOption=function(t){var r={show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocaleModel().get(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}};return r},e}(nt),Wu={zoom:function(){var i=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:i})},back:function(){this._dispatchZoomAction(Lu(this.ecModel))}};function Fr(i){var e={xAxisIndex:i.get("xAxisIndex",!0),yAxisIndex:i.get("yAxisIndex",!0),xAxisId:i.get("xAxisId",!0),yAxisId:i.get("yAxisId",!0)};return e.xAxisIndex==null&&e.xAxisId==null&&(e.xAxisIndex="all"),e.yAxisIndex==null&&e.yAxisId==null&&(e.yAxisIndex="all"),e}function $u(i,e){i.setIconStatus("back",Ru(e)>1?"emphasis":"normal")}function Fu(i,e,t,r,a){var n=t._isZoomActive;r&&r.type==="takeGlobalCursor"&&(n=r.key==="dataZoomSelect"?r.dataZoomSelectActive:!1),t._isZoomActive=n,i.setIconStatus("zoom",n?"emphasis":"normal");var o=new $r(Fr(i),e,{include:["grid"]}),s=o.makePanelOpts(a,function(l){return l.xAxisDeclared&&!l.yAxisDeclared?"lineX":!l.xAxisDeclared&&l.yAxisDeclared?"lineY":"rect"});t._brushController.setPanels(s).enableBrush(n&&s.length?{brushType:"auto",brushStyle:i.getModel("brushStyle").getItemStyle()}:!1)}Vo("dataZoom",function(i){var e=i.getComponent("toolbox",0),t=["feature","dataZoom"];if(!e||e.get(t)==null)return;var r=e.getModel(t),a=[],n=Fr(r),o=Ka(i,n);vr(o.xAxisModels,function(l){return s(l,"xAxis","xAxisIndex")}),vr(o.yAxisModels,function(l){return s(l,"yAxis","yAxisIndex")});function s(l,u,h){var c=l.componentIndex,p={type:"select",$fromToolbox:!0,filterMode:r.get("filterMode",!0)||"filter",id:Gu+u+c};p[h]=c,a.push(p)}return a});const Zu=Hu;function tv(i){i.registerComponentModel(uu),i.registerComponentView(vu),Bt("saveAsImage",fu),Bt("magicType",mu),Bt("dataView",Du),Bt("dataZoom",Zu),Bt("restore",Vu),rt(su)}var Yu=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(K);const Uu=Yu;function Cn(i){var e=i.get("confine");return e!=null?!!e:i.get("renderMode")==="richText"}function Tn(i){if(q.domSupported){for(var e=document.documentElement.style,t=0,r=i.length;t-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=n==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=n==="top"?225:45)+"deg)");var h=u*Math.PI/180,c=o+a,p=c*Math.abs(Math.cos(h))+c*Math.abs(Math.sin(h)),v=Math.round(((p-Math.SQRT2*a)/2+Math.SQRT2*a-(p-c)/2)*100)/100;s+=";"+n+":-"+v+"px";var d=e+" solid "+a+"px;",f=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+d,"border-right:"+d,"background-color:"+r+";"];return'
    '}function th(i,e){var t="cubic-bezier(0.23,1,0.32,1)",r=" "+i/2+"s "+t,a="opacity"+r+",visibility"+r;return e||(r=" "+i+"s "+t,a+=q.transformSupported?","+Zr+r:",left"+r+",top"+r),qu+":"+a}function Yi(i,e,t){var r=i.toFixed(0)+"px",a=e.toFixed(0)+"px";if(!q.transformSupported)return t?"top:"+a+";left:"+r+";":[["top",a],["left",r]];var n=q.transform3dSupported,o="translate"+(n?"3d":"")+"("+r+","+a+(n?",0":"")+")";return t?"top:0;left:0;"+Zr+":"+o+";":[["top",0],["left",0],[Mn,o]]}function eh(i){var e=[],t=i.get("fontSize"),r=i.getTextColor();r&&e.push("color:"+r),e.push("font:"+i.getFont()),t&&e.push("line-height:"+Math.round(t*3/2)+"px");var a=i.get("textShadowColor"),n=i.get("textShadowBlur")||0,o=i.get("textShadowOffsetX")||0,s=i.get("textShadowOffsetY")||0;return a&&n&&e.push("text-shadow:"+o+"px "+s+"px "+n+"px "+a),_(["decoration","align"],function(l){var u=i.get(l);u&&e.push("text-"+l+":"+u)}),e.join(";")}function rh(i,e,t){var r=[],a=i.get("transitionDuration"),n=i.get("backgroundColor"),o=i.get("shadowBlur"),s=i.get("shadowColor"),l=i.get("shadowOffsetX"),u=i.get("shadowOffsetY"),h=i.getModel("textStyle"),c=ja(i,"html"),p=l+"px "+u+"px "+o+"px "+s;return r.push("box-shadow:"+p),e&&a&&r.push(th(a,t)),n&&r.push("background-color:"+n),_(["width","color","radius"],function(v){var d="border-"+v,f=qa(d),g=i.get(f);g!=null&&r.push(d+":"+g+(v==="color"?"":"px"))}),r.push(eh(h)),c!=null&&r.push("padding:"+Re(c).join("px ")+"px"),r.join(";")+";"}function Ui(i,e,t,r,a){var n=e&&e.painter;if(t){var o=n&&n.getViewportRoot();o&&uo(i,o,document.body,r,a)}else{i[0]=r,i[1]=a;var s=n&&n.getViewportRootOffset();s&&(i[0]+=s.offsetLeft,i[1]+=s.offsetTop)}i[2]=i[0]/e.getWidth(),i[3]=i[1]/e.getHeight()}var ih=function(){function i(e,t,r){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,q.wxa)return null;var a=document.createElement("div");a.domBelongToZr=!0,this.el=a;var n=this._zr=t.getZr(),o=this._appendToBody=r&&r.appendToBody;Ui(this._styleCoord,n,o,t.getWidth()/2,t.getHeight()/2),o?document.body.appendChild(a):e.appendChild(a),this._container=e;var s=this;a.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},a.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=n.handler,h=n.painter.getViewportRoot();Bo(h,l,!0),u.dispatch("mousemove",l)}},a.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return i.prototype.update=function(e){var t=this._container,r=Ku(t,"position"),a=t.style;a.position!=="absolute"&&r!=="absolute"&&(a.position="relative");var n=e.get("alwaysShowContent");n&&this._moveIfResized(),this._alwaysShowContent=n,this.el.className=e.get("className")||""},i.prototype.show=function(e,t){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var r=this.el,a=r.style,n=this._styleCoord;r.innerHTML?a.cssText=ju+rh(e,!this._firstShow,this._longHide)+Yi(n[0],n[1],!0)+("border-color:"+_e(t)+";")+(e.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):a.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},i.prototype.setContent=function(e,t,r,a,n){var o=this.el;if(e==null){o.innerHTML="";return}var s="";if(z(n)&&r.get("trigger")==="item"&&!Cn(r)&&(s=Qu(r,a,n)),z(e))o.innerHTML=e+s;else if(e){o.innerHTML="",L(e)||(e=[e]);for(var l=0;l=0?this._tryShow(n,o):a==="leave"&&this._hide(o))},this))},e.prototype._keepShow=function(){var t=this._tooltipModel,r=this._ecModel,a=this._api,n=t.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&n!=="none"&&n!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!a.isDisposed()&&o.manuallyShowTip(t,r,a,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},e.prototype.manuallyShowTip=function(t,r,a,n){if(!(n.from===this.uid||q.node||!a.getDom())){var o=qi(n,a);this._ticket="";var s=n.dataByCoordSys,l=ph(n,r,a);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:n.position,positionDefault:"bottom"},o)}else if(n.tooltip&&n.x!=null&&n.y!=null){var h=sh;h.x=n.x,h.y=n.y,h.update(),Z(h).tooltipConfig={name:null,option:n.tooltip},this._tryShow({offsetX:n.x,offsetY:n.y,target:h},o)}else if(s)this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,dataByCoordSys:s,tooltipOption:n.tooltipOption},o);else if(n.seriesIndex!=null){if(this._manuallyAxisShowTip(t,r,a,n))return;var c=pn(n,r),p=c.point[0],v=c.point[1];p!=null&&v!=null&&this._tryShow({offsetX:p,offsetY:v,target:c.el,position:n.position,positionDefault:"bottom"},o)}else n.x!=null&&n.y!=null&&(a.dispatchAction({type:"updateAxisPointer",x:n.x,y:n.y}),this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,target:a.getZr().findHover(n.x,n.y).target},o))}},e.prototype.manuallyHideTip=function(t,r,a,n){var o=this._tooltipContent;this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,n.from!==this.uid&&this._hide(qi(n,a))},e.prototype._manuallyAxisShowTip=function(t,r,a,n){var o=n.seriesIndex,s=n.dataIndex,l=r.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=r.getSeriesByIndex(o);if(u){var h=u.getData(),c=Yt([h.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(c.get("trigger")==="axis")return a.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:n.position}),!0}}},e.prototype._tryShow=function(t,r){var a=t.target,n=this._tooltipModel;if(n){this._lastX=t.offsetX,this._lastY=t.offsetY;var o=t.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,t);else if(a){this._lastDataByCoordSys=null;var s,l;Ja(a,function(u){if(Z(u).dataIndex!=null)return s=u,!0;if(Z(u).tooltipConfig!=null)return l=u,!0},!0),s?this._showSeriesItemTooltip(t,s,r):l?this._showComponentItemTooltip(t,l,r):this._hide(r)}else this._lastDataByCoordSys=null,this._hide(r)}},e.prototype._showOrMove=function(t,r){var a=t.get("showDelay");r=P(r,this),clearTimeout(this._showTimout),a>0?this._showTimout=setTimeout(r,a):r()},e.prototype._showAxisTooltip=function(t,r){var a=this._ecModel,n=this._tooltipModel,o=[r.offsetX,r.offsetY],s=Yt([r.tooltipOption],n),l=this._renderMode,u=[],h=te("section",{blocks:[],noHeader:!0}),c=[],p=new Ne;_(t,function(x){_(x.dataByAxis,function(m){var S=a.getComponent(m.axisDim+"Axis",m.axisIndex),b=m.value;if(!(!S||b==null)){var w=ln(b,S.axis,a,m.seriesDataIndices,m.valueLabelOpt),A=te("section",{header:w,noHeader:!ho(w),sortBlocks:!0,blocks:[]});h.blocks.push(A),_(m.seriesDataIndices,function(C){var T=a.getSeriesByIndex(C.seriesIndex),I=C.dataIndexInside,D=T.getDataParams(I);if(!(D.dataIndex<0)){D.axisDim=m.axisDim,D.axisIndex=m.axisIndex,D.axisType=m.axisType,D.axisId=m.axisId,D.axisValue=Wa(S.axis,{value:b}),D.axisValueLabel=w,D.marker=p.makeTooltipMarker("item",_e(D.color),l);var R=ni(T.formatTooltip(I,!0,null)),O=R.frag;if(O){var $=Yt([T],n).get("valueFormatter");A.blocks.push($?G({valueFormatter:$},O):O)}R.text&&c.push(R.text),u.push(D)}})}})}),h.blocks.reverse(),c.reverse();var v=r.position,d=s.get("order"),f=oi(h,p,l,d,a.get("useUTC"),s.get("textStyle"));f&&c.unshift(f);var g=l==="richText"?` + +`:"
    ",y=c.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(t,u)?this._updatePosition(s,v,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,y,u,Math.random()+"",o[0],o[1],v,null,p)})},e.prototype._showSeriesItemTooltip=function(t,r,a){var n=this._ecModel,o=Z(r),s=o.seriesIndex,l=n.getSeriesByIndex(s),u=o.dataModel||l,h=o.dataIndex,c=o.dataType,p=u.getData(c),v=this._renderMode,d=t.positionDefault,f=Yt([p.getItemModel(h),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,d?{position:d}:null),g=f.get("trigger");if(!(g!=null&&g!=="item")){var y=u.getDataParams(h,c),x=new Ne;y.marker=x.makeTooltipMarker("item",_e(y.color),v);var m=ni(u.formatTooltip(h,!1,c)),S=f.get("order"),b=f.get("valueFormatter"),w=m.frag,A=w?oi(b?G({valueFormatter:b},w):w,x,v,S,n.get("useUTC"),f.get("textStyle")):m.text,C="item_"+u.name+"_"+h;this._showOrMove(f,function(){this._showTooltipContent(f,A,y,C,t.offsetX,t.offsetY,t.position,t.target,x)}),a({type:"showTip",dataIndexInside:h,dataIndex:p.getRawIndex(h),seriesIndex:s,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,r,a){var n=Z(r),o=n.tooltipConfig,s=o.option||{};if(z(s)){var l=s;s={content:l,formatter:l}}var u=[s],h=this._ecModel.getComponent(n.componentMainType,n.componentIndex);h&&u.push(h),u.push({formatter:s.content});var c=t.positionDefault,p=Yt(u,this._tooltipModel,c?{position:c}:null),v=p.get("content"),d=Math.random()+"",f=new Ne;this._showOrMove(p,function(){var g=N(p.get("formatterParams")||{});this._showTooltipContent(p,v,g,d,t.offsetX,t.offsetY,t.position,r,f)}),a({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,r,a,n,o,s,l,u,h){if(this._ticket="",!(!t.get("showContent")||!t.get("show"))){var c=this._tooltipContent;c.setEnterable(t.get("enterable"));var p=t.get("formatter");l=l||t.get("position");var v=r,d=this._getNearestPoint([o,s],a,t.get("trigger"),t.get("borderColor")),f=d.color;if(p)if(z(p)){var g=t.ecModel.get("useUTC"),y=L(a)?a[0]:a,x=y&&y.axisType&&y.axisType.indexOf("time")>=0;v=p,x&&(v=No(y.axisValue,v,g)),v=Go(v,a,!0)}else if(E(p)){var m=P(function(S,b){S===this._ticket&&(c.setContent(b,h,t,f,l),this._updatePosition(t,l,o,s,c,a,u))},this);this._ticket=n,v=p(a,n,m)}else v=p;c.setContent(v,h,t,f,l),c.show(t,f),this._updatePosition(t,l,o,s,c,a,u)}},e.prototype._getNearestPoint=function(t,r,a,n){if(a==="axis"||L(r))return{color:n||(this._renderMode==="html"?"#fff":"none")};if(!L(r))return{color:n||r.color||r.borderColor}},e.prototype._updatePosition=function(t,r,a,n,o,s,l){var u=this._api.getWidth(),h=this._api.getHeight();r=r||t.get("position");var c=o.getSize(),p=t.get("align"),v=t.get("verticalAlign"),d=l&&l.getBoundingRect().clone();if(l&&d.applyTransform(l.transform),E(r)&&(r=r([a,n],s,o.el,d,{viewSize:[u,h],contentSize:c.slice()})),L(r))a=H(r[0],u),n=H(r[1],h);else if(st(r)){var f=r;f.width=c[0],f.height=c[1];var g=pt(f,{width:u,height:h});a=g.x,n=g.y,p=null,v=null}else if(z(r)&&l){var y=ch(r,d,c,t.get("borderWidth"));a=y[0],n=y[1]}else{var y=uh(a,n,o,u,h,p?null:20,v?null:20);a=y[0],n=y[1]}if(p&&(a-=ji(p)?c[0]/2:p==="right"?c[0]:0),v&&(n-=ji(v)?c[1]/2:v==="bottom"?c[1]:0),Cn(t)){var y=hh(a,n,o,u,h);a=y[0],n=y[1]}o.moveTo(a,n)},e.prototype._updateContentNotChangedOnAxis=function(t,r){var a=this._lastDataByCoordSys,n=this._cbParamsList,o=!!a&&a.length===t.length;return o&&_(a,function(s,l){var u=s.dataByAxis||[],h=t[l]||{},c=h.dataByAxis||[];o=o&&u.length===c.length,o&&_(u,function(p,v){var d=c[v]||{},f=p.seriesDataIndices||[],g=d.seriesDataIndices||[];o=o&&p.value===d.value&&p.axisType===d.axisType&&p.axisId===d.axisId&&f.length===g.length,o&&_(f,function(y,x){var m=g[x];o=o&&y.seriesIndex===m.seriesIndex&&y.dataIndex===m.dataIndex}),n&&_(p.seriesDataIndices,function(y){var x=y.seriesIndex,m=r[x],S=n[x];m&&S&&S.data!==m.data&&(o=!1)})})}),this._lastDataByCoordSys=t,this._cbParamsList=r,!!o},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,r){q.node||!r.getDom()||(be(this,"_updatePosition"),this._tooltipContent.dispose(),lr("itemTooltip",r))},e.type="tooltip",e}(Q);function Yt(i,e,t){var r=e.ecModel,a;t?(a=new mt(t,r,r),a=new mt(e.option,a,r)):a=e;for(var n=i.length-1;n>=0;n--){var o=i[n];o&&(o instanceof mt&&(o=o.get("tooltip",!0)),z(o)&&(o={formatter:o}),o&&(a=new mt(o,a,r)))}return a}function qi(i,e){return i.dispatchAction||P(e.dispatchAction,e)}function uh(i,e,t,r,a,n,o){var s=t.getSize(),l=s[0],u=s[1];return n!=null&&(i+l+n+2>r?i-=l+n:i+=n),o!=null&&(e+u+o>a?e-=u+o:e+=o),[i,e]}function hh(i,e,t,r,a){var n=t.getSize(),o=n[0],s=n[1];return i=Math.min(i+o,r)-o,e=Math.min(e+s,a)-s,i=Math.max(i,0),e=Math.max(e,0),[i,e]}function ch(i,e,t,r){var a=t[0],n=t[1],o=Math.ceil(Math.SQRT2*r)+8,s=0,l=0,u=e.width,h=e.height;switch(i){case"inside":s=e.x+u/2-a/2,l=e.y+h/2-n/2;break;case"top":s=e.x+u/2-a/2,l=e.y-n-o;break;case"bottom":s=e.x+u/2-a/2,l=e.y+h+o;break;case"left":s=e.x-a-o,l=e.y+h/2-n/2;break;case"right":s=e.x+u+o,l=e.y+h/2-n/2}return[s,l]}function ji(i){return i==="center"||i==="middle"}function ph(i,e,t){var r=Ho(i).queryOptionMap,a=r.keys()[0];if(!(!a||a==="series")){var n=Wo(e,a,r.get(a),{useDefault:!1,enableAll:!1,enableNone:!1}),o=n.models[0];if(o){var s=t.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var h=Z(u).tooltipConfig;if(h&&h.name===i.name)return l=u,!0}),l)return{componentMainType:a,componentIndex:o.componentIndex,el:l}}}}const vh=lh;function ev(i){rt(Ve),i.registerComponentModel(Uu),i.registerComponentView(vh),i.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Se),i.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Se)}var dh=["rect","polygon","keep","clear"];function fh(i,e){var t=kr(i?i.brush:[]);if(t.length){var r=[];_(t,function(l){var u=l.hasOwnProperty("toolbox")?l.toolbox:[];u instanceof Array&&(r=r.concat(u))});var a=i&&i.toolbox;L(a)&&(a=a[0]),a||(a={feature:{}},i.toolbox=[a]);var n=a.feature||(a.feature={}),o=n.brush||(n.brush={}),s=o.type||(o.type=[]);s.push.apply(s,r),gh(s),e&&!s.length&&s.push.apply(s,dh)}}function gh(i){var e={};_(i,function(t){e[t]=1}),i.length=0,_(e,function(t,r){i.push(r)})}var Ji=_;function Qi(i){if(i){for(var e in i)if(i.hasOwnProperty(e))return!0}}function dr(i,e,t){var r={};return Ji(e,function(n){var o=r[n]=a();Ji(i[n],function(s,l){if(j.isValidType(l)){var u={type:l,visual:s};t&&t(u,n),o[l]=new j(u),l==="opacity"&&(u=N(u),u.type="colorAlpha",o.__hidden.__alphaForOpacity=new j(u))}})}),r;function a(){var n=function(){};n.prototype.__hidden=n.prototype;var o=new n;return o}}function Dn(i,e,t){var r;_(t,function(a){e.hasOwnProperty(a)&&Qi(e[a])&&(r=!0)}),r&&_(t,function(a){e.hasOwnProperty(a)&&Qi(e[a])?i[a]=N(e[a]):delete i[a]})}function yh(i,e,t,r,a,n){var o={};_(i,function(c){var p=j.prepareVisualTypes(e[c]);o[c]=p});var s;function l(c){return Qa(t,s,c)}function u(c,p){tn(t,s,c,p)}n==null?t.each(h):t.each([n],h);function h(c,p){s=n==null?c:p;var v=t.getRawDataItem(s);if(!(v&&v.visualMap===!1))for(var d=r.call(a,c),f=e[d],g=o[d],y=0,x=g.length;ye[0][1]&&(e[0][1]=n[0]),n[1]e[1][1]&&(e[1][1]=n[1])}return e&&aa(e)}};function aa(i){return new Cr(i[0][0],i[1][0],i[0][1]-i[0][0],i[1][1]-i[1][0])}var Ch=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,r){this.ecModel=t,this.api=r,this.model,(this._brushController=new Ea(r.getZr())).on("brush",P(this._onBrush,this)).mount()},e.prototype.render=function(t,r,a,n){this.model=t,this._updateController(t,r,a,n)},e.prototype.updateTransform=function(t,r,a,n){Pn(r),this._updateController(t,r,a,n)},e.prototype.updateVisual=function(t,r,a,n){this.updateTransform(t,r,a,n)},e.prototype.updateView=function(t,r,a,n){this._updateController(t,r,a,n)},e.prototype._updateController=function(t,r,a,n){(!n||n.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(a)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},e.prototype.dispose=function(){this._brushController.dispose()},e.prototype._onBrush=function(t){var r=this.model.id,a=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:r,areas:N(a),$from:r}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:r,areas:N(a),$from:r})},e.type="brush",e}(Q);const Th=Ch;var Mh="#ddd",Ih=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t.areas=[],t.brushOption={},t}return e.prototype.optionUpdated=function(t,r){var a=this.option;!r&&Dn(a,t,["inBrush","outOfBrush"]);var n=a.inBrush=a.inBrush||{};a.outOfBrush=a.outOfBrush||{color:Mh},n.hasOwnProperty("liftZ")||(n.liftZ=5)},e.prototype.setAreas=function(t){t&&(this.areas=k(t,function(r){return na(this.option,r)},this))},e.prototype.setBrushOption=function(t){this.brushOption=na(this.option,t),this.brushType=this.brushOption.brushType},e.type="brush",e.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],e.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},e}(K);function na(i,e){return Y({brushType:i.brushType,brushMode:i.brushMode,transformable:i.transformable,brushStyle:new mt(i.brushStyle).getItemStyle(),removeOnClick:i.removeOnClick,z:i.z},e,!0)}const Dh=Ih;var Ph=["rect","polygon","lineX","lineY","keep","clear"],Lh=function(i){M(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e.prototype.render=function(t,r,a){var n,o,s;r.eachComponent({mainType:"brush"},function(l){n=l.brushType,o=l.brushOption.brushMode||"single",s=s||!!l.areas.length}),this._brushType=n,this._brushMode=o,_(t.get("type",!0),function(l){t.setIconStatus(l,(l==="keep"?o==="multiple":l==="clear"?s:l===n)?"emphasis":"normal")})},e.prototype.updateView=function(t,r,a){this.render(t,r,a)},e.prototype.getIcons=function(){var t=this.model,r=t.get("icon",!0),a={};return _(t.get("type",!0),function(n){r[n]&&(a[n]=r[n])}),a},e.prototype.onclick=function(t,r,a){var n=this._brushType,o=this._brushMode;a==="clear"?(r.dispatchAction({type:"axisAreaSelect",intervals:[]}),r.dispatchAction({type:"brush",command:"clear",areas:[]})):r.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:a==="keep"?n:n===a?!1:a,brushMode:a==="keep"?o==="multiple"?"single":"multiple":o}})},e.getDefaultOption=function(t){var r={show:!0,type:Ph.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocaleModel().get(["toolbox","brush","title"])};return r},e}(nt);const kh=Lh;function rv(i){i.registerComponentView(Th),i.registerComponentModel(Dh),i.registerPreprocessor(fh),i.registerVisual(i.PRIORITY.VISUAL.BRUSH,Sh),i.registerAction({type:"brush",event:"brush",update:"updateVisual"},function(e,t){t.eachComponent({mainType:"brush",query:e},function(r){r.setAreas(e.areas)})}),i.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},Se),i.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},Se),Bt("brush",kh)}var Rh=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t.layoutMode={type:"box",ignoreSize:!0},t}return e.type="title",e.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(K),Oh=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,r,a){if(this.group.removeAll(),!!t.get("show")){var n=this.group,o=t.getModel("textStyle"),s=t.getModel("subtextStyle"),l=t.get("textAlign"),u=yt(t.get("textBaseline"),t.get("textVerticalAlign")),h=new B({style:X(o,{text:t.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=h.getBoundingRect(),p=t.get("subtext"),v=new B({style:X(s,{text:p,fill:s.getTextColor(),y:c.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),d=t.get("link"),f=t.get("sublink"),g=t.get("triggerEvent",!0);h.silent=!d&&!g,v.silent=!f&&!g,d&&h.on("click",function(){si(d,"_"+t.get("target"))}),f&&v.on("click",function(){si(f,"_"+t.get("subtarget"))}),Z(h).eventData=Z(v).eventData=g?{componentType:"title",componentIndex:t.componentIndex}:null,n.add(h),p&&n.add(v);var y=n.getBoundingRect(),x=t.getBoxLayoutParams();x.width=y.width,x.height=y.height;var m=pt(x,{width:a.getWidth(),height:a.getHeight()},t.get("padding"));l||(l=t.get("left")||t.get("right"),l==="middle"&&(l="center"),l==="right"?m.x+=m.width:l==="center"&&(m.x+=m.width/2)),u||(u=t.get("top")||t.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?m.y+=m.height:u==="middle"&&(m.y+=m.height/2),u=u||"top"),n.x=m.x,n.y=m.y,n.markRedraw();var S={align:l,verticalAlign:u};h.setStyle(S),v.setStyle(S),y=n.getBoundingRect();var b=m.margin,w=t.getItemStyle(["color","opacity"]);w.fill=t.get("backgroundColor");var A=new ot({shape:{x:y.x-b[3],y:y.y-b[0],width:y.width+b[1]+b[3],height:y.height+b[0]+b[2],r:t.get("borderRadius")},style:w,subPixelOptimize:!0,silent:!0});n.add(A)}},e.type="title",e}(Q);function iv(i){i.registerComponentModel(Rh),i.registerComponentView(Oh)}var Vh=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t.layoutMode="box",t}return e.prototype.init=function(t,r,a){this.mergeDefaultAndTheme(t,a),this._initData()},e.prototype.mergeOption=function(t){i.prototype.mergeOption.apply(this,arguments),this._initData()},e.prototype.setCurrentIndex=function(t){t==null&&(t=this.option.currentIndex);var r=this._data.count();this.option.loop?t=(t%r+r)%r:(t>=r&&(t=r-1),t<0&&(t=0)),this.option.currentIndex=t},e.prototype.getCurrentIndex=function(){return this.option.currentIndex},e.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},e.prototype.setPlayState=function(t){this.option.autoPlay=!!t},e.prototype.getPlayState=function(){return!!this.option.autoPlay},e.prototype._initData=function(){var t=this.option,r=t.data||[],a=t.axisType,n=this._names=[],o;a==="category"?(o=[],_(r,function(u,h){var c=jt($o(u),""),p;st(u)?(p=N(u),p.value=h):p=h,o.push(p),n.push(c)})):o=r;var s={category:"ordinal",time:"time",value:"number"}[a]||"number",l=this._data=new Dt([{name:"value",type:s}],this);l.initData(o,n)},e.prototype.getData=function(){return this._data},e.prototype.getCategories=function(){if(this.get("axisType")==="category")return this._names.slice()},e.type="timeline",e.defaultOption={z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},e}(K);const oa=Vh;var Ln=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.type="timeline.slider",e.defaultOption=Ft(oa.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),e}(oa);Pe(Ln,en.prototype);const zh=Ln;var Bh=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.type="timeline",e}(Q);const Eh=Bh;var Nh=function(i){M(e,i);function e(t,r,a,n){var o=i.call(this,t,r,a)||this;return o.type=n||"value",o}return e.prototype.getLabelModel=function(){return this.model.getModel("label")},e.prototype.isHorizontal=function(){return this.model.get("orient")==="horizontal"},e}(_t);const Gh=Nh;var Xe=Math.PI,sa=it(),Hh=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,r){this.api=r},e.prototype.render=function(t,r,a){if(this.model=t,this.api=a,this.ecModel=r,this.group.removeAll(),t.get("show",!0)){var n=this._layout(t,a),o=this._createGroup("_mainGroup"),s=this._createGroup("_labelGroup"),l=this._axis=this._createAxis(n,t);t.formatTooltip=function(u){var h=l.scale.getLabel({value:u});return te("nameValue",{noName:!0,value:h})},_(["AxisLine","AxisTick","Control","CurrentPointer"],function(u){this["_render"+u](n,o,l,t)},this),this._renderAxisLabel(n,s,l,t),this._position(n,t)}this._doPlayStop(),this._updateTicksStatus()},e.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},e.prototype.dispose=function(){this._clearTimer()},e.prototype._layout=function(t,r){var a=t.get(["label","position"]),n=t.get("orient"),o=$h(t,r),s;a==null||a==="auto"?s=n==="horizontal"?o.y+o.height/2=0||s==="+"?"left":"right"},u={horizontal:s>=0||s==="+"?"top":"bottom",vertical:"middle"},h={horizontal:0,vertical:Xe/2},c=n==="vertical"?o.height:o.width,p=t.getModel("controlStyle"),v=p.get("show",!0),d=v?p.get("itemSize"):0,f=v?p.get("itemGap"):0,g=d+f,y=t.get(["label","rotate"])||0;y=y*Xe/180;var x,m,S,b=p.get("position",!0),w=v&&p.get("showPlayBtn",!0),A=v&&p.get("showPrevBtn",!0),C=v&&p.get("showNextBtn",!0),T=0,I=c;b==="left"||b==="bottom"?(w&&(x=[0,0],T+=g),A&&(m=[T,0],T+=g),C&&(S=[I-d,0],I-=g)):(w&&(x=[I-d,0],I-=g),A&&(m=[0,0],T+=g),C&&(S=[I-d,0],I-=g));var D=[T,I];return t.get("inverse")&&D.reverse(),{viewRect:o,mainLength:c,orient:n,rotation:h[n],labelRotation:y,labelPosOpt:s,labelAlign:t.get(["label","align"])||l[n],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||u[n],playPosition:x,prevBtnPosition:m,nextBtnPosition:S,axisExtent:D,controlSize:d,controlGap:f}},e.prototype._position=function(t,r){var a=this._mainGroup,n=this._labelGroup,o=t.viewRect;if(t.orient==="vertical"){var s=Ar(),l=o.x,u=o.y+o.height;xe(s,s,[-l,-u]),wr(s,s,-Xe/2),xe(s,s,[l,u]),o=o.clone(),o.applyTransform(s)}var h=x(o),c=x(a.getBoundingRect()),p=x(n.getBoundingRect()),v=[a.x,a.y],d=[n.x,n.y];d[0]=v[0]=h[0][0];var f=t.labelPosOpt;if(f==null||z(f)){var g=f==="+"?0:1;m(v,c,h,1,g),m(d,p,h,1,1-g)}else{var g=f>=0?0:1;m(v,c,h,1,g),d[1]=v[1]+f}a.setPosition(v),n.setPosition(d),a.rotation=n.rotation=t.rotation,y(a),y(n);function y(S){S.originX=h[0][0]-S.x,S.originY=h[1][0]-S.y}function x(S){return[[S.x,S.x+S.width],[S.y,S.y+S.height]]}function m(S,b,w,A,C){S[A]+=w[A][C]-b[A][C]}},e.prototype._createAxis=function(t,r){var a=r.getData(),n=r.get("axisType"),o=Wh(r,n);o.getTicks=function(){return a.mapArray(["value"],function(u){return{value:u}})};var s=a.getDataExtent("value");o.setExtent(s[0],s[1]),o.calcNiceTicks();var l=new Gh("value",o,t.axisExtent,n);return l.model=r,l},e.prototype._createGroup=function(t){var r=this[t]=new tt;return this.group.add(r),r},e.prototype._renderAxisLine=function(t,r,a,n){var o=a.getExtent();if(n.get(["lineStyle","show"])){var s=new Mt({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:G({lineCap:"round"},n.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});r.add(s);var l=this._progressLine=new Mt({shape:{x1:o[0],x2:this._currentPointer?this._currentPointer.x:o[0],y1:0,y2:0},style:F({lineCap:"round",lineWidth:s.style.lineWidth},n.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});r.add(l)}},e.prototype._renderAxisTick=function(t,r,a,n){var o=this,s=n.getData(),l=a.scale.getTicks();this._tickSymbols=[],_(l,function(u){var h=a.dataToCoord(u.value),c=s.getItemModel(u.value),p=c.getModel("itemStyle"),v=c.getModel(["emphasis","itemStyle"]),d=c.getModel(["progress","itemStyle"]),f={x:h,y:0,onclick:P(o._changeTimeline,o,u.value)},g=la(c,p,r,f);g.ensureState("emphasis").style=v.getItemStyle(),g.ensureState("progress").style=d.getItemStyle(),Et(g);var y=Z(g);c.get("tooltip")?(y.dataIndex=u.value,y.dataModel=n):y.dataIndex=y.dataModel=null,o._tickSymbols.push(g)})},e.prototype._renderAxisLabel=function(t,r,a,n){var o=this,s=a.getLabelModel();if(s.get("show")){var l=n.getData(),u=a.getViewLabels();this._tickLabels=[],_(u,function(h){var c=h.tickValue,p=l.getItemModel(c),v=p.getModel("label"),d=p.getModel(["emphasis","label"]),f=p.getModel(["progress","label"]),g=a.dataToCoord(h.tickValue),y=new B({x:g,y:0,rotation:t.labelRotation-t.rotation,onclick:P(o._changeTimeline,o,c),silent:!1,style:X(v,{text:h.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});y.ensureState("emphasis").style=X(d),y.ensureState("progress").style=X(f),r.add(y),Et(y),sa(y).dataIndex=c,o._tickLabels.push(y)})}},e.prototype._renderControl=function(t,r,a,n){var o=t.controlSize,s=t.rotation,l=n.getModel("controlStyle").getItemStyle(),u=n.getModel(["emphasis","controlStyle"]).getItemStyle(),h=n.getPlayState(),c=n.get("inverse",!0);p(t.nextBtnPosition,"next",P(this._changeTimeline,this,c?"-":"+")),p(t.prevBtnPosition,"prev",P(this._changeTimeline,this,c?"+":"-")),p(t.playPosition,h?"stop":"play",P(this._handlePlayClick,this,!h),!0);function p(v,d,f,g){if(v){var y=nr(yt(n.get(["controlStyle",d+"BtnSize"]),o),o),x=[0,-y/2,y,y],m=Fh(n,d+"Icon",x,{x:v[0],y:v[1],originX:o/2,originY:0,rotation:g?-s:0,rectHover:!0,style:l,onclick:f});m.ensureState("emphasis").style=u,r.add(m),Et(m)}}},e.prototype._renderCurrentPointer=function(t,r,a,n){var o=n.getData(),s=n.getCurrentIndex(),l=o.getItemModel(s).getModel("checkpointStyle"),u=this,h={onCreate:function(c){c.draggable=!0,c.drift=P(u._handlePointerDrag,u),c.ondragend=P(u._handlePointerDragend,u),ua(c,u._progressLine,s,a,n,!0)},onUpdate:function(c){ua(c,u._progressLine,s,a,n)}};this._currentPointer=la(l,l,this._mainGroup,{},this._currentPointer,h)},e.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},e.prototype._handlePointerDrag=function(t,r,a){this._clearTimer(),this._pointerChangeTimeline([a.offsetX,a.offsetY])},e.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},e.prototype._pointerChangeTimeline=function(t,r){var a=this._toAxisCoord(t)[0],n=this._axis,o=ct(n.getExtent().slice());a>o[1]&&(a=o[1]),a=0&&(o[n]=+o[n].toFixed(p)),[o,c]}var Ke={min:V(pe,"min"),max:V(pe,"max"),average:V(pe,"average"),median:V(pe,"median")};function re(i,e){if(e){var t=i.getData(),r=i.coordinateSystem,a=r&&r.dimensions;if(!jh(e)&&!L(e.coord)&&L(a)){var n=Rn(e,t,r,i);if(e=N(e),e.type&&Ke[e.type]&&n.baseAxis&&n.valueAxis){var o=et(a,n.baseAxis.dim),s=et(a,n.valueAxis.dim),l=Ke[e.type](t,n.baseDataDim,n.valueDataDim,o,s);e.coord=l[0],e.value=l[1]}else e.coord=[e.xAxis!=null?e.xAxis:e.radiusAxis,e.yAxis!=null?e.yAxis:e.angleAxis]}if(e.coord==null||!L(a))e.coord=[];else for(var u=e.coord,h=0;h<2;h++)Ke[u[h]]&&(u[h]=Ur(t,t.mapDimension(a[h]),u[h]));return e}}function Rn(i,e,t,r){var a={};return i.valueIndex!=null||i.valueDim!=null?(a.valueDataDim=i.valueIndex!=null?e.getDimension(i.valueIndex):i.valueDim,a.valueAxis=t.getAxis(Jh(r,a.valueDataDim)),a.baseAxis=t.getOtherAxis(a.valueAxis),a.baseDataDim=e.mapDimension(a.baseAxis.dim)):(a.baseAxis=r.getBaseAxis(),a.valueAxis=t.getOtherAxis(a.baseAxis),a.baseDataDim=e.mapDimension(a.baseAxis.dim),a.valueDataDim=e.mapDimension(a.valueAxis.dim)),a}function Jh(i,e){var t=i.getData().getDimensionInfo(e);return t&&t.coordDim}function ie(i,e){return i&&i.containData&&e.coord&&!gr(e)?i.containData(e.coord):!0}function Qh(i,e,t){return i&&i.containZone&&e.coord&&t.coord&&!gr(e)&&!gr(t)?i.containZone(e.coord,t.coord):!0}function On(i,e){return i?function(t,r,a,n){var o=n<2?t.coord&&t.coord[n]:t.value;return we(o,e[n])}:function(t,r,a,n){return we(t.value,e[n])}}function Ur(i,e,t){if(t==="average"){var r=0,a=0;return i.each(e,function(n,o){isNaN(n)||(r+=n,a++)}),r/a}else return t==="median"?i.getMedian(e):i.getDataExtent(e)[t==="max"?1:0]}var qe=it(),tc=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(){this.markerGroupMap=J()},e.prototype.render=function(t,r,a){var n=this,o=this.markerGroupMap;o.each(function(s){qe(s).keep=!1}),r.eachSeries(function(s){var l=bt.getMarkerModelFromSeries(s,n.type);l&&n.renderSeries(s,l,r,a)}),o.each(function(s){!qe(s).keep&&n.group.remove(s.group)})},e.prototype.markKeep=function(t){qe(t).keep=!0},e.prototype.toggleBlurSeries=function(t,r){var a=this;_(t,function(n){var o=bt.getMarkerModelFromSeries(n,a.type);if(o){var s=o.getData();s.eachItemGraphicEl(function(l){l&&(r?jo(l):Jo(l))})}})},e.type="marker",e}(Q);const Xr=tc;function ca(i,e,t){var r=e.coordinateSystem;i.each(function(a){var n=i.getItemModel(a),o,s=H(n.get("x"),t.getWidth()),l=H(n.get("y"),t.getHeight());if(!isNaN(s)&&!isNaN(l))o=[s,l];else if(e.getMarkerPosition)o=e.getMarkerPosition(i.getValues(i.dimensions,a));else if(r){var u=i.get(r.dimensions[0],a),h=i.get(r.dimensions[1],a);o=r.dataToPoint([u,h])}isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),i.setItemLayout(a,o)})}var ec=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.updateTransform=function(t,r,a){r.eachSeries(function(n){var o=bt.getMarkerModelFromSeries(n,"markPoint");o&&(ca(o.getData(),n,a),this.markerGroupMap.get(n.id).updateLayout())},this)},e.prototype.renderSeries=function(t,r,a,n){var o=t.coordinateSystem,s=t.id,l=t.getData(),u=this.markerGroupMap,h=u.get(s)||u.set(s,new no),c=rc(o,t,r);r.setData(c),ca(r.getData(),t,n),c.each(function(p){var v=c.getItemModel(p),d=v.getShallow("symbol"),f=v.getShallow("symbolSize"),g=v.getShallow("symbolRotate"),y=v.getShallow("symbolOffset"),x=v.getShallow("symbolKeepAspect");if(E(d)||E(f)||E(g)||E(y)){var m=r.getRawValue(p),S=r.getDataParams(p);E(d)&&(d=d(m,S)),E(f)&&(f=f(m,S)),E(g)&&(g=g(m,S)),E(y)&&(y=y(m,S))}var b=v.getModel("itemStyle").getItemStyle(),w=Oe(l,"color");b.fill||(b.fill=w),c.setItemVisual(p,{symbol:d,symbolSize:f,symbolRotate:g,symbolOffset:y,symbolKeepAspect:x,style:b})}),h.updateData(c),this.group.add(h.group),c.eachItemGraphicEl(function(p){p.traverse(function(v){Z(v).dataModel=r})}),this.markKeep(h),h.group.silent=r.get("silent")||t.get("silent")},e.type="markPoint",e}(Xr);function rc(i,e,t){var r;i?r=k(i&&i.dimensions,function(s){var l=e.getData().getDimensionInfo(e.getData().mapDimension(s))||{};return G(G({},l),{name:s,ordinalMeta:null})}):r=[{name:"value",type:"float"}];var a=new Dt(r,t),n=k(t.get("data"),V(re,e));i&&(n=kt(n,V(ie,i)));var o=On(!!i,r);return a.initData(n,null,o),a}const ic=ec;function nv(i){i.registerComponentModel(qh),i.registerComponentView(ic),i.registerPreprocessor(function(e){Yr(e.series,"markPoint")&&(e.markPoint=e.markPoint||{})})}var ac=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.createMarkerModelFromSeries=function(t,r,a){return new e(t,r,a)},e.type="markLine",e.defaultOption={z:5,symbol:["circle","arrow"],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(bt);const nc=ac;var ve=it(),oc=function(i,e,t,r){var a=i.getData(),n;if(L(r))n=r;else{var o=r.type;if(o==="min"||o==="max"||o==="average"||o==="median"||r.xAxis!=null||r.yAxis!=null){var s=void 0,l=void 0;if(r.yAxis!=null||r.xAxis!=null)s=e.getAxis(r.yAxis!=null?"y":"x"),l=Tt(r.yAxis,r.xAxis);else{var u=Rn(r,a,e,i);s=u.valueAxis;var h=Qo(a,u.valueDataDim);l=Ur(a,h,o)}var c=s.dim==="x"?0:1,p=1-c,v=N(r),d={coord:[]};v.type=null,v.coord=[],v.coord[p]=-1/0,d.coord[p]=1/0;var f=t.get("precision");f>=0&&Tr(l)&&(l=+l.toFixed(Math.min(f,20))),v.coord[c]=d.coord[c]=l,n=[v,d,{type:o,valueIndex:r.valueIndex,value:l}]}else n=[]}var g=[re(i,n[0]),re(i,n[1]),G({},n[2])];return g[2].type=g[2].type||null,Y(g[2],g[0]),Y(g[2],g[1]),g};function Me(i){return!isNaN(i)&&!isFinite(i)}function pa(i,e,t,r){var a=1-i,n=r.dimensions[i];return Me(e[a])&&Me(t[a])&&e[i]===t[i]&&r.getAxis(n).containData(e[i])}function sc(i,e){if(i.type==="cartesian2d"){var t=e[0].coord,r=e[1].coord;if(t&&r&&(pa(1,t,r,i)||pa(0,t,r,i)))return!0}return ie(i,e[0])&&ie(i,e[1])}function je(i,e,t,r,a){var n=r.coordinateSystem,o=i.getItemModel(e),s,l=H(o.get("x"),a.getWidth()),u=H(o.get("y"),a.getHeight());if(!isNaN(l)&&!isNaN(u))s=[l,u];else{if(r.getMarkerPosition)s=r.getMarkerPosition(i.getValues(i.dimensions,e));else{var h=n.dimensions,c=i.get(h[0],e),p=i.get(h[1],e);s=n.dataToPoint([c,p])}if(br(n,"cartesian2d")){var v=n.getAxis("x"),d=n.getAxis("y"),h=n.dimensions;Me(i.get(h[0],e))?s[0]=v.toGlobalCoord(v.getExtent()[t?0:1]):Me(i.get(h[1],e))&&(s[1]=d.toGlobalCoord(d.getExtent()[t?0:1]))}isNaN(l)||(s[0]=l),isNaN(u)||(s[1]=u)}i.setItemLayout(e,s)}var lc=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.updateTransform=function(t,r,a){r.eachSeries(function(n){var o=bt.getMarkerModelFromSeries(n,"markLine");if(o){var s=o.getData(),l=ve(o).from,u=ve(o).to;l.each(function(h){je(l,h,!0,n,a),je(u,h,!1,n,a)}),s.each(function(h){s.setItemLayout(h,[l.getItemLayout(h),u.getItemLayout(h)])}),this.markerGroupMap.get(n.id).updateLayout()}},this)},e.prototype.renderSeries=function(t,r,a,n){var o=t.coordinateSystem,s=t.id,l=t.getData(),u=this.markerGroupMap,h=u.get(s)||u.set(s,new oo);this.group.add(h.group);var c=uc(o,t,r),p=c.from,v=c.to,d=c.line;ve(r).from=p,ve(r).to=v,r.setData(d);var f=r.get("symbol"),g=r.get("symbolSize"),y=r.get("symbolRotate"),x=r.get("symbolOffset");L(f)||(f=[f,f]),L(g)||(g=[g,g]),L(y)||(y=[y,y]),L(x)||(x=[x,x]),c.from.each(function(S){m(p,S,!0),m(v,S,!1)}),d.each(function(S){var b=d.getItemModel(S).getModel("lineStyle").getLineStyle();d.setItemLayout(S,[p.getItemLayout(S),v.getItemLayout(S)]),b.stroke==null&&(b.stroke=p.getItemVisual(S,"style").fill),d.setItemVisual(S,{fromSymbolKeepAspect:p.getItemVisual(S,"symbolKeepAspect"),fromSymbolOffset:p.getItemVisual(S,"symbolOffset"),fromSymbolRotate:p.getItemVisual(S,"symbolRotate"),fromSymbolSize:p.getItemVisual(S,"symbolSize"),fromSymbol:p.getItemVisual(S,"symbol"),toSymbolKeepAspect:v.getItemVisual(S,"symbolKeepAspect"),toSymbolOffset:v.getItemVisual(S,"symbolOffset"),toSymbolRotate:v.getItemVisual(S,"symbolRotate"),toSymbolSize:v.getItemVisual(S,"symbolSize"),toSymbol:v.getItemVisual(S,"symbol"),style:b})}),h.updateData(d),c.line.eachItemGraphicEl(function(S){Z(S).dataModel=r,S.traverse(function(b){Z(b).dataModel=r})});function m(S,b,w){var A=S.getItemModel(b);je(S,b,w,t,n);var C=A.getModel("itemStyle").getItemStyle();C.fill==null&&(C.fill=Oe(l,"color")),S.setItemVisual(b,{symbolKeepAspect:A.get("symbolKeepAspect"),symbolOffset:yt(A.get("symbolOffset",!0),x[w?0:1]),symbolRotate:yt(A.get("symbolRotate",!0),y[w?0:1]),symbolSize:yt(A.get("symbolSize"),g[w?0:1]),symbol:yt(A.get("symbol",!0),f[w?0:1]),style:C})}this.markKeep(h),h.group.silent=r.get("silent")||t.get("silent")},e.type="markLine",e}(Xr);function uc(i,e,t){var r;i?r=k(i&&i.dimensions,function(u){var h=e.getData().getDimensionInfo(e.getData().mapDimension(u))||{};return G(G({},h),{name:u,ordinalMeta:null})}):r=[{name:"value",type:"float"}];var a=new Dt(r,t),n=new Dt(r,t),o=new Dt([],t),s=k(t.get("data"),V(oc,e,i,t));i&&(s=kt(s,V(sc,i)));var l=On(!!i,r);return a.initData(k(s,function(u){return u[0]}),null,l),n.initData(k(s,function(u){return u[1]}),null,l),o.initData(k(s,function(u){return u[2]})),o.hasItemOption=!0,{from:a,to:n,line:o}}const hc=lc;function ov(i){i.registerComponentModel(nc),i.registerComponentView(hc),i.registerPreprocessor(function(e){Yr(e.series,"markLine")&&(e.markLine=e.markLine||{})})}var cc=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.createMarkerModelFromSeries=function(t,r,a){return new e(t,r,a)},e.type="markArea",e.defaultOption={z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(bt);const pc=cc;var de=it(),vc=function(i,e,t,r){var a=r[0],n=r[1];if(!(!a||!n)){var o=re(i,a),s=re(i,n),l=o.coord,u=s.coord;l[0]=Tt(l[0],-1/0),l[1]=Tt(l[1],-1/0),u[0]=Tt(u[0],1/0),u[1]=Tt(u[1],1/0);var h=co([{},o,s]);return h.coord=[o.coord,s.coord],h.x0=o.x,h.y0=o.y,h.x1=s.x,h.y1=s.y,h}};function Ie(i){return!isNaN(i)&&!isFinite(i)}function va(i,e,t,r){var a=1-i;return Ie(e[a])&&Ie(t[a])}function dc(i,e){var t=e.coord[0],r=e.coord[1],a={coord:t,x:e.x0,y:e.y0},n={coord:r,x:e.x1,y:e.y1};return br(i,"cartesian2d")?t&&r&&(va(1,t,r)||va(0,t,r))?!0:Qh(i,a,n):ie(i,a)||ie(i,n)}function da(i,e,t,r,a){var n=r.coordinateSystem,o=i.getItemModel(e),s,l=H(o.get(t[0]),a.getWidth()),u=H(o.get(t[1]),a.getHeight());if(!isNaN(l)&&!isNaN(u))s=[l,u];else{if(r.getMarkerPosition){var h=i.getValues(["x0","y0"],e),c=i.getValues(["x1","y1"],e),p=n.clampData(h),v=n.clampData(c),d=[];t[0]==="x0"?d[0]=p[0]>v[0]?c[0]:h[0]:d[0]=p[0]>v[0]?h[0]:c[0],t[1]==="y0"?d[1]=p[1]>v[1]?c[1]:h[1]:d[1]=p[1]>v[1]?h[1]:c[1],s=r.getMarkerPosition(d,t,!0)}else{var f=i.get(t[0],e),g=i.get(t[1],e),y=[f,g];n.clampData&&n.clampData(y,y),s=n.dataToPoint(y,!0)}if(br(n,"cartesian2d")){var x=n.getAxis("x"),m=n.getAxis("y"),f=i.get(t[0],e),g=i.get(t[1],e);Ie(f)?s[0]=x.toGlobalCoord(x.getExtent()[t[0]==="x0"?0:1]):Ie(g)&&(s[1]=m.toGlobalCoord(m.getExtent()[t[1]==="y0"?0:1]))}isNaN(l)||(s[0]=l),isNaN(u)||(s[1]=u)}return s}var fa=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],fc=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.updateTransform=function(t,r,a){r.eachSeries(function(n){var o=bt.getMarkerModelFromSeries(n,"markArea");if(o){var s=o.getData();s.each(function(l){var u=k(fa,function(c){return da(s,l,c,n,a)});s.setItemLayout(l,u);var h=s.getItemGraphicEl(l);h.setShape("points",u)})}},this)},e.prototype.renderSeries=function(t,r,a,n){var o=t.coordinateSystem,s=t.id,l=t.getData(),u=this.markerGroupMap,h=u.get(s)||u.set(s,{group:new tt});this.group.add(h.group),this.markKeep(h);var c=gc(o,t,r);r.setData(c),c.each(function(p){var v=k(fa,function(C){return da(c,p,C,t,n)}),d=o.getAxis("x").scale,f=o.getAxis("y").scale,g=d.getExtent(),y=f.getExtent(),x=[d.parse(c.get("x0",p)),d.parse(c.get("x1",p))],m=[f.parse(c.get("y0",p)),f.parse(c.get("y1",p))];ct(x),ct(m);var S=!(g[0]>x[1]||g[1]m[1]||y[1]=0},e.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(K);const yr=xc;var Ot=V,mr=_,fe=tt,Sc=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t.newlineDisabled=!1,t}return e.prototype.init=function(){this.group.add(this._contentGroup=new fe),this.group.add(this._selectorGroup=new fe),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,r,a){var n=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!t.get("show",!0)){var o=t.get("align"),s=t.get("orient");(!o||o==="auto")&&(o=t.get("left")==="right"&&s==="vertical"?"right":"left");var l=t.get("selector",!0),u=t.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,t,r,a,l,s,u);var h=t.getBoxLayoutParams(),c={width:a.getWidth(),height:a.getHeight()},p=t.get("padding"),v=pt(h,c,p),d=this.layoutInner(t,o,v,n,l,u),f=pt(F({width:d.width,height:d.height},h),c,p);this.group.x=f.x-d.x,this.group.y=f.y-d.y,this.group.markRedraw(),this.group.add(this._backgroundEl=_n(d,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,r,a,n,o,s,l){var u=this.getContentGroup(),h=J(),c=r.get("selectedMode"),p=[];a.eachRawSeries(function(v){!v.get("legendHoverLink")&&p.push(v.id)}),mr(r.getData(),function(v,d){var f=v.get("name");if(!this.newlineDisabled&&(f===""||f===` +`)){var g=new fe;g.newline=!0,u.add(g);return}var y=a.getSeriesByName(f)[0];if(!h.get(f))if(y){var x=y.getData(),m=x.getVisual("legendLineStyle")||{},S=x.getVisual("legendIcon"),b=x.getVisual("style"),w=this._createItem(y,f,d,v,r,t,m,b,S,c,n);w.on("click",Ot(ga,f,null,n,p)).on("mouseover",Ot(xr,y.name,null,n,p)).on("mouseout",Ot(Sr,y.name,null,n,p)),h.set(f,!0)}else a.eachRawSeries(function(A){if(!h.get(f)&&A.legendVisualProvider){var C=A.legendVisualProvider;if(!C.containName(f))return;var T=C.indexOfName(f),I=C.getItemVisual(T,"style"),D=C.getItemVisual(T,"legendIcon"),R=po(I.fill);R&&R[3]===0&&(R[3]=.2,I=G(G({},I),{fill:vo(R,"rgba")}));var O=this._createItem(A,f,d,v,r,t,{},I,D,c,n);O.on("click",Ot(ga,null,f,n,p)).on("mouseover",Ot(xr,null,f,n,p)).on("mouseout",Ot(Sr,null,f,n,p)),h.set(f,!0)}},this)},this),o&&this._createSelector(o,r,n,s,l)},e.prototype._createSelector=function(t,r,a,n,o){var s=this.getSelectorGroup();mr(t,function(u){var h=u.type,c=new B({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){a.dispatchAction({type:h==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(c);var p=r.getModel("selectorLabel"),v=r.getModel(["emphasis","selectorLabel"]);rn(c,{normal:p,emphasis:v},{defaultText:u.title}),Et(c)})},e.prototype._createItem=function(t,r,a,n,o,s,l,u,h,c,p){var v=t.visualDrawType,d=o.get("itemWidth"),f=o.get("itemHeight"),g=o.isSelected(r),y=n.get("symbolRotate"),x=n.get("symbolKeepAspect"),m=n.get("icon");h=m||h||"roundRect";var S=bc(h,n,l,u,v,g,p),b=new fe,w=n.getModel("textStyle");if(E(t.getLegendIcon)&&(!m||m==="inherit"))b.add(t.getLegendIcon({itemWidth:d,itemHeight:f,icon:h,iconRotate:y,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:x}));else{var A=m==="inherit"&&t.getData().getVisual("symbol")?y==="inherit"?t.getData().getVisual("symbolRotate"):y:0;b.add(_c({itemWidth:d,itemHeight:f,icon:h,iconRotate:A,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:x}))}var C=s==="left"?d+5:-5,T=s,I=o.get("formatter"),D=r;z(I)&&I?D=I.replace("{name}",r??""):E(I)&&(D=I(r));var R=n.get("inactiveColor");b.add(new B({style:X(w,{text:D,x:C,y:f/2,fill:g?w.getTextColor():R,align:T,verticalAlign:"middle"})}));var O=new ot({shape:b.getBoundingRect(),invisible:!0}),$=n.getModel("tooltip");return $.get("show")&&Dr({el:O,componentModel:o,itemName:r,itemTooltipOption:$.option}),b.add(O),b.eachChild(function(lt){lt.silent=!0}),O.silent=!c,this.getContentGroup().add(b),Et(b),b.__legendDataIndex=a,b},e.prototype.layoutInner=function(t,r,a,n,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();It(t.get("orient"),l,t.get("itemGap"),a.width,a.height);var h=l.getBoundingRect(),c=[-h.x,-h.y];if(u.markRedraw(),l.markRedraw(),o){It("horizontal",u,t.get("selectorItemGap",!0));var p=u.getBoundingRect(),v=[-p.x,-p.y],d=t.get("selectorButtonGap",!0),f=t.getOrient().index,g=f===0?"width":"height",y=f===0?"height":"width",x=f===0?"y":"x";s==="end"?v[f]+=h[g]+d:c[f]+=p[g]+d,v[1-f]+=h[y]/2-p[y]/2,u.x=v[0],u.y=v[1],l.x=c[0],l.y=c[1];var m={x:0,y:0};return m[g]=h[g]+d+p[g],m[y]=Math.max(h[y],p[y]),m[x]=Math.min(0,p[x]+v[1-f]),m}else return l.x=c[0],l.y=c[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(Q);function bc(i,e,t,r,a,n,o){function s(g,y){g.lineWidth==="auto"&&(g.lineWidth=y.lineWidth>0?2:0),mr(g,function(x,m){g[m]==="inherit"&&(g[m]=y[m])})}var l=e.getModel("itemStyle"),u=l.getItemStyle(),h=i.lastIndexOf("empty",0)===0?"fill":"stroke",c=l.getShallow("decal");u.decal=!c||c==="inherit"?r.decal:as(c,o),u.fill==="inherit"&&(u.fill=r[a]),u.stroke==="inherit"&&(u.stroke=r[h]),u.opacity==="inherit"&&(u.opacity=(a==="fill"?r:t).opacity),s(u,r);var p=e.getModel("lineStyle"),v=p.getLineStyle();if(s(v,t),u.fill==="auto"&&(u.fill=r.fill),u.stroke==="auto"&&(u.stroke=r.fill),v.stroke==="auto"&&(v.stroke=r.fill),!n){var d=e.get("inactiveBorderWidth"),f=u[h];u.lineWidth=d==="auto"?r.lineWidth>0&&f?2:0:u.lineWidth,u.fill=e.get("inactiveColor"),u.stroke=e.get("inactiveBorderColor"),v.stroke=p.get("inactiveColor"),v.lineWidth=p.get("inactiveWidth")}return{itemStyle:u,lineStyle:v}}function _c(i){var e=i.icon||"roundRect",t=Lt(e,0,0,i.itemWidth,i.itemHeight,i.itemStyle.fill,i.symbolKeepAspect);return t.setStyle(i.itemStyle),t.rotation=(i.iconRotate||0)*Math.PI/180,t.setOrigin([i.itemWidth/2,i.itemHeight/2]),e.indexOf("empty")>-1&&(t.style.stroke=t.style.fill,t.style.fill="#fff",t.style.lineWidth=2),t}function ga(i,e,t,r){Sr(i,e,t,r),t.dispatchAction({type:"legendToggleSelect",name:i??e}),xr(i,e,t,r)}function Vn(i){for(var e=i.getZr().storage.getDisplayList(),t,r=0,a=e.length;ra[o],g=[-v.x,-v.y];r||(g[n]=h[u]);var y=[0,0],x=[-d.x,-d.y],m=yt(t.get("pageButtonGap",!0),t.get("itemGap",!0));if(f){var S=t.get("pageButtonPosition",!0);S==="end"?x[n]+=a[o]-d[o]:y[n]+=d[o]+m}x[1-n]+=v[s]/2-d[s]/2,h.setPosition(g),c.setPosition(y),p.setPosition(x);var b={x:0,y:0};if(b[o]=f?a[o]:v[o],b[s]=Math.max(v[s],d[s]),b[l]=Math.min(0,d[l]+x[1-n]),c.__rectSize=a[o],f){var w={x:0,y:0};w[o]=Math.max(a[o]-d[o]-m,0),w[s]=b[s],c.setClipPath(new ot({shape:w})),c.__rectSize=w[o]}else p.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var A=this._getPageInfo(t);return A.pageIndex!=null&&ke(h,{x:A.contentPosition[0],y:A.contentPosition[1]},f?t:null),this._updatePageInfoView(t,A),b},e.prototype._pageGo=function(t,r,a){var n=this._getPageInfo(r)[t];n!=null&&a.dispatchAction({type:"legendScroll",scrollDataIndex:n,legendId:r.id})},e.prototype._updatePageInfoView=function(t,r){var a=this._controllerGroup;_(["pagePrev","pageNext"],function(h){var c=h+"DataIndex",p=r[c]!=null,v=a.childOfName(h);v&&(v.setStyle("fill",p?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),v.cursor=p?"pointer":"default")});var n=a.childOfName("pageText"),o=t.get("pageFormatter"),s=r.pageIndex,l=s!=null?s+1:0,u=r.pageCount;n&&o&&n.setStyle("text",z(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},e.prototype._getPageInfo=function(t){var r=t.get("scrollDataIndex",!0),a=this.getContentGroup(),n=this._containerGroup.__rectSize,o=t.getOrient().index,s=Je[o],l=Qe[o],u=this._findTargetItemIndex(r),h=a.children(),c=h[u],p=h.length,v=p?1:0,d={contentPosition:[a.x,a.y],pageCount:v,pageIndex:v-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return d;var f=S(c);d.contentPosition[o]=-f.s;for(var g=u+1,y=f,x=f,m=null;g<=p;++g)m=S(h[g]),(!m&&x.e>y.s+n||m&&!b(m,y.s))&&(x.i>y.i?y=x:y=m,y&&(d.pageNextDataIndex==null&&(d.pageNextDataIndex=y.i),++d.pageCount)),x=m;for(var g=u-1,y=f,x=f,m=null;g>=-1;--g)m=S(h[g]),(!m||!b(x,m.s))&&y.i=A&&w.s<=A+n}},e.prototype._findTargetItemIndex=function(t){if(!this._showController)return 0;var r,a=this.getContentGroup(),n;return a.eachChild(function(o,s){var l=o.__legendDataIndex;n==null&&l!=null&&(n=s),l===t&&(r=s)}),r??n},e.type="legend.scroll",e}(zn);const Ic=Mc;function Dc(i){i.registerAction("legendScroll","legendscroll",function(e,t){var r=e.scrollDataIndex;r!=null&&t.eachComponent({mainType:"legend",subType:"scroll",query:e},function(a){a.setScrollDataIndex(r)})})}function Pc(i){rt(Bn),i.registerComponentModel(Tc),i.registerComponentView(Ic),Dc(i)}function lv(i){rt(Bn),rt(Pc)}var Lc=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.type="dataZoom.inside",e.defaultOption=Ft(ee.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(ee);const kc=Lc;var Kr=it();function Rc(i,e,t){Kr(i).coordSysRecordMap.each(function(r){var a=r.dataZoomInfoMap.get(e.uid);a&&(a.getRange=t)})}function Oc(i,e){for(var t=Kr(i).coordSysRecordMap,r=t.keys(),a=0;ar[t+e]&&(e=s),a=a&&o.get("preventDefaultMouseMove",!0)}),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!a}}}function Nc(i){i.registerProcessor(i.PRIORITY.PROCESSOR.FILTER,function(e,t){var r=Kr(t),a=r.coordSysRecordMap||(r.coordSysRecordMap=J());a.each(function(n){n.dataZoomInfoMap=null}),e.eachComponent({mainType:"dataZoom",subType:"inside"},function(n){var o=xn(n);_(o.infoList,function(s){var l=s.model.uid,u=a.get(l)||a.set(l,Vc(t,s.model)),h=u.dataZoomInfoMap||(u.dataZoomInfoMap=J());h.set(n.uid,{dzReferCoordSysInfo:s,model:n,getRange:null})})}),a.each(function(n){var o=n.controller,s,l=n.dataZoomInfoMap;if(l){var u=l.keys()[0];u!=null&&(s=l.get(u))}if(!s){En(a,n);return}var h=Ec(l);o.enable(h.controlType,h.opt),o.setPointerChecker(n.containsPoint),ae(n,"dispatchAction",s.model.get("throttle",!0),"fixRate")})})}var Gc=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type="dataZoom.inside",t}return e.prototype.render=function(t,r,a){if(i.prototype.render.apply(this,arguments),t.noTarget()){this._clear();return}this.range=t.getPercentRange(),Rc(a,t,{pan:P(tr.pan,this),zoom:P(tr.zoom,this),scrollMove:P(tr.scrollMove,this)})},e.prototype.dispose=function(){this._clear(),i.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){Oc(this.api,this.dataZoomModel),this.range=null},e.type="dataZoom.inside",e}(Gr),tr={zoom:function(i,e,t,r){var a=this.range,n=a.slice(),o=i.axisModels[0];if(o){var s=er[e](null,[r.originX,r.originY],o,t,i),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(n[1]-n[0])+n[0],u=Math.max(1/r.scale,0);n[0]=(n[0]-l)*u+l,n[1]=(n[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();if($t(0,n,[0,100],0,h.minSpan,h.maxSpan),this.range=n,a[0]!==n[0]||a[1]!==n[1])return n}},pan:xa(function(i,e,t,r,a,n){var o=er[r]([n.oldX,n.oldY],[n.newX,n.newY],e,a,t);return o.signal*(i[1]-i[0])*o.pixel/o.pixelLength}),scrollMove:xa(function(i,e,t,r,a,n){var o=er[r]([0,0],[n.scrollDelta,n.scrollDelta],e,a,t);return o.signal*(i[1]-i[0])*n.scrollDelta})};function xa(i){return function(e,t,r,a){var n=this.range,o=n.slice(),s=e.axisModels[0];if(s){var l=i(o,s,e,t,r,a);if($t(l,o,[0,100],"all"),this.range=o,n[0]!==o[0]||n[1]!==o[1])return o}}}var er={grid:function(i,e,t,r,a){var n=t.axis,o={},s=a.model.coordinateSystem.getRect();return i=i||[0,0],n.dim==="x"?(o.pixel=e[0]-i[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=n.inverse?1:-1):(o.pixel=e[1]-i[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=n.inverse?-1:1),o},polar:function(i,e,t,r,a){var n=t.axis,o={},s=a.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return i=i?s.pointToCoord(i):[0,0],e=s.pointToCoord(e),t.mainType==="radiusAxis"?(o.pixel=e[0]-i[0],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=n.inverse?1:-1):(o.pixel=e[1]-i[1],o.pixelLength=u[1]-u[0],o.pixelStart=u[0],o.signal=n.inverse?-1:1),o},singleAxis:function(i,e,t,r,a){var n=t.axis,o=a.model.coordinateSystem.getRect(),s={};return i=i||[0,0],n.orient==="horizontal"?(s.pixel=e[0]-i[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=n.inverse?1:-1):(s.pixel=e[1]-i[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=n.inverse?-1:1),s}};const Hc=Gc;function Wc(i){Hr(i),i.registerComponentModel(kc),i.registerComponentView(Hc),Nc(i)}var $c=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=Ft(ee.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(ee);const Fc=$c;var Kt=ot,Sa=7,Zc=1,rr=30,Yc=7,qt="horizontal",ba="vertical",Uc=5,Xc=["line","bar","candlestick","scatter"],Kc={easing:"cubicOut",duration:100,delay:0},qc=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t._displayables={},t}return e.prototype.init=function(t,r){this.api=r,this._onBrush=P(this._onBrush,this),this._onBrushEnd=P(this._onBrushEnd,this)},e.prototype.render=function(t,r,a,n){if(i.prototype.render.apply(this,arguments),ae(this,"_dispatchZoomAction",t.get("throttle"),"fixRate"),this._orient=t.getOrient(),t.get("show")===!1){this.group.removeAll();return}if(t.noTarget()){this._clear(),this.group.removeAll();return}(!n||n.type!=="dataZoom"||n.from!==this.uid)&&this._buildView(),this._updateView()},e.prototype.dispose=function(){this._clear(),i.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){be(this,"_dispatchZoomAction");var t=this.api.getZr();t.off("mousemove",this._onBrush),t.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var r=this._displayables.sliderGroup=new tt;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(r),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,r=this.api,a=t.get("brushSelect"),n=a?Yc:0,o=this._findCoordRect(),s={width:r.getWidth(),height:r.getHeight()},l=this._orient===qt?{right:s.width-o.x-o.width,top:s.height-rr-Sa-n,width:o.width,height:rr}:{right:Sa,top:o.y,width:rr,height:o.height},u=Mr(t.option);_(["right","top","width","height"],function(c){u[c]==="ph"&&(u[c]=l[c])});var h=pt(u,s);this._location={x:h.x,y:h.y},this._size=[h.width,h.height],this._orient===ba&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,r=this._location,a=this._orient,n=this.dataZoomModel.getFirstTargetAxisModel(),o=n&&n.get("inverse"),s=this._displayables.sliderGroup,l=(this._dataShadowInfo||{}).otherAxisInverse;s.attr(a===qt&&!o?{scaleY:l?1:-1,scaleX:1}:a===qt&&o?{scaleY:l?1:-1,scaleX:-1}:a===ba&&!o?{scaleY:l?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:l?-1:1,scaleX:-1,rotation:Math.PI/2});var u=t.getBoundingRect([s]);t.x=r.x-u.x,t.y=r.y-u.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,r=this._size,a=this._displayables.sliderGroup,n=t.get("brushSelect");a.add(new Kt({silent:!0,shape:{x:0,y:0,width:r[0],height:r[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var o=new Kt({shape:{x:0,y:0,width:r[0],height:r[1]},style:{fill:"transparent"},z2:0,onclick:P(this._onClickPanel,this)}),s=this.api.getZr();n?(o.on("mousedown",this._onBrushStart,this),o.cursor="crosshair",s.on("mousemove",this._onBrush),s.on("mouseup",this._onBrushEnd)):(s.off("mousemove",this._onBrush),s.off("mouseup",this._onBrushEnd)),a.add(o)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],!t)return;var r=this._size,a=this._shadowSize||[],n=t.series,o=n.getRawData(),s=n.getShadowDim&&n.getShadowDim(),l=s&&o.getDimensionInfo(s)?n.getShadowDim():t.otherDim;if(l==null)return;var u=this._shadowPolygonPts,h=this._shadowPolylinePts;if(o!==this._shadowData||l!==this._shadowDim||r[0]!==a[0]||r[1]!==a[1]){var c=o.getDataExtent(l),p=(c[1]-c[0])*.3;c=[c[0]-p,c[1]+p];var v=[0,r[1]],d=[0,r[0]],f=[[r[0],0],[0,0]],g=[],y=d[1]/(o.count()-1),x=0,m=Math.round(o.count()/r[0]),S;o.each([l],function(T,I){if(m>0&&I%m){x+=y;return}var D=T==null||isNaN(T)||T==="",R=D?0:U(T,c,v,!0);D&&!S&&I?(f.push([f[f.length-1][0],0]),g.push([g[g.length-1][0],0])):!D&&S&&(f.push([x,0]),g.push([x,0])),f.push([x,R]),g.push([x,R]),x+=y,S=D}),u=this._shadowPolygonPts=f,h=this._shadowPolylinePts=g}this._shadowData=o,this._shadowDim=l,this._shadowSize=[r[0],r[1]];var b=this.dataZoomModel;function w(T){var I=b.getModel(T?"selectedDataBackground":"dataBackground"),D=new tt,R=new Ae({shape:{points:u},segmentIgnoreThreshold:1,style:I.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),O=new Xa({shape:{points:h},segmentIgnoreThreshold:1,style:I.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return D.add(R),D.add(O),D}for(var A=0;A<3;A++){var C=w(A===1);this._displayables.sliderGroup.add(C),this._displayables.dataShadowSegs.push(C)}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,r=t.get("showDataShadow");if(r!==!1){var a,n=this.ecModel;return t.eachTargetAxis(function(o,s){var l=t.getAxisProxy(o,s).getTargetSeriesModels();_(l,function(u){if(!a&&!(r!==!0&&et(Xc,u.get("type"))<0)){var h=n.getComponent(xt(o),s).axis,c=jc(o),p,v=u.coordinateSystem;c!=null&&v.getOtherAxis&&(p=v.getOtherAxis(h).inverse),c=u.getData().mapDimension(c),a={thisAxis:h,series:u,thisDim:o,otherDim:c,otherAxisInverse:p}}},this)},this),a}},e.prototype._renderHandle=function(){var t=this.group,r=this._displayables,a=r.handles=[null,null],n=r.handleLabels=[null,null],o=this._displayables.sliderGroup,s=this._size,l=this.dataZoomModel,u=this.api,h=l.get("borderRadius")||0,c=l.get("brushSelect"),p=r.filler=new Kt({silent:c,style:{fill:l.get("fillerColor")},textConfig:{position:"inside"}});o.add(p),o.add(new Kt({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:s[0],height:s[1],r:h},style:{stroke:l.get("dataBackgroundColor")||l.get("borderColor"),lineWidth:Zc,fill:"rgba(0,0,0,0)"}})),_([0,1],function(m){var S=l.get("handleIcon");!ns[S]&&S.indexOf("path://")<0&&S.indexOf("image://")<0&&(S="path://"+S);var b=Lt(S,-1,0,2,2,null,!0);b.attr({cursor:_a(this._orient),draggable:!0,drift:P(this._onDragMove,this,m),ondragend:P(this._onDragEnd,this),onmouseover:P(this._showDataInfo,this,!0),onmouseout:P(this._showDataInfo,this,!1),z2:5});var w=b.getBoundingRect(),A=l.get("handleSize");this._handleHeight=H(A,this._size[1]),this._handleWidth=w.width/w.height*this._handleHeight,b.setStyle(l.getModel("handleStyle").getItemStyle()),b.style.strokeNoScale=!0,b.rectHover=!0,b.ensureState("emphasis").style=l.getModel(["emphasis","handleStyle"]).getItemStyle(),Et(b);var C=l.get("handleColor");C!=null&&(b.style.fill=C),o.add(a[m]=b);var T=l.getModel("textStyle");t.add(n[m]=new B({silent:!0,invisible:!0,style:X(T,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:T.getTextColor(),font:T.getFont()}),z2:10}))},this);var v=p;if(c){var d=H(l.get("moveHandleSize"),s[1]),f=r.moveHandle=new ot({style:l.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:s[1]-.5,height:d}}),g=d*.8,y=r.moveHandleIcon=Lt(l.get("moveHandleIcon"),-g/2,-g/2,g,g,"#fff",!0);y.silent=!0,y.y=s[1]+d/2-.5,f.ensureState("emphasis").style=l.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var x=Math.min(s[1]/2,Math.max(d,10));v=r.moveZone=new ot({invisible:!0,shape:{y:s[1]-x,height:d+x}}),v.on("mouseover",function(){u.enterEmphasis(f)}).on("mouseout",function(){u.leaveEmphasis(f)}),o.add(f),o.add(y),o.add(v)}v.attr({draggable:!0,cursor:_a(this._orient),drift:P(this._onDragMove,this,"all"),ondragstart:P(this._showDataInfo,this,!0),ondragend:P(this._onDragEnd,this),onmouseover:P(this._showDataInfo,this,!0),onmouseout:P(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),r=this._getViewExtent();this._handleEnds=[U(t[0],[0,100],r,!0),U(t[1],[0,100],r,!0)]},e.prototype._updateInterval=function(t,r){var a=this.dataZoomModel,n=this._handleEnds,o=this._getViewExtent(),s=a.findRepresentativeAxisProxy().getMinMaxSpan(),l=[0,100];$t(r,n,o,a.get("zoomLock")?"all":t,s.minSpan!=null?U(s.minSpan,l,o,!0):null,s.maxSpan!=null?U(s.maxSpan,l,o,!0):null);var u=this._range,h=this._range=ct([U(n[0],o,l,!0),U(n[1],o,l,!0)]);return!u||u[0]!==h[0]||u[1]!==h[1]},e.prototype._updateView=function(t){var r=this._displayables,a=this._handleEnds,n=ct(a.slice()),o=this._size;_([0,1],function(v){var d=r.handles[v],f=this._handleHeight;d.attr({scaleX:f/2,scaleY:f/2,x:a[v]+(v?-1:1),y:o[1]/2-f/2})},this),r.filler.setShape({x:n[0],y:0,width:n[1]-n[0],height:o[1]});var s={x:n[0],width:n[1]-n[0]};r.moveHandle&&(r.moveHandle.setShape(s),r.moveZone.setShape(s),r.moveZone.getBoundingRect(),r.moveHandleIcon&&r.moveHandleIcon.attr("x",s.x+s.width/2));for(var l=r.dataShadowSegs,u=[0,n[0],n[1],o[0]],h=0;hr[0]||a[1]<0||a[1]>r[1])){var n=this._handleEnds,o=(n[0]+n[1])/2,s=this._updateInterval("all",a[0]-o);this._updateView(),s&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var r=t.offsetX,a=t.offsetY;this._brushStart=new fo(r,a),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var r=this._displayables.brushRect;if(this._brushing=!1,!!r){r.attr("ignore",!0);var a=r.shape,n=+new Date;if(!(n-this._brushStartTime<200&&Math.abs(a.width)<5)){var o=this._getViewExtent(),s=[0,100];this._range=ct([U(a.x,o,s,!0),U(a.x+a.width,o,s,!0)]),this._handleEnds=[a.x,a.x+a.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(Gt(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,r){var a=this._displayables,n=this.dataZoomModel,o=a.brushRect;o||(o=a.brushRect=new Kt({silent:!0,style:n.getModel("brushStyle").getItemStyle()}),a.sliderGroup.add(o)),o.attr("ignore",!1);var s=this._brushStart,l=this._displayables.sliderGroup,u=l.transformCoordToLocal(t,r),h=l.transformCoordToLocal(s.x,s.y),c=this._size;u[0]=Math.max(Math.min(c[0],u[0]),0),o.setShape({x:h[0],y:0,width:u[0]-h[0],height:c[1]})},e.prototype._dispatchZoomAction=function(t){var r=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?Kc:null,start:r[0],end:r[1]})},e.prototype._findCoordRect=function(){var t,r=xn(this.dataZoomModel).infoList;if(!t&&r.length){var a=r[0].model.coordinateSystem;t=a.getRect&&a.getRect()}if(!t){var n=this.api.getWidth(),o=this.api.getHeight();t={x:n*.2,y:o*.2,width:n*.6,height:o*.6}}return t},e.type="dataZoom.slider",e}(Gr);function jc(i){var e={x:"y",y:"x",radius:"angle",angle:"radius"};return e[i]}function _a(i){return i==="vertical"?"ns-resize":"ew-resize"}const Jc=qc;function Qc(i){i.registerComponentModel(Fc),i.registerComponentView(Jc),Hr(i)}function uv(i){rt(Wc),rt(Qc)}var tp={get:function(i,e,t){var r=N((ep[i]||{})[e]);return t&&L(r)?r[r.length-1]:r}},ep={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}};const Nn=tp;var wa=j.mapVisual,rp=j.eachVisual,ip=L,Aa=_,ap=ct,np=U,op=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t.stateList=["inRange","outOfRange"],t.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],t.layoutMode={type:"box",ignoreSize:!0},t.dataBound=[-1/0,1/0],t.targetVisuals={},t.controllerVisuals={},t}return e.prototype.init=function(t,r,a){this.mergeDefaultAndTheme(t,a)},e.prototype.optionUpdated=function(t,r){var a=this.option;!r&&Dn(a,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},e.prototype.resetVisual=function(t){var r=this.stateList;t=P(t,this),this.controllerVisuals=dr(this.option.controller,r,t),this.targetVisuals=dr(this.option.target,r,t)},e.prototype.getItemSymbol=function(){return null},e.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,r=[];return t==null||t==="all"?this.ecModel.eachSeries(function(a,n){r.push(n)}):r=kr(t),r},e.prototype.eachTargetSeries=function(t,r){_(this.getTargetSeriesIndices(),function(a){var n=this.ecModel.getSeriesByIndex(a);n&&t.call(r,n)},this)},e.prototype.isTargetSeries=function(t){var r=!1;return this.eachTargetSeries(function(a){a===t&&(r=!0)}),r},e.prototype.formatValueText=function(t,r,a){var n=this.option,o=n.precision,s=this.dataBound,l=n.formatter,u;a=a||["<",">"],L(t)&&(t=t.slice(),u=!0);var h=r?t:u?[c(t[0]),c(t[1])]:c(t);if(z(l))return l.replace("{value}",u?h[0]:h).replace("{value2}",u?h[1]:h);if(E(l))return u?l(t[0],t[1]):l(t);if(u)return t[0]===s[0]?a[0]+" "+h[1]:t[1]===s[1]?a[1]+" "+h[0]:h[0]+" - "+h[1];return h;function c(p){return p===s[0]?"min":p===s[1]?"max":(+p).toFixed(Math.min(o,20))}},e.prototype.resetExtent=function(){var t=this.option,r=ap([t.min,t.max]);this._dataExtent=r},e.prototype.getDataDimensionIndex=function(t){var r=this.option.dimension;if(r!=null)return t.getDimensionIndex(r);for(var a=t.dimensions,n=a.length-1;n>=0;n--){var o=a[n],s=t.getDimensionInfo(o);if(!s.isCalculationCoord)return s.storeDimIndex}},e.prototype.getExtent=function(){return this._dataExtent.slice()},e.prototype.completeVisualOption=function(){var t=this.ecModel,r=this.option,a={inRange:r.inRange,outOfRange:r.outOfRange},n=r.target||(r.target={}),o=r.controller||(r.controller={});Y(n,a),Y(o,a);var s=this.isCategory();l.call(this,n),l.call(this,o),u.call(this,n,"inRange","outOfRange"),h.call(this,o);function l(c){ip(r.color)&&!c.inRange&&(c.inRange={color:r.color.slice().reverse()}),c.inRange=c.inRange||{color:t.get("gradientColor")}}function u(c,p,v){var d=c[p],f=c[v];d&&!f&&(f=c[v]={},Aa(d,function(g,y){if(j.isValidType(y)){var x=Nn.get(y,"inactive",s);x!=null&&(f[y]=x,y==="color"&&!f.hasOwnProperty("opacity")&&!f.hasOwnProperty("colorAlpha")&&(f.opacity=[0,0]))}}))}function h(c){var p=(c.inRange||{}).symbol||(c.outOfRange||{}).symbol,v=(c.inRange||{}).symbolSize||(c.outOfRange||{}).symbolSize,d=this.get("inactiveColor"),f=this.getItemSymbol(),g=f||"roundRect";Aa(this.stateList,function(y){var x=this.itemSize,m=c[y];m||(m=c[y]={color:s?d:[d]}),m.symbol==null&&(m.symbol=p&&N(p)||(s?g:[g])),m.symbolSize==null&&(m.symbolSize=v&&N(v)||(s?x[0]:[x[0],x[0]])),m.symbol=wa(m.symbol,function(w){return w==="none"?g:w});var S=m.symbolSize;if(S!=null){var b=-1/0;rp(S,function(w){w>b&&(b=w)}),m.symbolSize=wa(S,function(w){return np(w,[0,b],[0,x[0]],!0)})}},this)}},e.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},e.prototype.isCategory=function(){return!!this.option.categories},e.prototype.setSelected=function(t){},e.prototype.getSelected=function(){return null},e.prototype.getValueState=function(t){return null},e.prototype.getVisualMeta=function(t){return null},e.type="visualMap",e.dependencies=["series"],e.defaultOption={show:!0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},e}(K);const De=op;var Ca=[20,140],sp=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.optionUpdated=function(t,r){i.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual(function(a){a.mappingMethod="linear",a.dataExtent=this.getExtent()}),this._resetRange()},e.prototype.resetItemSize=function(){i.prototype.resetItemSize.apply(this,arguments);var t=this.itemSize;(t[0]==null||isNaN(t[0]))&&(t[0]=Ca[0]),(t[1]==null||isNaN(t[1]))&&(t[1]=Ca[1])},e.prototype._resetRange=function(){var t=this.getExtent(),r=this.option.range;!r||r.auto?(t.auto=1,this.option.range=t):L(r)&&(r[0]>r[1]&&r.reverse(),r[0]=Math.max(r[0],t[0]),r[1]=Math.min(r[1],t[1]))},e.prototype.completeVisualOption=function(){i.prototype.completeVisualOption.apply(this,arguments),_(this.stateList,function(t){var r=this.option.controller[t].symbolSize;r&&r[0]!==r[1]&&(r[0]=r[1]/3)},this)},e.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},e.prototype.getSelected=function(){var t=this.getExtent(),r=ct((this.get("range")||[]).slice());return r[0]>t[1]&&(r[0]=t[1]),r[1]>t[1]&&(r[1]=t[1]),r[0]=a[1]||t<=r[1])?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var r=[];return this.eachTargetSeries(function(a){var n=[],o=a.getData();o.each(this.getDataDimensionIndex(o),function(s,l){t[0]<=s&&s<=t[1]&&n.push(l)},this),r.push({seriesId:a.id,dataIndex:n})},this),r},e.prototype.getVisualMeta=function(t){var r=Ta(this,"outOfRange",this.getExtent()),a=Ta(this,"inRange",this.option.range.slice()),n=[];function o(v,d){n.push({value:v,color:t(v,d)})}for(var s=0,l=0,u=a.length,h=r.length;lt[1])break;n.push({color:this.getControllerVisual(l,"color",r),offset:s/a})}return n.push({color:this.getControllerVisual(t[1],"color",r),offset:1}),n},e.prototype._createBarPoints=function(t,r){var a=this.visualMapModel.itemSize;return[[a[0]-r[0],t[0]],[a[0],t[0]],[a[0],t[1]],[a[0]-r[1],t[1]]]},e.prototype._createBarGroup=function(t){var r=this._orient,a=this.visualMapModel.get("inverse");return new tt(r==="horizontal"&&!a?{scaleX:t==="bottom"?1:-1,rotation:Math.PI/2}:r==="horizontal"&&a?{scaleX:t==="bottom"?-1:1,rotation:-Math.PI/2}:r==="vertical"&&!a?{scaleX:t==="left"?1:-1,scaleY:-1}:{scaleX:t==="left"?1:-1})},e.prototype._updateHandle=function(t,r){if(this._useHandle){var a=this._shapes,n=this.visualMapModel,o=a.handleThumbs,s=a.handleLabels,l=n.itemSize,u=n.getExtent();hp([0,1],function(h){var c=o[h];c.setStyle("fill",r.handlesColor[h]),c.y=t[h];var p=ht(t[h],[0,l[1]],u,!0),v=this.getControllerVisual(p,"symbolSize");c.scaleX=c.scaleY=v/l[0],c.x=l[0]-v/2;var d=St(a.handleLabelPoints[h],Jt(c,this.group));s[h].setStyle({x:d[0],y:d[1],text:n.formatValueText(this._dataInterval[h]),verticalAlign:"middle",align:this._orient==="vertical"?this._applyTransform("left",a.mainGroup):"center"})},this)}},e.prototype._showIndicator=function(t,r,a,n){var o=this.visualMapModel,s=o.getExtent(),l=o.itemSize,u=[0,l[1]],h=this._shapes,c=h.indicator;if(c){c.attr("invisible",!1);var p={convertOpacityToAlpha:!0},v=this.getControllerVisual(t,"color",p),d=this.getControllerVisual(t,"symbolSize"),f=ht(t,s,u,!0),g=l[0]-d/2,y={x:c.x,y:c.y};c.y=f,c.x=g;var x=St(h.indicatorLabelPoint,Jt(c,this.group)),m=h.indicatorLabel;m.attr("invisible",!1);var S=this._applyTransform("left",h.mainGroup),b=this._orient,w=b==="horizontal";m.setStyle({text:(a||"")+o.formatValueText(r),verticalAlign:w?S:"middle",align:w?"center":S});var A={x:g,y:f,style:{fill:v}},C={style:{x:x[0],y:x[1]}};if(o.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var T={duration:100,easing:"cubicInOut",additive:!0};c.x=y.x,c.y=y.y,c.animateTo(A,T),m.animateTo(C,T)}else c.attr(A),m.attr(C);this._firstShowIndicator=!1;var I=this._shapes.handleLabels;if(I)for(var D=0;Do[1]&&(c[1]=1/0),r&&(c[0]===-1/0?this._showIndicator(h,c[1],"< ",l):c[1]===1/0?this._showIndicator(h,c[0],"> ",l):this._showIndicator(h,h,"≈ ",l));var p=this._hoverLinkDataIndices,v=[];(r||Pa(a))&&(v=this._hoverLinkDataIndices=a.findTargetDataIndices(c));var d=ls(p,v);this._dispatchHighDown("downplay",me(d[0],a)),this._dispatchHighDown("highlight",me(d[1],a))}},e.prototype._hoverLinkFromSeriesMouseOver=function(t){var r;if(Ja(t.target,function(l){var u=Z(l);if(u.dataIndex!=null)return r=u,!0},!0),!!r){var a=this.ecModel.getSeriesByIndex(r.seriesIndex),n=this.visualMapModel;if(n.isTargetSeries(a)){var o=a.getData(r.dataType),s=o.getStore().get(n.getDataDimensionIndex(o),r.dataIndex);isNaN(s)||this._showIndicator(s,s)}}},e.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var r=this._shapes.handleLabels;if(r)for(var a=0;a=0&&(n.dimension=o,r.push(n))}}),i.getData().setVisual("visualMeta",r)}}];function xp(i,e,t,r){for(var a=e.targetVisuals[r],n=j.prepareVisualTypes(a),o={color:Oe(i.getData(),"color")},s=0,l=n.length;s0:e.splitNumber>0)||e.calculable)?"continuous":"piecewise"}),i.registerAction(gp,yp),_(mp,function(e){i.registerVisual(i.PRIORITY.VISUAL.COMPONENT,e)}),i.registerPreprocessor(Sp))}function bp(i){i.registerComponentModel(lp),i.registerComponentView(fp),Wn(i)}var _p=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t._pieceList=[],t}return e.prototype.optionUpdated=function(t,r){i.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var a=this._mode=this._determineMode();this._pieceList=[],wp[this._mode].call(this,this._pieceList),this._resetSelected(t,r);var n=this.option.categories;this.resetVisual(function(o,s){a==="categories"?(o.mappingMethod="category",o.categories=N(n)):(o.dataExtent=this.getExtent(),o.mappingMethod="piecewise",o.pieceList=k(this._pieceList,function(l){return l=N(l),s!=="inRange"&&(l.visual=null),l}))})},e.prototype.completeVisualOption=function(){var t=this.option,r={},a=j.listVisualTypes(),n=this.isCategory();_(t.pieces,function(s){_(a,function(l){s.hasOwnProperty(l)&&(r[l]=1)})}),_(r,function(s,l){var u=!1;_(this.stateList,function(h){u=u||o(t,h,l)||o(t.target,h,l)},this),!u&&_(this.stateList,function(h){(t[h]||(t[h]={}))[l]=Nn.get(l,h==="inRange"?"active":"inactive",n)})},this);function o(s,l,u){return s&&s[l]&&s[l].hasOwnProperty(u)}i.prototype.completeVisualOption.apply(this,arguments)},e.prototype._resetSelected=function(t,r){var a=this.option,n=this._pieceList,o=(r?a:t).selected||{};if(a.selected=o,_(n,function(l,u){var h=this.getSelectedMapKey(l);o.hasOwnProperty(h)||(o[h]=!0)},this),a.selectedMode==="single"){var s=!1;_(n,function(l,u){var h=this.getSelectedMapKey(l);o[h]&&(s?o[h]=!1:s=!0)},this)}},e.prototype.getItemSymbol=function(){return this.get("itemSymbol")},e.prototype.getSelectedMapKey=function(t){return this._mode==="categories"?t.value+"":t.index+""},e.prototype.getPieceList=function(){return this._pieceList},e.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},e.prototype.setSelected=function(t){this.option.selected=N(t)},e.prototype.getValueState=function(t){var r=j.findPieceIndex(t,this._pieceList);return r!=null&&this.option.selected[this.getSelectedMapKey(this._pieceList[r])]?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var r=[],a=this._pieceList;return this.eachTargetSeries(function(n){var o=[],s=n.getData();s.each(this.getDataDimensionIndex(s),function(l,u){var h=j.findPieceIndex(l,a);h===t&&o.push(u)},this),r.push({seriesId:n.id,dataIndex:o})},this),r},e.prototype.getRepresentValue=function(t){var r;if(this.isCategory())r=t.value;else if(t.value!=null)r=t.value;else{var a=t.interval||[];r=a[0]===-1/0&&a[1]===1/0?0:(a[0]+a[1])/2}return r},e.prototype.getVisualMeta=function(t){if(this.isCategory())return;var r=[],a=["",""],n=this;function o(h,c){var p=n.getRepresentValue({interval:h});c||(c=n.getValueState(p));var v=t(p,c);h[0]===-1/0?a[0]=v:h[1]===1/0?a[1]=v:r.push({value:h[0],color:v},{value:h[1],color:v})}var s=this._pieceList.slice();if(!s.length)s.push({interval:[-1/0,1/0]});else{var l=s[0].interval[0];l!==-1/0&&s.unshift({interval:[-1/0,l]}),l=s[s.length-1].interval[1],l!==1/0&&s.push({interval:[l,1/0]})}var u=-1/0;return _(s,function(h){var c=h.interval;c&&(c[0]>u&&o([u,c[0]],"outOfRange"),o(c.slice()),u=c[1])},this),{stops:r,outerColors:a}},e.type="visualMap.piecewise",e.defaultOption=Ft(De.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),e}(De),wp={splitNumber:function(i){var e=this.option,t=Math.min(e.precision,20),r=this.getExtent(),a=e.splitNumber;a=Math.max(parseInt(a,10),1),e.splitNumber=a;for(var n=(r[1]-r[0])/a;+n.toFixed(t)!==n&&t<5;)t++;e.precision=t,n=+n.toFixed(t),e.minOpen&&i.push({interval:[-1/0,r[0]],close:[0,0]});for(var o=0,s=r[0];o","≥"][r[0]]];t.text=t.text||this.formatValueText(t.value!=null?t.value:t.interval,!1,a)},this)}};function Oa(i,e){var t=i.inverse;(i.orient==="vertical"?!t:t)&&e.reverse()}const Ap=_p;var Cp=function(i){M(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.doRender=function(){var t=this.group;t.removeAll();var r=this.visualMapModel,a=r.get("textGap"),n=r.textStyleModel,o=n.getFont(),s=n.getTextColor(),l=this._getItemAlign(),u=r.itemSize,h=this._getViewData(),c=h.endsText,p=Tt(r.get("showLabel",!0),!c);c&&this._renderEndsText(t,c[0],u,p,l),_(h.viewPieceList,function(v){var d=v.piece,f=new tt;f.onclick=P(this._onItemClick,this,d),this._enableHoverLink(f,v.indexInModelPieceList);var g=r.getRepresentValue(d);if(this._createItemSymbol(f,g,[0,0,u[0],u[1]]),p){var y=this.visualMapModel.getValueState(g);f.add(new B({style:{x:l==="right"?-a:u[0]+a,y:u[1]/2,text:d.text,verticalAlign:"middle",align:l,font:o,fill:s,opacity:y==="outOfRange"?.5:1}}))}t.add(f)},this),c&&this._renderEndsText(t,c[1],u,p,l),It(r.get("orient"),t,r.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},e.prototype._enableHoverLink=function(t,r){var a=this;t.on("mouseover",function(){return n("highlight")}).on("mouseout",function(){return n("downplay")});var n=function(o){var s=a.visualMapModel;s.option.hoverLink&&a.api.dispatchAction({type:o,batch:me(s.findTargetDataIndices(r),s)})}},e.prototype._getItemAlign=function(){var t=this.visualMapModel,r=t.option;if(r.orient==="vertical")return Hn(t,this.api,t.itemSize);var a=r.align;return(!a||a==="auto")&&(a="left"),a},e.prototype._renderEndsText=function(t,r,a,n,o){if(r){var s=new tt,l=this.visualMapModel.textStyleModel;s.add(new B({style:X(l,{x:n?o==="right"?a[0]:0:a[0]/2,y:a[1]/2,verticalAlign:"middle",align:n?o:"center",text:r})})),t.add(s)}},e.prototype._getViewData=function(){var t=this.visualMapModel,r=k(t.getPieceList(),function(s,l){return{piece:s,indexInModelPieceList:l}}),a=t.get("text"),n=t.get("orient"),o=t.get("inverse");return(n==="horizontal"?o:!o)?r.reverse():a&&(a=a.slice().reverse()),{viewPieceList:r,endsText:a}},e.prototype._createItemSymbol=function(t,r,a){t.add(Lt(this.getControllerVisual(r,"symbol"),a[0],a[1],a[2],a[3],this.getControllerVisual(r,"color")))},e.prototype._onItemClick=function(t){var r=this.visualMapModel,a=r.option,n=a.selectedMode;if(n){var o=N(a.selected),s=r.getSelectedMapKey(t);n==="single"||n===!0?(o[s]=!0,_(o,function(l,u){o[u]=u===s})):o[s]=!o[s],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:o})}},e.type="visualMap.piecewise",e}(Gn);const Tp=Cp;function Mp(i){i.registerComponentModel(Ap),i.registerComponentView(Tp),Wn(i)}function hv(i){rt(bp),rt(Mp)}var Ip={label:{enabled:!0},decal:{show:!1}},Va=it(),Dp={};function Pp(i,e){var t=i.getModel("aria");if(!t.get("enabled"))return;var r=N(Ip);Y(r.label,i.getLocaleModel().get("aria"),!1),Y(t.option,r,!1),a(),n();function a(){var u=t.getModel("decal"),h=u.get("show");if(h){var c=J();i.eachSeries(function(p){if(!p.isColorBySeries()){var v=c.get(p.type);v||(v={},c.set(p.type,v)),Va(p).scope=v}}),i.eachRawSeries(function(p){if(i.isSeriesFiltered(p))return;if(E(p.enableAriaDecal)){p.enableAriaDecal();return}var v=p.getData();if(p.isColorBySeries()){var x=ui(p.ecModel,p.name,Dp,i.getSeriesCount()),m=v.getVisual("decal");v.setVisual("decal",S(m,x))}else{var d=p.getRawData(),f={},g=Va(p).scope;v.each(function(b){var w=v.getRawIndex(b);f[w]=b});var y=d.count();d.each(function(b){var w=f[b],A=d.getName(b)||b+"",C=ui(p.ecModel,A,g,y),T=v.getItemVisual(w,"decal");v.setItemVisual(w,"decal",S(T,C))})}function S(b,w){var A=b?G(G({},w),b):w;return A.dirty=!0,A}})}}function n(){var u=i.getLocaleModel().get("aria"),h=t.getModel("label");if(h.option=F(h.option,u),!!h.get("enabled")){var c=e.getZr().dom;if(h.get("description")){c.setAttribute("aria-label",h.get("description"));return}var p=i.getSeriesCount(),v=h.get(["data","maxCount"])||10,d=h.get(["series","maxCount"])||10,f=Math.min(p,d),g;if(!(p<1)){var y=s();if(y){var x=h.get(["general","withTitle"]);g=o(x,{title:y})}else g=h.get(["general","withoutTitle"]);var m=[],S=p>1?h.get(["series","multiple","prefix"]):h.get(["series","single","prefix"]);g+=o(S,{seriesCount:p}),i.eachSeries(function(C,T){if(T1?h.get(["series","multiple",R]):h.get(["series","single",R]),I=o(I,{seriesId:C.seriesIndex,seriesName:C.get("name"),seriesType:l(C.subType)});var O=C.getData();if(O.count()>v){var $=h.get(["data","partialData"]);I+=o($,{displayCnt:v})}else I+=h.get(["data","allData"]);for(var lt=h.get(["data","separator","middle"]),wt=h.get(["data","separator","end"]),ft=[],ut=0;ut":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},kp=function(){function i(e){var t=this._condVal=z(e)?new RegExp(e):yo(e)?e:null;if(t==null){var r="";W(r)}}return i.prototype.evaluate=function(e){var t=typeof e;return z(t)?this._condVal.test(e):Tr(t)?this._condVal.test(e+""):!1},i}(),Rp=function(){function i(){}return i.prototype.evaluate=function(){return this.value},i}(),Op=function(){function i(){}return i.prototype.evaluate=function(){for(var e=this.children,t=0;t 0) { - dim.name = dimOriginalName + (count - 1); - } - count++; - duplicationMap.set(dimOriginalName, count); - } -} -function getDimCount(source, sysDims, dimsDef, optDimCount) { - var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0); - each(sysDims, function(sysDimItem) { - var sysDimItemDimsDef; - if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) { - dimCount = Math.max(dimCount, sysDimItemDimsDef.length); - } - }); - return dimCount; -} -function genCoordDimName(name, map2, fromZero) { - if (fromZero || map2.hasKey(name)) { - var i = 0; - while (map2.hasKey(name + i)) { - i++; - } - name += i; - } - map2.set(name, true); - return name; -} -var CoordSysInfo = ( - /** @class */ - function() { - function CoordSysInfo2(coordSysName) { - this.coordSysDims = []; - this.axisMap = createHashMap(); - this.categoryAxisMap = createHashMap(); - this.coordSysName = coordSysName; - } - return CoordSysInfo2; - }() -); -function getCoordSysInfoBySeries(seriesModel) { - var coordSysName = seriesModel.get("coordinateSystem"); - var result = new CoordSysInfo(coordSysName); - var fetch = fetchers[coordSysName]; - if (fetch) { - fetch(seriesModel, result, result.axisMap, result.categoryAxisMap); - return result; - } -} -var fetchers = { - cartesian2d: function(seriesModel, result, axisMap, categoryAxisMap) { - var xAxisModel = seriesModel.getReferringComponents("xAxis", SINGLE_REFERRING).models[0]; - var yAxisModel = seriesModel.getReferringComponents("yAxis", SINGLE_REFERRING).models[0]; - result.coordSysDims = ["x", "y"]; - axisMap.set("x", xAxisModel); - axisMap.set("y", yAxisModel); - if (isCategory(xAxisModel)) { - categoryAxisMap.set("x", xAxisModel); - result.firstCategoryDimIndex = 0; - } - if (isCategory(yAxisModel)) { - categoryAxisMap.set("y", yAxisModel); - result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1); - } - }, - singleAxis: function(seriesModel, result, axisMap, categoryAxisMap) { - var singleAxisModel = seriesModel.getReferringComponents("singleAxis", SINGLE_REFERRING).models[0]; - result.coordSysDims = ["single"]; - axisMap.set("single", singleAxisModel); - if (isCategory(singleAxisModel)) { - categoryAxisMap.set("single", singleAxisModel); - result.firstCategoryDimIndex = 0; - } - }, - polar: function(seriesModel, result, axisMap, categoryAxisMap) { - var polarModel = seriesModel.getReferringComponents("polar", SINGLE_REFERRING).models[0]; - var radiusAxisModel = polarModel.findAxisModel("radiusAxis"); - var angleAxisModel = polarModel.findAxisModel("angleAxis"); - result.coordSysDims = ["radius", "angle"]; - axisMap.set("radius", radiusAxisModel); - axisMap.set("angle", angleAxisModel); - if (isCategory(radiusAxisModel)) { - categoryAxisMap.set("radius", radiusAxisModel); - result.firstCategoryDimIndex = 0; - } - if (isCategory(angleAxisModel)) { - categoryAxisMap.set("angle", angleAxisModel); - result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1); - } - }, - geo: function(seriesModel, result, axisMap, categoryAxisMap) { - result.coordSysDims = ["lng", "lat"]; - }, - parallel: function(seriesModel, result, axisMap, categoryAxisMap) { - var ecModel = seriesModel.ecModel; - var parallelModel = ecModel.getComponent("parallel", seriesModel.get("parallelIndex")); - var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice(); - each(parallelModel.parallelAxisIndex, function(axisIndex, index) { - var axisModel = ecModel.getComponent("parallelAxis", axisIndex); - var axisDim = coordSysDims[index]; - axisMap.set(axisDim, axisModel); - if (isCategory(axisModel)) { - categoryAxisMap.set(axisDim, axisModel); - if (result.firstCategoryDimIndex == null) { - result.firstCategoryDimIndex = index; - } - } - }); - } -}; -function isCategory(axisModel) { - return axisModel.get("type") === "category"; -} -function getCoordSysDimDefs(seriesModel, coordSysInfo) { - var coordSysName = seriesModel.get("coordinateSystem"); - var registeredCoordSys = CoordinateSystem.get(coordSysName); - var coordSysDimDefs; - if (coordSysInfo && coordSysInfo.coordSysDims) { - coordSysDimDefs = map(coordSysInfo.coordSysDims, function(dim) { - var dimInfo = { - name: dim - }; - var axisModel = coordSysInfo.axisMap.get(dim); - if (axisModel) { - var axisType = axisModel.get("type"); - dimInfo.type = getDimensionTypeByAxis(axisType); - } - return dimInfo; - }); - } - if (!coordSysDimDefs) { - coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ["x", "y"]; - } - return coordSysDimDefs; -} -function injectOrdinalMeta(dimInfoList, createInvertedIndices, coordSysInfo) { - var firstCategoryDimIndex; - var hasNameEncode; - coordSysInfo && each(dimInfoList, function(dimInfo, dimIndex) { - var coordDim = dimInfo.coordDim; - var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim); - if (categoryAxisModel) { - if (firstCategoryDimIndex == null) { - firstCategoryDimIndex = dimIndex; - } - dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta(); - if (createInvertedIndices) { - dimInfo.createInvertedIndices = true; - } - } - if (dimInfo.otherDims.itemName != null) { - hasNameEncode = true; - } - }); - if (!hasNameEncode && firstCategoryDimIndex != null) { - dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0; - } - return firstCategoryDimIndex; -} -function createSeriesData(sourceRaw, seriesModel, opt) { - opt = opt || {}; - var sourceManager = seriesModel.getSourceManager(); - var source; - var isOriginalSource = false; - if (sourceRaw) { - isOriginalSource = true; - source = createSourceFromSeriesDataOption(sourceRaw); - } else { - source = sourceManager.getSource(); - isOriginalSource = source.sourceFormat === SOURCE_FORMAT_ORIGINAL; - } - var coordSysInfo = getCoordSysInfoBySeries(seriesModel); - var coordSysDimDefs = getCoordSysDimDefs(seriesModel, coordSysInfo); - var useEncodeDefaulter = opt.useEncodeDefaulter; - var encodeDefaulter = isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null; - var createDimensionOptions = { - coordDimensions: coordSysDimDefs, - generateCoord: opt.generateCoord, - encodeDefine: seriesModel.getEncode(), - encodeDefaulter, - canOmitUnusedDimensions: !isOriginalSource - }; - var schema = prepareSeriesDataSchema(source, createDimensionOptions); - var firstCategoryDimIndex = injectOrdinalMeta(schema.dimensions, opt.createInvertedIndices, coordSysInfo); - var store = !isOriginalSource ? sourceManager.getSharedDataStore(schema) : null; - var stackCalculationInfo = enableDataStack(seriesModel, { - schema, - store - }); - var data = new SeriesData(schema, seriesModel); - data.setCalculationInfo(stackCalculationInfo); - var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function(itemOpt, dimName, dataIndex, dimIndex) { - return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex); - } : null; - data.hasItemOption = false; - data.initData( - // Try to reuse the data store in sourceManager if using dataset. - isOriginalSource ? source : store, - null, - dimValueGetter - ); - return data; -} -function isNeedCompleteOrdinalData(source) { - if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) { - var sampleItem = firstDataNotNull(source.data || []); - return !isArray(getDataItemValue(sampleItem)); - } -} -function firstDataNotNull(arr) { - var i = 0; - while (i < arr.length && arr[i] == null) { - i++; - } - return arr[i]; -} -export { - createDimensions as a, - createSeriesData as c, - prepareSeriesDataSchema as p -}; diff --git a/templates/assets/dist/assets/createSeriesData-4848ff50.js b/templates/assets/dist/assets/createSeriesData-4848ff50.js new file mode 100644 index 00000000..00a7b65e --- /dev/null +++ b/templates/assets/dist/assets/createSeriesData-4848ff50.js @@ -0,0 +1 @@ +import{V as U,p as L,g as O,h as Q,f as K,o as k,n as X,d as Y,l as $,q as J}from"./graphic-083f2b2f.js";import{aN as I,aO as Z,aP as ee,aQ as ae,aR as ne,aS as ie,aT as W,aU as re,aV as oe,aW as te,aX as se,aY as le,aZ as G,a_ as q,a$ as fe,e as de,aI as ce,b0 as ue,b1 as ve,b2 as me}from"./Axis-b5ea7d9c.js";function Ee(a,e){return z(a,e).dimensions}function z(a,e){I(a)||(a=Z(a)),e=e||{};var o=e.coordDimensions||[],n=e.dimensionsDefine||a.dimensionsDefine||[],r=U(),i=[],s=De(a,o,n,e.dimensionsCount),u=e.canOmitUnusedDimensions&&ee(s),c=n===a.dimensionsDefine,p=c?ae(a):ne(n),C=e.encodeDefine;!C&&e.encodeDefaulter&&(C=e.encodeDefaulter(a,s));for(var h=U(C),x=new ie(s),g=0;g0&&(n.name=r+(i-1)),i++,e.set(r,i)}}function De(a,e,o,n){var r=Math.max(a.dimensionsDetectedCount||1,e.length,o.length,n||0);return O(e,function(i){var s;k(i)&&(s=i.dimsDef)&&(r=Math.max(r,s.length))}),r}function ye(a,e,o){if(o||e.hasKey(a)){for(var n=0;e.hasKey(a+n);)n++;a+=n}return e.set(a,!0),a}var he=function(){function a(e){this.coordSysDims=[],this.axisMap=U(),this.categoryAxisMap=U(),this.coordSysName=e}return a}();function pe(a){var e=a.get("coordinateSystem"),o=new he(e),n=Ce[e];if(n)return n(a,o,o.axisMap,o.categoryAxisMap),o}var Ce={cartesian2d:function(a,e,o,n){var r=a.getReferringComponents("xAxis",G).models[0],i=a.getReferringComponents("yAxis",G).models[0];e.coordSysDims=["x","y"],o.set("x",r),o.set("y",i),E(r)&&(n.set("x",r),e.firstCategoryDimIndex=0),E(i)&&(n.set("y",i),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=1))},singleAxis:function(a,e,o,n){var r=a.getReferringComponents("singleAxis",G).models[0];e.coordSysDims=["single"],o.set("single",r),E(r)&&(n.set("single",r),e.firstCategoryDimIndex=0)},polar:function(a,e,o,n){var r=a.getReferringComponents("polar",G).models[0],i=r.findAxisModel("radiusAxis"),s=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],o.set("radius",i),o.set("angle",s),E(i)&&(n.set("radius",i),e.firstCategoryDimIndex=0),E(s)&&(n.set("angle",s),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=1))},geo:function(a,e,o,n){e.coordSysDims=["lng","lat"]},parallel:function(a,e,o,n){var r=a.ecModel,i=r.getComponent("parallel",a.get("parallelIndex")),s=e.coordSysDims=i.dimensions.slice();O(i.parallelAxisIndex,function(u,c){var p=r.getComponent("parallelAxis",u),C=s[c];o.set(C,p),E(p)&&(n.set(C,p),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=c))})}};function E(a){return a.get("type")==="category"}function Se(a,e){var o=a.get("coordinateSystem"),n=ve.get(o),r;return e&&e.coordSysDims&&(r=J(e.coordSysDims,function(i){var s={name:i},u=e.axisMap.get(i);if(u){var c=u.get("type");s.type=me(c)}return s})),r||(r=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),r}function xe(a,e,o){var n,r;return o&&O(a,function(i,s){var u=i.coordDim,c=o.categoryAxisMap.get(u);c&&(n==null&&(n=s),i.ordinalMeta=c.getOrdinalMeta(),e&&(i.createInvertedIndices=!0)),i.otherDims.itemName!=null&&(r=!0)}),!r&&n!=null&&(a[n].otherDims.itemName=0),n}function Fe(a,e,o){o=o||{};var n=e.getSourceManager(),r,i=!1;a?(i=!0,r=Z(a)):(r=n.getSource(),i=r.sourceFormat===q);var s=pe(e),u=Se(e,s),c=o.useEncodeDefaulter,p=X(c)?c:c?Y(fe,u,e):null,C={coordDimensions:u,generateCoord:o.generateCoord,encodeDefine:e.getEncode(),encodeDefaulter:p,canOmitUnusedDimensions:!i},h=z(r,C),x=xe(h.dimensions,o.createInvertedIndices,s),g=i?null:n.getSharedDataStore(h),M=de(e,{schema:h,store:g}),D=new ce(h,e);D.setCalculationInfo(M);var T=x!=null&&Me(r)?function(F,A,V,_){return _===x?V:this.defaultDimValueGetter(F,A,V,_)}:null;return D.hasItemOption=!1,D.initData(i?r:g,null,T),D}function Me(a){if(a.sourceFormat===q){var e=Ae(a.data||[]);return!$(ue(e))}}function Ae(a){for(var e=0;e0&&n&&L(-f/o,0,o);var g=a[0],d=a[o-1],y,S;x(),y<0&&w(-y,.8),S<0&&w(S,.8),x(),_(y,S,1),_(S,y,-1),x(),y<0&&T(-y),S<0&&T(S);function x(){y=g.rect[t]-r,S=i-d.rect[t]-d.rect[e]}function _(A,C,M){if(A<0){var P=Math.min(C,-A);if(P>0){L(P*M,0,o);var E=P+A;E<0&&w(-E*M,1)}else w(-A*M,1)}}function L(A,C,M){A!==0&&(u=!0);for(var P=C;P0)for(var E=0;E0;E--){var H=M[E-1]*F;L(-H,E,o)}}}function T(A){var C=A<0?-1:1;A=Math.abs(A);for(var M=Math.ceil(A/(o-1)),P=0;P0?L(M,0,P+1):L(-M,o-P-1,o),A-=M,A<=0)return}return u}function Vl(a,t,e,r){return Cn(a,"y","height",t,e,r)}function Tn(a){var t=[];a.sort(function(g,d){return d.priority-g.priority});var e=new U(0,0,0,0);function r(g){if(!g.ignore){var d=g.ensureState("emphasis");d.ignore==null&&(d.ignore=!1)}g.ignore=!0}for(var i=0;i=0&&r.push(t[n])}return r.join(" ")}var Mn=function(a){D(t,a);function t(e,r,i,n){var o=a.call(this)||this;return o.updateData(e,r,i,n),o}return t.prototype._createSymbol=function(e,r,i,n,o){this.removeAll();var s=Xe(e,-1,-1,2,2,null,o);s.attr({z2:100,culling:!0,scaleX:n[0]/2,scaleY:n[1]/2}),s.drift=Pn,this._symbolType=e,this.add(s)},t.prototype.stopSymbolAnimation=function(e){this.childAt(0).stopAnimation(null,e)},t.prototype.getSymbolType=function(){return this._symbolType},t.prototype.getSymbolPath=function(){return this.childAt(0)},t.prototype.highlight=function(){ba(this.childAt(0))},t.prototype.downplay=function(){_a(this.childAt(0))},t.prototype.setZ=function(e,r){var i=this.childAt(0);i.zlevel=e,i.z=r},t.prototype.setDraggable=function(e,r){var i=this.childAt(0);i.draggable=e,i.cursor=!r&&e?"move":i.cursor},t.prototype.updateData=function(e,r,i,n){this.silent=!1;var o=e.getItemVisual(r,"symbol")||"circle",s=e.hostModel,l=t.getSymbolSize(e,r),u=o!==this._symbolType,f=n&&n.disableAnimation;if(u){var c=e.getItemVisual(r,"symbolKeepAspect");this._createSymbol(o,e,r,l,c)}else{var v=this.childAt(0);v.silent=!1;var h={scaleX:l[0]/2,scaleY:l[1]/2};f?v.attr(h):Qt(v,h,s,r),Li(v)}if(this._updateCommon(e,r,l,i,n),u){var v=this.childAt(0);if(!f){var h={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:v.style.opacity}};v.scaleX=v.scaleY=0,v.style.opacity=0,Aa(v,h,s,r)}}f&&this.childAt(0).stopAnimation("leave")},t.prototype._updateCommon=function(e,r,i,n,o){var s=this.childAt(0),l=e.hostModel,u,f,c,v,h,p,g,d,y;if(n&&(u=n.emphasisItemStyle,f=n.blurItemStyle,c=n.selectItemStyle,v=n.focus,h=n.blurScope,g=n.labelStatesModels,d=n.hoverScale,y=n.cursorStyle,p=n.emphasisDisabled),!n||e.hasItemOption){var S=n&&n.itemModel?n.itemModel:e.getItemModel(r),x=S.getModel("emphasis");u=x.getModel("itemStyle").getItemStyle(),c=S.getModel(["select","itemStyle"]).getItemStyle(),f=S.getModel(["blur","itemStyle"]).getItemStyle(),v=x.get("focus"),h=x.get("blurScope"),p=x.get("disabled"),g=Ft(S),d=x.getShallow("scale"),y=S.getShallow("cursor")}var _=e.getItemVisual(r,"symbolRotate");s.attr("rotation",(_||0)*Math.PI/180||0);var L=He(e.getItemVisual(r,"symbolOffset"),i);L&&(s.x=L[0],s.y=L[1]),y&&s.attr("cursor",y);var w=e.getItemVisual(r,"style"),T=w.fill;if(s instanceof Ia){var A=s.style;s.useStyle(O({image:A.image,x:A.x,y:A.y,width:A.width,height:A.height},w))}else s.__isEmptyBrush?s.useStyle(O({},w)):s.useStyle(w),s.style.decal=null,s.setColor(T,o&&o.symbolInnerColor),s.style.strokeNoScale=!0;var C=e.getItemVisual(r,"liftZ"),M=this._z2;C!=null?M==null&&(this._z2=s.z2,s.z2+=C):M!=null&&(s.z2=M,this._z2=null);var P=o&&o.useNameLabel;Ue(s,g,{labelFetcher:l,labelDataIndex:r,defaultText:E,inheritColor:T,defaultOpacity:w.opacity});function E(F){return P?e.getName(F):Ln(e,F)}this._sizeX=i[0]/2,this._sizeY=i[1]/2;var G=s.ensureState("emphasis");G.style=u,s.ensureState("select").style=c,s.ensureState("blur").style=f;var $=d==null||d===!0?Math.max(1.1,3/this._sizeY):isFinite(d)&&d>0?+d:1;G.scaleX=this._sizeX*$,G.scaleY=this._sizeY*$,this.setSymbolScale(1),Ze(this,v,h,p)},t.prototype.setSymbolScale=function(e){this.scaleX=this.scaleY=e},t.prototype.fadeOut=function(e,r,i){var n=this.childAt(0),o=dt(this).dataIndex,s=i&&i.animation;if(this.silent=n.silent=!0,i&&i.fadeLabel){var l=n.getTextContent();l&&pr(l,{style:{opacity:0}},r,{dataIndex:o,removeOpt:s,cb:function(){n.removeTextContent()}})}else n.removeTextContent();pr(n,{style:{opacity:0},scaleX:0,scaleY:0},r,{dataIndex:o,cb:e,removeOpt:s})},t.getSymbolSize=function(e,r){return wa(e.getItemVisual(r,"symbolSize"))},t}(R);function Pn(a,t){this.parent.drift(a,t)}const En=Mn;function fe(a,t,e,r){return t&&!isNaN(t[0])&&!isNaN(t[1])&&!(r.isIgnore&&r.isIgnore(e))&&!(r.clipShape&&!r.clipShape.contain(t[0],t[1]))&&a.getItemVisual(e,"symbol")!=="none"}function mr(a){return a!=null&&!tt(a)&&(a={isIgnore:a}),a||{}}function xr(a){var t=a.hostModel,e=t.getModel("emphasis");return{emphasisItemStyle:e.getModel("itemStyle").getItemStyle(),blurItemStyle:t.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:t.getModel(["select","itemStyle"]).getItemStyle(),focus:e.get("focus"),blurScope:e.get("blurScope"),emphasisDisabled:e.get("disabled"),hoverScale:e.get("scale"),labelStatesModels:Ft(t),cursorStyle:t.get("cursor")}}var Dn=function(){function a(t){this.group=new R,this._SymbolCtor=t||En}return a.prototype.updateData=function(t,e){this._progressiveEls=null,e=mr(e);var r=this.group,i=t.hostModel,n=this._data,o=this._SymbolCtor,s=e.disableAnimation,l=xr(t),u={disableAnimation:s},f=e.getSymbolPoint||function(c){return t.getItemLayout(c)};n||r.removeAll(),t.diff(n).add(function(c){var v=f(c);if(fe(t,v,c,e)){var h=new o(t,c,l,u);h.setPosition(v),t.setItemGraphicEl(c,h),r.add(h)}}).update(function(c,v){var h=n.getItemGraphicEl(v),p=f(c);if(!fe(t,p,c,e)){r.remove(h);return}var g=t.getItemVisual(c,"symbol")||"circle",d=h&&h.getSymbolType&&h.getSymbolType();if(!h||d&&d!==g)r.remove(h),h=new o(t,c,l,u),h.setPosition(p);else{h.updateData(t,c,l,u);var y={x:p[0],y:p[1]};s?h.attr(y):Qt(h,y,i)}r.add(h),t.setItemGraphicEl(c,h)}).remove(function(c){var v=n.getItemGraphicEl(c);v&&v.fadeOut(function(){r.remove(v)},i)}).execute(),this._getSymbolPoint=f,this._data=t},a.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl(function(r,i){var n=t._getSymbolPoint(i);r.setPosition(n),r.markRedraw()})},a.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=xr(t),this._data=null,this.group.removeAll()},a.prototype.incrementalUpdate=function(t,e,r){this._progressiveEls=[],r=mr(r);function i(l){l.isGroup||(l.incremental=!0,l.ensureState("emphasis").hoverLayer=!0)}for(var n=t.start;nr[1]&&r.reverse(),r},t.prototype.pointToData=function(e,r){return this.coordToData(this.toLocalCoord(e[this.dim==="x"?0:1]),r)},t.prototype.setCategorySortInfo=function(e){if(this.type!=="category")return!1;this.model.option.categorySortInfo=e,this.scale.setSortInfo(e)},t}(je);const Nn=Wn;function Yn(a,t,e){e=e||{};var r=a.coordinateSystem,i=t.axis,n={},o=i.getAxesOnZeroOf()[0],s=i.position,l=o?"onZero":s,u=i.dim,f=r.getRect(),c=[f.x,f.x+f.width,f.y,f.y+f.height],v={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,p=u==="x"?[c[2]-h,c[3]+h]:[c[0]-h,c[1]+h];if(o){var g=o.toGlobalCoord(o.dataToCoord(0));p[v.onZero]=Math.max(Math.min(g,p[1]),p[0])}n.position=[u==="y"?p[v[l]]:c[0],u==="x"?p[v[l]]:c[3]],n.rotation=Math.PI/2*(u==="x"?0:1);var d={top:-1,bottom:1,left:-1,right:1};n.labelDirection=n.tickDirection=n.nameDirection=d[s],n.labelOffset=o?p[v[s]]-p[v.onZero]:0,t.get(["axisTick","inside"])&&(n.tickDirection=-n.tickDirection),xt(e.labelInside,t.get(["axisLabel","inside"]))&&(n.labelDirection=-n.labelDirection);var y=t.get(["axisLabel","rotate"]);return n.labelRotate=l==="top"?-y:y,n.z2=1,n}function _r(a){return a.get("coordinateSystem")==="cartesian2d"}function Ar(a){var t={xAxisModel:null,yAxisModel:null};return m(t,function(e,r){var i=r.replace(/Model$/,""),n=a.getReferringComponents(i,yt).models[0];t[r]=n}),t}var ce=Math.log;function $a(a,t,e){var r=Te.prototype,i=r.getTicks.call(e),n=r.getTicks.call(e,!0),o=i.length-1,s=r.getInterval.call(e),l=Ri(a,t),u=l.extent,f=l.fixMin,c=l.fixMax;if(a.type==="log"){var v=ce(a.base);u=[ce(u[0])/v,ce(u[1])/v]}a.setExtent(u[0],u[1]),a.calcNiceExtent({splitNumber:o,fixMin:f,fixMax:c});var h=r.getExtent.call(a);f&&(u[0]=h[0]),c&&(u[1]=h[1]);var p=r.getInterval.call(a),g=u[0],d=u[1];if(f&&c)p=(d-g)/o;else if(f)for(d=u[0]+p*o;du[0]&&isFinite(g)&&isFinite(u[0]);)p=oe(p),g=u[1]-p*o;else{var y=a.getTicks().length-1;y>o&&(p=oe(p));var S=p*o;d=Math.ceil(u[1]/p)*p,g=Et(d-S),g<0&&u[0]>=0?(g=0,d=Et(S)):d>0&&u[1]<=0&&(d=0,g=-Et(S))}var x=(i[0].value-n[0].value)/s,_=(i[o].value-n[o].value)/s;r.setExtent.call(a,g+p*x,d+p*_),r.setInterval.call(a,p),(x||_)&&r.setNiceExtent.call(a,g+p,d-p)}var Xn=function(){function a(t,e,r){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=Re,this._initCartesian(t,e,r),this.model=t}return a.prototype.getRect=function(){return this._rect},a.prototype.update=function(t,e){var r=this._axesMap;this._updateScale(t,this.model);function i(o){var s,l=rt(o),u=l.length;if(u){for(var f=[],c=u-1;c>=0;c--){var v=+l[c],h=o[v],p=h.model,g=h.scale;Le(g)&&p.get("alignTicks")&&p.get("interval")==null?f.push(h):(Me(g,p),Le(g)&&(s=h))}f.length&&(s||(s=f.pop(),Me(s.scale,s.model)),m(f,function(d){$a(d.scale,d.model,s.scale)}))}}i(r.x),i(r.y);var n={};m(r.x,function(o){wr(r,"y",o,n)}),m(r.y,function(o){wr(r,"x",o,n)}),this.resize(this.model,e)},a.prototype.resize=function(t,e,r){var i=t.getBoxLayoutParams(),n=!r&&t.get("containLabel"),o=Je(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var s=this._axesList;l(),n&&(m(s,function(u){if(!u.model.get(["axisLabel","inside"])){var f=Gi(u);if(f){var c=u.isHorizontal()?"height":"width",v=u.model.get(["axisLabel","margin"]);o[c]-=f[c]+v,u.position==="top"?o.y+=f.height+v:u.position==="left"&&(o.x+=f.width+v)}}}),l()),m(this._coordsList,function(u){u.calcAffineTransform()});function l(){m(s,function(u){var f=u.isHorizontal(),c=f?[0,o.width]:[0,o.height],v=u.inverse?1:0;u.setExtent(c[v],c[1-v]),Hn(u,f?o.x:o.y)})}},a.prototype.getAxis=function(t,e){var r=this._axesMap[t];if(r!=null)return r[e||0]},a.prototype.getAxes=function(){return this._axesList.slice()},a.prototype.getCartesian=function(t,e){if(t!=null&&e!=null){var r="x"+t+"y"+e;return this._coordsMap[r]}tt(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,n=this._coordsList;i0?"top":"bottom",n="center"):Ut(i-at)?(o=r>0?"bottom":"top",n="center"):(o="middle",i>0&&i0?"right":"left":n=r>0?"left":"right"),{rotation:i,textAlign:n,textVerticalAlign:o}},a.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},a.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},a}(),Tr={axisLine:function(a,t,e,r){var i=t.get(["axisLine","show"]);if(i==="auto"&&a.handleAutoShown&&(i=a.handleAutoShown("axisLine")),!!i){var n=t.axis.getExtent(),o=r.transform,s=[n[0],0],l=[n[1],0],u=s[0]>l[0];o&&(et(s,s,o),et(l,l,o));var f=O({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),c=new mt({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:f,strokeContainThreshold:a.strokeContainThreshold||5,silent:!0,z2:1});Ht(c.shape,c.style.lineWidth),c.anid="line",e.add(c);var v=t.get(["axisLine","symbol"]);if(v!=null){var h=t.get(["axisLine","symbolSize"]);J(v)&&(v=[v,v]),(J(h)||Oa(h))&&(h=[h,h]);var p=He(t.get(["axisLine","symbolOffset"])||0,h),g=h[0],d=h[1];m([{rotate:a.rotation+Math.PI/2,offset:p[0],r:0},{rotate:a.rotation-Math.PI/2,offset:p[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(y,S){if(v[S]!=="none"&&v[S]!=null){var x=Xe(v[S],-g/2,-d/2,g,d,f.stroke,!0),_=y.r+y.offset,L=u?l:s;x.attr({rotation:y.rotate,x:L[0]+_*Math.cos(a.rotation),y:L[1]-_*Math.sin(a.rotation),silent:!0,z2:11}),e.add(x)}})}}},axisTickLabel:function(a,t,e,r){var i=jn(e,r,t,a),n=Kn(e,r,t,a);if($n(t,n,i),Jn(e,r,t,a.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=wn(I(n,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));Tn(o)}},axisName:function(a,t,e,r){var i=xt(a.axisName,t.get("name"));if(i){var n=t.get("nameLocation"),o=a.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),f=u[0]>u[1]?-1:1,c=[n==="start"?u[0]-f*l:n==="end"?u[1]+f*l:(u[0]+u[1])/2,Mr(n)?a.labelOffset+o*l:0],v,h=t.get("nameRotate");h!=null&&(h=h*at/180);var p;Mr(n)?v=ut.innerTextLayout(a.rotation,h??a.rotation,o):(v=Zn(a.rotation,n,h||0,u),p=a.axisNameAvailableWidth,p!=null&&(p=Math.abs(p/Math.sin(v.rotation)),!isFinite(p)&&(p=null)));var g=s.getFont(),d=t.get("nameTruncate",!0)||{},y=d.ellipsis,S=xt(a.nameTruncateMaxWidth,d.maxWidth,p),x=new Fa({x:c[0],y:c[1],rotation:v.rotation,silent:ut.isLabelSilent(t),style:La(s,{text:i,font:g,overflow:"truncate",width:S,ellipsis:y,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||v.textAlign,verticalAlign:s.get("verticalAlign")||v.textVerticalAlign}),z2:1});if(Ma({el:x,componentModel:t,itemName:i}),x.__fullText=i,x.anid="name",t.get("triggerEvent")){var _=ut.makeAxisEventDataBase(t);_.targetType="axisName",_.name=i,dt(x).eventData=_}r.add(x),x.updateTransform(),e.add(x),x.decomposeTransform()}}};function Zn(a,t,e,r){var i=Pa(e-a),n,o,s=r[0]>r[1],l=t==="start"&&!s||t!=="start"&&s;return Ut(i-at/2)?(o=l?"bottom":"top",n="center"):Ut(i-at*1.5)?(o=l?"top":"bottom",n="center"):(o="middle",iat/2?n=l?"left":"right":n=l?"right":"left"),{rotation:i,textAlign:n,textVerticalAlign:o}}function $n(a,t,e){if(!Vi(a.axis)){var r=a.get(["axisLabel","showMinLabel"]),i=a.get(["axisLabel","showMaxLabel"]);t=t||[],e=e||[];var n=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=e[0],f=e[1],c=e[e.length-1],v=e[e.length-2];r===!1?(W(n),W(u)):Lr(n,o)&&(r?(W(o),W(f)):(W(n),W(u))),i===!1?(W(s),W(c)):Lr(l,s)&&(i?(W(l),W(v)):(W(s),W(c)))}}function W(a){a&&(a.ignore=!0)}function Lr(a,t){var e=a&&a.getBoundingRect().clone(),r=t&&t.getBoundingRect().clone();if(!(!e||!r)){var i=ln([]);return qe(i,i,-a.rotation),e.applyTransform(Zt([],i,a.getLocalTransform())),r.applyTransform(Zt([],i,t.getLocalTransform())),e.intersect(r)}}function Mr(a){return a==="middle"||a==="center"}function ja(a,t,e,r,i){for(var n=[],o=[],s=[],l=0;l=0||a===t}function ro(a){var t=Ja(a);if(t){var e=t.axisPointerModel,r=t.axis.scale,i=e.option,n=e.get("status"),o=e.get("value");o!=null&&(o=r.parse(o));var s=Ge(e);n==null&&(i.status=s?"show":"hide");var l=r.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o0&&!p.min?p.min=0:p.min!=null&&p.min<0&&!p.max&&(p.max=0);var g=l;p.color!=null&&(g=V({color:p.color},l));var d=B(X(p),{boundaryGap:e,splitNumber:r,scale:i,axisLine:n,axisTick:o,axisLabel:s,name:p.text,showName:u,nameLocation:"end",nameGap:c,nameTextStyle:g,triggerEvent:v},!1);if(J(f)){var y=d.name;d.name=f.replace("{value}",y??"")}else Qe(f)&&(d.name=f(d.name,d));var S=new Dt(d,null,this.ecModel);return ae(S,$e.prototype),S.mainType="radar",S.componentIndex=this.componentIndex,S},this);this._indicatorModels=h},t.prototype.getIndicatorModels=function(){return this._indicatorModels},t.type="radar",t.defaultOption={z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:B({lineStyle:{color:"#bbb"}},Tt.axisLine),axisLabel:zt(Tt.axisLabel,!1),axisTick:zt(Tt.axisTick,!1),splitLine:zt(Tt.splitLine,!0),splitArea:zt(Tt.splitArea,!0),indicator:[]},t}(_t);const po=vo;var go=["axisLine","axisTickLabel","axisName"],yo=function(a){D(t,a);function t(){var e=a!==null&&a.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,r,i){var n=this.group;n.removeAll(),this._buildAxes(e),this._buildSplitLineAndArea(e)},t.prototype._buildAxes=function(e){var r=e.coordinateSystem,i=r.getIndicatorAxes(),n=I(i,function(o){var s=o.model.get("showName")?o.name:"",l=new rr(o.model,{axisName:s,position:[r.cx,r.cy],rotation:o.angle,labelDirection:-1,tickDirection:-1,nameDirection:1});return l});m(n,function(o){m(go,o.add,o),this.group.add(o.getGroup())},this)},t.prototype._buildSplitLineAndArea=function(e){var r=e.coordinateSystem,i=r.getIndicatorAxes();if(!i.length)return;var n=e.get("shape"),o=e.getModel("splitLine"),s=e.getModel("splitArea"),l=o.getModel("lineStyle"),u=s.getModel("areaStyle"),f=o.get("show"),c=s.get("show"),v=l.get("color"),h=u.get("color"),p=Z(v)?v:[v],g=Z(h)?h:[h],d=[],y=[];function S(F,H,wt){var Ct=wt%H.length;return F[Ct]=F[Ct]||[],Ct}if(n==="circle")for(var x=i[0].getTicksCoords(),_=r.cx,L=r.cy,w=0;w3?1.4:o>1?1.2:1.1,f=n>0?u:1/u;pe(this,"zoom","zoomOnMouseWheel",e,{scale:f,originX:s,originY:l,isAvailableBehavior:null})}if(i){var c=Math.abs(n),v=(n>0?1:-1)*(c>3?.4:c>1?.15:.05);pe(this,"scrollMove","moveOnMouseWheel",e,{scrollDelta:v,originX:s,originY:l,isAvailableBehavior:null})}}},t.prototype._pinchHandler=function(e){if(!Rr(this._zr,"globalPan")){var r=e.pinchScale>1?1.1:1/1.1;pe(this,"zoom",null,e,{scale:r,originX:e.pinchX,originY:e.pinchY,isAvailableBehavior:null})}},t}(Ba);function pe(a,t,e,r,i){a.pointerChecker&&a.pointerChecker(r,i.originX,i.originY)&&(Ra(r.event),Qa(a,t,e,r,i))}function Qa(a,t,e,r,i){i.isAvailableBehavior=Y(Xt,null,e,r),a.trigger(t,i)}function Xt(a,t,e){var r=e[a];return!a||r&&(!J(r)||t.event[r+"Key"])}const To=Co;function Lo(a,t,e){var r=a.target;r.x+=t,r.y+=e,r.dirty()}function Mo(a,t,e,r){var i=a.target,n=a.zoomLimit,o=a.zoom=a.zoom||1;if(o*=t,n){var s=n.min||0,l=n.max||1/0;o=Math.max(Math.min(l,o),s)}var u=o/a.zoom;a.zoom=o,i.x-=(e-i.x)*(u-1),i.y-=(r-i.y)*(u-1),i.scaleX*=u,i.scaleY*=u,i.dirty()}var Po={axisPointer:1,tooltip:1,brush:1};function ti(a,t,e){var r=t.getComponentByElement(a.topTarget),i=r&&r.coordinateSystem;return r&&r!==e&&!Po.hasOwnProperty(r.mainType)&&i&&i.model!==e}function ei(a){if(J(a)){var t=new DOMParser;a=t.parseFromString(a,"text/xml")}var e=a;for(e.nodeType===9&&(e=e.firstChild);e.nodeName.toLowerCase()!=="svg"||e.nodeType!==1;)e=e.nextSibling;return e}var ge,jt={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-anchor":"textAlign",visibility:"visibility",display:"display"},Gr=rt(jt),Jt={"alignment-baseline":"textBaseline","stop-color":"stopColor"},kr=rt(Jt),Eo=function(){function a(){this._defs={},this._root=null}return a.prototype.parse=function(t,e){e=e||{};var r=ei(t);this._defsUsePending=[];var i=new R;this._root=i;var n=[],o=r.getAttribute("viewBox")||"",s=parseFloat(r.getAttribute("width")||e.width),l=parseFloat(r.getAttribute("height")||e.height);isNaN(s)&&(s=null),isNaN(l)&&(l=null),z(r,i,null,!0,!1);for(var u=r.firstChild;u;)this._parseNode(u,i,n,null,!1,!1),u=u.nextSibling;Go(this._defs,this._defsUsePending),this._defsUsePending=[];var f,c;if(o){var v=ie(o);v.length>=4&&(f={x:parseFloat(v[0]||0),y:parseFloat(v[1]||0),width:parseFloat(v[2]),height:parseFloat(v[3])})}if(f&&s!=null&&l!=null&&(c=ai(f,{x:0,y:0,width:s,height:l}),!e.ignoreViewBox)){var h=i;i=new R,i.add(h),h.scaleX=h.scaleY=c.scale,h.x=c.x,h.y=c.y}return!e.ignoreRootClip&&s!=null&&l!=null&&i.setClipPath(new ft({shape:{x:0,y:0,width:s,height:l}})),{root:i,width:s,height:l,viewBoxRect:f,viewBoxTransform:c,named:n}},a.prototype._parseNode=function(t,e,r,i,n,o){var s=t.nodeName.toLowerCase(),l,u=i;if(s==="defs"&&(n=!0),s==="text"&&(o=!0),s==="defs"||s==="switch")l=e;else{if(!n){var f=ge[s];if(f&&b(ge,s)){l=f.call(this,t,e);var c=t.getAttribute("name");if(c){var v={name:c,namedFrom:null,svgNodeTagLower:s,el:l};r.push(v),s==="g"&&(u=v)}else i&&r.push({name:i.name,namedFrom:i,svgNodeTagLower:s,el:l});e.add(l)}}var h=Ir[s];if(h&&b(Ir,s)){var p=h.call(this,t),g=t.getAttribute("id");g&&(this._defs[g]=p)}}if(l&&l.isGroup)for(var d=t.firstChild;d;)d.nodeType===1?this._parseNode(d,l,r,u,n,o):d.nodeType===3&&o&&this._parseText(d,l),d=d.nextSibling},a.prototype._parseText=function(t,e){var r=new un({style:{text:t.textContent},silent:!0,x:this._textX||0,y:this._textY||0});N(e,r),z(t,r,this._defsUsePending,!1,!1),Do(r,e);var i=r.style,n=i.fontSize;n&&n<9&&(i.fontSize=9,r.scaleX*=n/9,r.scaleY*=n/9);var o=(i.fontSize||i.fontFamily)&&[i.fontStyle,i.fontWeight,(i.fontSize||12)+"px",i.fontFamily||"sans-serif"].join(" ");i.font=o;var s=r.getBoundingRect();return this._textX+=s.width,e.add(r),r},a.internalField=function(){ge={g:function(t,e){var r=new R;return N(e,r),z(t,r,this._defsUsePending,!1,!1),r},rect:function(t,e){var r=new ft;return N(e,r),z(t,r,this._defsUsePending,!1,!1),r.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),r.silent=!0,r},circle:function(t,e){var r=new Da;return N(e,r),z(t,r,this._defsUsePending,!1,!1),r.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),r.silent=!0,r},line:function(t,e){var r=new mt;return N(e,r),z(t,r,this._defsUsePending,!1,!1),r.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),r.silent=!0,r},ellipse:function(t,e){var r=new zi;return N(e,r),z(t,r,this._defsUsePending,!1,!1),r.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),r.silent=!0,r},polygon:function(t,e){var r=t.getAttribute("points"),i;r&&(i=Or(r));var n=new re({shape:{points:i||[]},silent:!0});return N(e,n),z(t,n,this._defsUsePending,!1,!1),n},polyline:function(t,e){var r=t.getAttribute("points"),i;r&&(i=Or(r));var n=new ee({shape:{points:i||[]},silent:!0});return N(e,n),z(t,n,this._defsUsePending,!1,!1),n},image:function(t,e){var r=new Ia;return N(e,r),z(t,r,this._defsUsePending,!1,!1),r.setStyle({image:t.getAttribute("xlink:href")||t.getAttribute("href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),r.silent=!0,r},text:function(t,e){var r=t.getAttribute("x")||"0",i=t.getAttribute("y")||"0",n=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(r)+parseFloat(n),this._textY=parseFloat(i)+parseFloat(o);var s=new R;return N(e,s),z(t,s,this._defsUsePending,!1,!0),s},tspan:function(t,e){var r=t.getAttribute("x"),i=t.getAttribute("y");r!=null&&(this._textX=parseFloat(r)),i!=null&&(this._textY=parseFloat(i));var n=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0",s=new R;return N(e,s),z(t,s,this._defsUsePending,!1,!0),this._textX+=parseFloat(n),this._textY+=parseFloat(o),s},path:function(t,e){var r=t.getAttribute("d")||"",i=Bi(r);return N(e,i),z(t,i,this._defsUsePending,!1,!1),i.silent=!0,i}}}(),a}(),Ir={lineargradient:function(a){var t=parseInt(a.getAttribute("x1")||"0",10),e=parseInt(a.getAttribute("y1")||"0",10),r=parseInt(a.getAttribute("x2")||"10",10),i=parseInt(a.getAttribute("y2")||"0",10),n=new Wi(t,e,r,i);return Vr(a,n),Fr(a,n),n},radialgradient:function(a){var t=parseInt(a.getAttribute("cx")||"0",10),e=parseInt(a.getAttribute("cy")||"0",10),r=parseInt(a.getAttribute("r")||"0",10),i=new Ni(t,e,r);return Vr(a,i),Fr(a,i),i}};function Vr(a,t){var e=a.getAttribute("gradientUnits");e==="userSpaceOnUse"&&(t.global=!0)}function Fr(a,t){for(var e=a.firstChild;e;){if(e.nodeType===1&&e.nodeName.toLocaleLowerCase()==="stop"){var r=e.getAttribute("offset"),i=void 0;r&&r.indexOf("%")>0?i=parseInt(r,10)/100:r?i=parseFloat(r):i=0;var n={};ri(e,n,n);var o=n.stopColor||e.getAttribute("stop-color")||"#000000";t.colorStops.push({offset:i,color:o})}e=e.nextSibling}}function N(a,t){a&&a.__inheritedStyle&&(t.__inheritedStyle||(t.__inheritedStyle={}),V(t.__inheritedStyle,a.__inheritedStyle))}function Or(a){for(var t=ie(a),e=[],r=0;r0;n-=2){var o=r[n],s=r[n-1],l=ie(o);switch(i=i||tr(),s){case"translate":Wa(i,i,[parseFloat(l[0]),parseFloat(l[1]||"0")]);break;case"scale":cn(i,i,[parseFloat(l[0]),parseFloat(l[1]||l[0])]);break;case"rotate":qe(i,i,-parseFloat(l[0])*de);break;case"skewX":var u=Math.tan(parseFloat(l[0])*de);Zt(i,[1,0,u,1,0,0],i);break;case"skewY":var f=Math.tan(parseFloat(l[0])*de);Zt(i,[1,f,0,1,0,0],i);break;case"matrix":i[0]=parseFloat(l[0]),i[1]=parseFloat(l[1]),i[2]=parseFloat(l[2]),i[3]=parseFloat(l[3]),i[4]=parseFloat(l[4]),i[5]=parseFloat(l[5]);break}}t.setLocalTransform(i)}}var Br=/([^\s:;]+)\s*:\s*([^:;]+)/g;function ri(a,t,e){var r=a.getAttribute("style");if(r){Br.lastIndex=0;for(var i;(i=Br.exec(r))!=null;){var n=i[1],o=b(jt,n)?jt[n]:null;o&&(t[o]=i[2]);var s=b(Jt,n)?Jt[n]:null;s&&(e[s]=i[2])}}}function Fo(a,t,e){for(var r=0;r0,d={api:r,geo:l,mapOrGeoModel:t,data:s,isVisualEncodedByVisualMap:g,isGeo:o,transformInfoRaw:v};l.resourceType==="geoJSON"?this._buildGeoJSON(d):l.resourceType==="geoSVG"&&this._buildSVG(d),this._updateController(t,e,r),this._updateMapSelectHandler(t,u,r,i)},a.prototype._buildGeoJSON=function(t){var e=this._regionsGroupByName=k(),r=k(),i=this._regionsGroup,n=t.transformInfoRaw,o=t.mapOrGeoModel,s=t.data,l=t.geo.projection,u=l&&l.stream;function f(h,p){return p&&(h=p(h)),h&&[h[0]*n.scaleX+n.x,h[1]*n.scaleY+n.y]}function c(h){for(var p=[],g=!u&&l&&l.project,d=0;d=0)&&(v=i);var h=o?{normal:{align:"center",verticalAlign:"middle"}}:null;Ue(t,Ft(r),{labelFetcher:v,labelDataIndex:c,defaultText:e},h);var p=t.getTextContent();if(p&&(ii(p).ignore=p.ignore,t.textConfig&&o)){var g=t.getBoundingRect().clone();t.textConfig.layoutRect=g,t.textConfig.position=[(o[0]-g.x)/g.width*100+"%",(o[1]-g.y)/g.height*100+"%"]}t.disableLabelAnimation=!0}else t.removeTextContent(),t.removeTextConfig(),t.disableLabelAnimation=null}function Hr(a,t,e,r,i,n){a.data?a.data.setItemGraphicEl(n,t):dt(t).eventData={componentType:"geo",componentIndex:i.componentIndex,geoIndex:i.componentIndex,name:e,region:r&&r.option||{}}}function Ur(a,t,e,r,i){a.data||Ma({el:t,componentModel:i,itemName:e,itemTooltipOption:r.get("tooltip")})}function Zr(a,t,e,r,i){t.highDownSilentOnTouch=!!i.get("selectedMode");var n=r.getModel("emphasis"),o=n.get("focus");return Ze(t,o,n.get("blurScope"),n.get("disabled")),a.isGeo&&$i(t,i,e),o}function $r(a,t,e){var r=[],i;function n(){i=[]}function o(){i.length&&(r.push(i),i=[])}var s=t({polygonStart:n,polygonEnd:o,lineStart:n,lineEnd:o,point:function(l,u){isFinite(l)&&isFinite(u)&&i.push([l,u])},sphere:function(){}});return!e&&s.polygonStart(),m(a,function(l){s.lineStart();for(var u=0;u1?(_.width=x,_.height=x/d):(_.height=x,_.width=x*d),_.y=S[1]-_.height/2,_.x=S[0]-_.width/2;else{var L=a.getBoxLayoutParams();L.aspect=d,_=Je(L,{width:p,height:g})}this.setViewRect(_.x,_.y,_.width,_.height),this.setCenter(a.get("center"),t),this.setZoom(a.get("zoom"))}function ns(a,t){m(t.get("geoCoord"),function(e,r){a.addGeoCoord(r,e)})}var os=function(){function a(){this.dimensions=oi}return a.prototype.create=function(t,e){var r=[];function i(o){return{nameProperty:o.get("nameProperty"),aspectScale:o.get("aspectScale"),projection:o.get("projection")}}t.eachComponent("geo",function(o,s){var l=o.get("map"),u=new qr(l+s,l,O({nameMap:o.get("nameMap")},i(o)));u.zoomLimit=o.get("scaleLimit"),r.push(u),o.coordinateSystem=u,u.model=o,u.resize=Qr,u.resize(o,e)}),t.eachSeries(function(o){var s=o.get("coordinateSystem");if(s==="geo"){var l=o.get("geoIndex")||0;o.coordinateSystem=r[l]}});var n={};return t.eachSeriesByType("map",function(o){if(!o.getHostGeoModel()){var s=o.getMapType();n[s]=n[s]||[],n[s].push(o)}}),m(n,function(o,s){var l=I(o,function(f){return f.get("nameMap")}),u=new qr(s,s,O({nameMap:dn(l)},i(o[0])));u.zoomLimit=xt.apply(null,I(o,function(f){return f.get("scaleLimit")})),r.push(u),u.resize=Qr,u.resize(o[0],e),m(o,function(f){f.coordinateSystem=u,ns(u,f)})}),r},a.prototype.getFilledRegions=function(t,e,r,i){for(var n=(t||[]).slice(),o=k(),s=0;s=0;n--)r[n]==null&&(delete e[t[n]],t.pop())}function ye(a,t){var e=a.visual,r=[];tt(e)?It(e,function(n){r.push(n)}):e!=null&&r.push(e);var i={color:1,symbol:1};!t&&r.length===1&&!i.hasOwnProperty(a.type)&&(r[1]=r[0]),ui(a,r)}function Wt(a){return{applyVisual:function(t,e,r){var i=this.mapValueToVisual(t);r("color",a(e("color"),i))},_normalizedToVisual:Ve([0,1])}}function ea(a){var t=this.option.visual;return t[Math.round(Rt(a,[0,1],[0,t.length-1],!0))]||{}}function Mt(a){return function(t,e,r){r(a,this.mapValueToVisual(t))}}function Pt(a){var t=this.option.visual;return t[this.option.loop&&a!==Kt?a%t.length:a]}function st(){return this.option.visual[0]}function Ve(a){return{linear:function(t){return Rt(t,a,this.option.visual,!0)},category:Pt,piecewise:function(t,e){var r=Fe.call(this,e);return r==null&&(r=Rt(t,a,this.option.visual,!0)),r},fixed:st}}function Fe(a){var t=this.option,e=t.pieceList;if(t.hasSpecialVisual){var r=nr.findPieceIndex(a,e),i=e[r];if(i&&i.visual)return i.visual[this.type]}}function ui(a,t){return a.visual=t,a.type==="color"&&(a.parsedVisual=I(t,function(e){var r=xn(e);return r||[0,0,0,1]})),t}var ys={linear:function(a){return Rt(a,this.option.dataExtent,[0,1],!0)},piecewise:function(a){var t=this.option.pieceList,e=nr.findPieceIndex(a,t,!0);if(e!=null)return Rt(e,[0,t.length-1],[0,1],!0)},category:function(a){var t=this.option.categories?this.option.categoryMap[a]:a;return t??Kt},fixed:za};function Nt(a,t,e){return a?t<=e:t0&&(L[0]=-L[0],L[1]=-L[1]);var T=_[0]<0?-1:1;if(n.__position!=="start"&&n.__position!=="end"){var A=-Math.atan2(_[1],_[0]);c[0].8?"left":v[0]<-.8?"right":"center",g=v[1]>.8?"top":v[1]<-.8?"bottom":"middle";break;case"start":n.x=-v[0]*y+f[0],n.y=-v[1]*S+f[1],p=v[0]>.8?"right":v[0]<-.8?"left":"center",g=v[1]>.8?"bottom":v[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":n.x=y*T+f[0],n.y=f[1]+C,p=_[0]<0?"right":"left",n.originX=-y*T,n.originY=-C;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":n.x=w[0],n.y=w[1]+C,p="center",n.originY=-C;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":n.x=-y*T+c[0],n.y=c[1]+C,p=_[0]>=0?"right":"left",n.originX=y*T,n.originY=-C;break}n.scaleX=n.scaleY=o,n.setStyle({verticalAlign:n.__verticalAlign||g,align:n.__align||p})}},t}(R);const _s=bs;var As=function(){function a(t){this.group=new R,this._LineCtor=t||_s}return a.prototype.updateData=function(t){var e=this;this._progressiveEls=null;var r=this,i=r.group,n=r._lineData;r._lineData=t,n||i.removeAll();var o=na(t);t.diff(n).add(function(s){e._doAdd(t,s,o)}).update(function(s,l){e._doUpdate(n,t,l,s,o)}).remove(function(s){i.remove(n.getItemGraphicEl(s))}).execute()},a.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(e,r){e.updateLayout(t,r)},this)},a.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=na(t),this._lineData=null,this.group.removeAll()},a.prototype.incrementalUpdate=function(t,e){this._progressiveEls=[];function r(s){!s.isGroup&&!ws(s)&&(s.incremental=!0,s.ensureState("emphasis").hoverLayer=!0)}for(var i=t.start;i0}function na(a){var t=a.hostModel,e=t.getModel("emphasis");return{lineStyle:t.getModel("lineStyle").getLineStyle(),emphasisLineStyle:e.getModel(["lineStyle"]).getLineStyle(),blurLineStyle:t.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:t.getModel(["select","lineStyle"]).getLineStyle(),emphasisDisabled:e.get("disabled"),blurScope:e.get("blurScope"),focus:e.get("focus"),labelStatesModels:Ft(t)}}function oa(a){return isNaN(a[0])||isNaN(a[1])}function be(a){return a&&!oa(a[0])&&!oa(a[1])}const Hl=As;function Cs(a){Ts(a),Ls(a)}function Ts(a){if(!a.parallel){var t=!1;m(a.series,function(e){e&&e.type==="parallel"&&(t=!0)}),t&&(a.parallel=[{}])}}function Ls(a){var t=Gt(a.parallelAxis);m(t,function(e){if(tt(e)){var r=e.parallelIndex||0,i=Gt(a.parallel)[r];i&&i.parallelAxisDefault&&B(e,i.parallelAxisDefault,!1)}})}var Ms=5,Ps=function(a){D(t,a);function t(){var e=a!==null&&a.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.render=function(e,r,i){this._model=e,this._api=i,this._handlers||(this._handlers={},m(Es,function(n,o){i.getZr().on(o,this._handlers[o]=Y(n,this))},this)),qi(this,"_throttledDispatchExpand",e.get("axisExpandRate"),"fixRate")},t.prototype.dispose=function(e,r){Qi(this,"_throttledDispatchExpand"),m(this._handlers,function(i,n){r.getZr().off(n,i)}),this._handlers=null},t.prototype._throttledDispatchExpand=function(e){this._dispatchExpand(e)},t.prototype._dispatchExpand=function(e){e&&this._api.dispatchAction(O({type:"parallelAxisExpand"},e))},t.type="parallel",t}(At),Es={mousedown:function(a){_e(this,"click")&&(this._mouseDownPoint=[a.offsetX,a.offsetY])},mouseup:function(a){var t=this._mouseDownPoint;if(_e(this,"click")&&t){var e=[a.offsetX,a.offsetY],r=Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2);if(r>Ms)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([a.offsetX,a.offsetY]);i.behavior!=="none"&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(a){if(!(this._mouseDownPoint||!_e(this,"mousemove"))){var t=this._model,e=t.coordinateSystem.getSlidedAxisExpandWindow([a.offsetX,a.offsetY]),r=e.behavior;r==="jump"&&this._throttledDispatchExpand.debounceNextCall(t.get("axisExpandDebounce")),this._throttledDispatchExpand(r==="none"?null:{axisExpandWindow:e.axisExpandWindow,animation:r==="jump"?null:{duration:0}})}}};function _e(a,t){var e=a._model;return e.get("axisExpandable")&&e.get("axisExpandTriggerOn")===t}const Ds=Ps;var Rs=function(a){D(t,a);function t(){var e=a!==null&&a.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.init=function(){a.prototype.init.apply(this,arguments),this.mergeOption({})},t.prototype.mergeOption=function(e){var r=this.option;e&&B(r,e,!0),this._initDimensions()},t.prototype.contains=function(e,r){var i=e.get("parallelIndex");return i!=null&&r.getComponent("parallel",i)===this},t.prototype.setAxisExpand=function(e){m(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],function(r){e.hasOwnProperty(r)&&(this.option[r]=e[r])},this)},t.prototype._initDimensions=function(){var e=this.dimensions=[],r=this.parallelAxisIndex=[],i=Ke(this.ecModel.queryComponents({mainType:"parallelAxis"}),function(n){return(n.get("parallelIndex")||0)===this.componentIndex},this);m(i,function(n){e.push("dim"+n.get("dim")),r.push(n.componentIndex)})},t.type="parallel",t.dependencies=["parallelAxis"],t.layoutMode="box",t.defaultOption={z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},t}(_t);const Gs=Rs;var ks=function(a){D(t,a);function t(e,r,i,n,o){var s=a.call(this,e,r,i)||this;return s.type=n||"value",s.axisIndex=o,s}return t.prototype.isHorizontal=function(){return this.coordinateSystem.getModel().get("layout")!=="horizontal"},t}(je);const Is=ks;function Vs(a,t,e,r,i,n){a=a||0;var o=e[1]-e[0];if(i!=null&&(i=pt(i,[0,o])),n!=null&&(n=Math.max(n,i??0)),r==="all"){var s=Math.abs(t[1]-t[0]);s=pt(s,[0,o]),i=n=pt(s,[i,n]),r=0}t[0]=pt(t[0],e),t[1]=pt(t[1],e);var l=Ae(t,r);t[r]+=a;var u=i||0,f=e.slice();l.sign<0?f[0]+=u:f[1]-=u,t[r]=pt(t[r],f);var c;return c=Ae(t,r),i!=null&&(c.sign!==l.sign||c.spann&&(t[1-r]=t[r]+c.sign*n),t}function Ae(a,t){var e=a[t]-a[1-t];return{span:Math.abs(e),sign:e>0?-1:e<0?1:t?-1:1}}function pt(a,t){return Math.min(t[1]!=null?t[1]:1/0,Math.max(t[0]!=null?t[0]:-1/0,a))}var we=m,ci=Math.min,hi=Math.max,sa=Math.floor,Fs=Math.ceil,la=Et,Os=Math.PI,zs=function(){function a(t,e,r){this.type="parallel",this._axesMap=k(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,r)}return a.prototype._init=function(t,e,r){var i=t.dimensions,n=t.parallelAxisIndex;we(i,function(o,s){var l=n[s],u=e.getComponent("parallelAxis",l),f=this._axesMap.set(o,new Is(o,Ta(u),[0,0],u.get("type"),l)),c=f.type==="category";f.onBand=c&&u.get("boundaryGap"),f.inverse=u.get("inverse"),u.axis=f,f.model=u,f.coordinateSystem=u.coordinateSystem=this},this)},a.prototype.update=function(t,e){this._updateAxesFromSeries(this._model,t)},a.prototype.containPoint=function(t){var e=this._makeLayoutInfo(),r=e.axisBase,i=e.layoutBase,n=e.pixelDimIndex,o=t[1-n],s=t[n];return o>=r&&o<=r+e.axisLength&&s>=i&&s<=i+e.layoutLength},a.prototype.getModel=function(){return this._model},a.prototype._updateAxesFromSeries=function(t,e){e.eachSeries(function(r){if(t.contains(r,e)){var i=r.getData();we(this.dimensions,function(n){var o=this._axesMap.get(n);o.scale.unionExtentFromData(i,i.mapDimension(n)),Me(o.scale,o.model)},this)}},this)},a.prototype.resize=function(t,e){this._rect=Je(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},a.prototype.getRect=function(){return this._rect},a.prototype._makeLayoutInfo=function(){var t=this._model,e=this._rect,r=["x","y"],i=["width","height"],n=t.get("layout"),o=n==="horizontal"?0:1,s=e[i[o]],l=[0,s],u=this.dimensions.length,f=Yt(t.get("axisExpandWidth"),l),c=Yt(t.get("axisExpandCount")||0,[0,u]),v=t.get("axisExpandable")&&u>3&&u>c&&c>1&&f>0&&s>0,h=t.get("axisExpandWindow"),p;if(h)p=Yt(h[1]-h[0],l),h[1]=h[0]+p;else{p=Yt(f*(c-1),l);var g=t.get("axisExpandCenter")||sa(u/2);h=[f*g-p/2],h[1]=h[0]+p}var d=(s-p)/(u-c);d<3&&(d=0);var y=[sa(la(h[0]/f,1))+1,Fs(la(h[1]/f,1))-1],S=d/f*h[0];return{layout:n,pixelDimIndex:o,layoutBase:e[r[o]],layoutLength:s,axisBase:e[r[1-o]],axisLength:e[i[1-o]],axisExpandable:v,axisExpandWidth:f,axisCollapseWidth:d,axisExpandWindow:h,axisCount:u,winInnerIndices:y,axisExpandWindow0Pos:S}},a.prototype._layoutAxes=function(){var t=this._rect,e=this._axesMap,r=this.dimensions,i=this._makeLayoutInfo(),n=i.layout;e.each(function(o){var s=[0,i.axisLength],l=o.inverse?1:0;o.setExtent(s[l],s[1-l])}),we(r,function(o,s){var l=(i.axisExpandable?Ws:Bs)(s,i),u={horizontal:{x:l.position,y:i.axisLength},vertical:{x:0,y:l.position}},f={horizontal:Os/2,vertical:0},c=[u[n].x+t.x,u[n].y+t.y],v=f[n],h=tr();qe(h,h,v),Wa(h,h,c),this._axesLayout[o]={position:c,rotation:v,transform:h,axisNameAvailableWidth:l.axisNameAvailableWidth,axisLabelShow:l.axisLabelShow,nameTruncateMaxWidth:l.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}},this)},a.prototype.getAxis=function(t){return this._axesMap.get(t)},a.prototype.dataToPoint=function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},a.prototype.eachActiveState=function(t,e,r,i){r==null&&(r=0),i==null&&(i=t.count());var n=this._axesMap,o=this.dimensions,s=[],l=[];m(o,function(d){s.push(t.mapDimension(d)),l.push(n.get(d).model)});for(var u=this.hasAxisBrushed(),f=r;fn*(1-c[0])?(u="jump",l=s-n*(1-c[2])):(l=s-n*c[1])>=0&&(l=s-n*(1-c[1]))<=0&&(l=0),l*=e.axisExpandWidth/f,l?Vs(l,i,o,"all"):u="none";else{var h=i[1]-i[0],p=o[1]*s/h;i=[hi(0,p-h/2)],i[1]=ci(o[1],i[0]+h),i[0]=i[1]-h}return{axisExpandWindow:i,behavior:u}},a}();function Yt(a,t){return ci(hi(a,t[0]),t[1])}function Bs(a,t){var e=t.layoutLength/(t.axisCount-1);return{position:e*a,axisNameAvailableWidth:e,axisLabelShow:!0}}function Ws(a,t){var e=t.layoutLength,r=t.axisExpandWidth,i=t.axisCount,n=t.axisCollapseWidth,o=t.winInnerIndices,s,l=n,u=!1,f;return a=0;i--)rn(r[i])},t.prototype.getActiveState=function(e){var r=this.activeIntervals;if(!r.length)return"normal";if(e==null||isNaN(+e))return"inactive";if(r.length===1){var i=r[0];if(i[0]<=e&&e<=i[1])return"active"}else for(var n=0,o=r.length;n$s}function xi(a){var t=a.length-1;return t<0&&(t=0),[a[0],a[t]]}function Si(a,t,e,r){var i=new R;return i.add(new ft({name:"main",style:ur(e),silent:!0,draggable:!0,cursor:"move",drift:Q(ha,a,t,i,["n","s","w","e"]),ondragend:Q(ht,t,{isEnd:!0})})),m(r,function(n){i.add(new ft({name:n.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:Q(ha,a,t,i,n),ondragend:Q(ht,t,{isEnd:!0})}))}),i}function bi(a,t,e,r){var i=r.brushStyle.lineWidth||0,n=St(i,js),o=e[0][0],s=e[1][0],l=o-i/2,u=s-i/2,f=e[0][1],c=e[1][1],v=f-n+i/2,h=c-n+i/2,p=f-o,g=c-s,d=p+i,y=g+i;K(a,t,"main",o,s,p,g),r.transformable&&(K(a,t,"w",l,u,n,y),K(a,t,"e",v,u,n,y),K(a,t,"n",l,u,d,n),K(a,t,"s",l,h,d,n),K(a,t,"nw",l,u,n,n),K(a,t,"ne",v,u,n,n),K(a,t,"sw",l,h,n,n),K(a,t,"se",v,h,n,n))}function Be(a,t){var e=t.__brushOption,r=e.transformable,i=t.childAt(0);i.useStyle(ur(e)),i.attr({silent:!r,cursor:r?"move":"default"}),m([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],function(n){var o=t.childOfName(n.join("")),s=n.length===1?We(a,n[0]):rl(a,n);o&&o.attr({silent:!r,invisible:!r,cursor:r?Ks[s]+"-resize":null})})}function K(a,t,e,r,i,n,o){var s=t.childOfName(e);s&&s.setShape(il(fr(a,t,[[r,i],[r+n,i+o]])))}function ur(a){return V({strokeNoScale:!0},a.brushStyle)}function _i(a,t,e,r){var i=[Vt(a,e),Vt(t,r)],n=[St(a,e),St(t,r)];return[[i[0],n[0]],[i[1],n[1]]]}function el(a){return on(a.group)}function We(a,t){var e={w:"left",e:"right",n:"top",s:"bottom"},r={left:"w",right:"e",top:"n",bottom:"s"},i=nn(e[t],el(a));return r[i]}function rl(a,t){var e=[We(a,t[0]),We(a,t[1])];return(e[0]==="e"||e[0]==="w")&&e.reverse(),e.join("")}function ha(a,t,e,r,i,n){var o=e.__brushOption,s=a.toRectRange(o.range),l=Ai(t,i,n);m(r,function(u){var f=Js[u];s[f[0]][f[1]]+=l[f[0]]}),o.range=a.fromRectRange(_i(s[0][0],s[1][0],s[0][1],s[1][1])),or(t,e),ht(t,{isEnd:!1})}function al(a,t,e,r){var i=t.__brushOption.range,n=Ai(a,e,r);m(i,function(o){o[0]+=n[0],o[1]+=n[1]}),or(a,t),ht(a,{isEnd:!1})}function Ai(a,t,e){var r=a.group,i=r.transformCoordToLocal(t,e),n=r.transformCoordToLocal(0,0);return[i[0]-n[0],i[1]-n[1]]}function fr(a,t,e){var r=mi(a,t);return r&&r!==ct?r.clipPath(e,a._transform):X(e)}function il(a){var t=Vt(a[0][0],a[1][0]),e=Vt(a[0][1],a[1][1]),r=St(a[0][0],a[1][0]),i=St(a[0][1],a[1][1]);return{x:t,y:e,width:r-t,height:i-e}}function nl(a,t,e){if(!(!a._brushType||sl(a,t.offsetX,t.offsetY))){var r=a._zr,i=a._covers,n=lr(a,t,e);if(!a._dragging)for(var o=0;or.getWidth()||e<0||e>r.getHeight()}var ne={lineX:ga(0),lineY:ga(1),rect:{createCover:function(a,t){function e(r){return r}return Si({toRectRange:e,fromRectRange:e},a,t,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(a){var t=xi(a);return _i(t[1][0],t[1][1],t[0][0],t[0][1])},updateCoverShape:function(a,t,e,r){bi(a,t,e,r)},updateCommon:Be,contain:Ye},polygon:{createCover:function(a,t){var e=new R;return e.add(new ee({name:"main",style:ur(t),silent:!0})),e},getCreatingRange:function(a){return a},endCreating:function(a,t){t.remove(t.childAt(0)),t.add(new re({name:"main",draggable:!0,drift:Q(al,a,t),ondragend:Q(ht,a,{isEnd:!0})}))},updateCoverShape:function(a,t,e,r){t.childAt(0).setShape({points:fr(a,t,e)})},updateCommon:Be,contain:Ye}};function ga(a){return{createCover:function(t,e){return Si({toRectRange:function(r){var i=[r,[0,100]];return a&&i.reverse(),i},fromRectRange:function(r){return r[a]}},t,e,[[["w"],["e"]],[["n"],["s"]]][a])},getCreatingRange:function(t){var e=xi(t),r=Vt(e[0][a],e[1][a]),i=St(e[0][a],e[1][a]);return[r,i]},updateCoverShape:function(t,e,r,i){var n,o=mi(t,e);if(o!==ct&&o.getLinearBrushOtherExtent)n=o.getLinearBrushOtherExtent(a);else{var s=t._zr;n=[0,[s.getWidth(),s.getHeight()][1-a]]}var l=[r,n];a&&l.reverse(),bi(t,e,l,i)},updateCommon:Be,contain:Ye}}const ll=Qs;function ul(a){return a=cr(a),function(t){return sn(t,a)}}function fl(a,t){return a=cr(a),function(e){var r=t??e,i=r?a.width:a.height,n=r?a.x:a.y;return[n,n+(i||0)]}}function cl(a,t,e){var r=cr(a);return function(i,n){return r.contain(n[0],n[1])&&!ti(i,t,e)}}function cr(a){return U.create(a)}var hl=["axisLine","axisTickLabel","axisName"],vl=function(a){D(t,a);function t(){var e=a!==null&&a.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.init=function(e,r){a.prototype.init.apply(this,arguments),(this._brushController=new ll(r.getZr())).on("brush",Y(this._onBrush,this))},t.prototype.render=function(e,r,i,n){if(!pl(e,r,n)){this.axisModel=e,this.api=i,this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new R,this.group.add(this._axisGroup),!!e.get("show")){var s=dl(e,r),l=s.coordinateSystem,u=e.getAreaSelectStyle(),f=u.width,c=e.axis.dim,v=l.getAxisLayout(c),h=O({strokeContainThreshold:f},v),p=new rr(e,h);m(hl,p.add,p),this._axisGroup.add(p.getGroup()),this._refreshBrushController(h,u,e,s,f,i),Ea(o,this._axisGroup,e)}}},t.prototype._refreshBrushController=function(e,r,i,n,o,s){var l=i.axis.getExtent(),u=l[1]-l[0],f=Math.min(30,Math.abs(u)*.1),c=U.create({x:l[0],y:-o/2,width:u,height:o});c.x-=f,c.width+=2*f,this._brushController.mount({enableGlobalPan:!0,rotation:e.rotation,x:e.position[0],y:e.position[1]}).setPanels([{panelId:"pl",clipPath:ul(c),isTargetByCursor:cl(c,s,n),getLinearBrushOtherExtent:fl(c,0)}]).enableBrush({brushType:"lineX",brushStyle:r,removeOnClick:!0}).updateCovers(gl(i))},t.prototype._onBrush=function(e){var r=e.areas,i=this.axisModel,n=i.axis,o=I(r,function(s){return[n.coordToData(s.range[0],!0),n.coordToData(s.range[1],!0)]});(!i.option.realtime===e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:i.id,intervals:o})},t.prototype.dispose=function(){this._brushController.dispose()},t.type="parallelAxis",t}(At);function pl(a,t,e){return e&&e.type==="axisAreaSelect"&&t.findComponents({mainType:"parallelAxis",query:e})[0]===a}function gl(a){var t=a.axis;return I(a.activeIntervals,function(e){return{brushType:"lineX",panelId:"pl",range:[t.dataToCoord(e[0],!0),t.dataToCoord(e[1],!0)]}})}function dl(a,t){return t.getComponent("parallel",a.get("parallelIndex"))}const yl=vl;var ml={type:"axisAreaSelect",event:"axisAreaSelected"};function xl(a){a.registerAction(ml,function(t,e){e.eachComponent({mainType:"parallelAxis",query:t},function(r){r.axis.model.setActiveIntervals(t.intervals)})}),a.registerAction("parallelAxisExpand",function(t,e){e.eachComponent({mainType:"parallel",query:t},function(r){r.setAxisExpand(t)})})}var Sl={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function Ul(a){a.registerComponentView(Ds),a.registerComponentModel(Gs),a.registerCoordinateSystem("parallel",Hs),a.registerPreprocessor(Cs),a.registerComponentModel(ua),a.registerComponentView(yl),De(a,"parallel",ua,Sl),xl(a)}function Zl(a,t,e,r){return a&&(a.legacy||a.legacy!==!1&&!e&&!r&&t!=="tspan"&&(t==="text"||b(a,"text")))}function $l(a,t,e){var r=a,i,n,o;if(t==="text")o=r;else{o={},b(r,"text")&&(o.text=r.text),b(r,"rich")&&(o.rich=r.rich),b(r,"textFill")&&(o.fill=r.textFill),b(r,"textStroke")&&(o.stroke=r.textStroke),b(r,"fontFamily")&&(o.fontFamily=r.fontFamily),b(r,"fontSize")&&(o.fontSize=r.fontSize),b(r,"fontStyle")&&(o.fontStyle=r.fontStyle),b(r,"fontWeight")&&(o.fontWeight=r.fontWeight),n={type:"text",style:o,silent:!0},i={};var s=b(r,"textPosition");e?i.position=s?r.textPosition:"inside":s&&(i.position=r.textPosition),b(r,"textPosition")&&(i.position=r.textPosition),b(r,"textOffset")&&(i.offset=r.textOffset),b(r,"textRotation")&&(i.rotation=r.textRotation),b(r,"textDistance")&&(i.distance=r.textDistance)}return da(o,a),m(o.rich,function(l){da(l,l)}),{textConfig:i,textContent:n}}function da(a,t){t&&(t.font=t.textFont||t.font,b(t,"textStrokeWidth")&&(a.lineWidth=t.textStrokeWidth),b(t,"textAlign")&&(a.align=t.textAlign),b(t,"textVerticalAlign")&&(a.verticalAlign=t.textVerticalAlign),b(t,"textLineHeight")&&(a.lineHeight=t.textLineHeight),b(t,"textWidth")&&(a.width=t.textWidth),b(t,"textHeight")&&(a.height=t.textHeight),b(t,"textBackgroundColor")&&(a.backgroundColor=t.textBackgroundColor),b(t,"textPadding")&&(a.padding=t.textPadding),b(t,"textBorderColor")&&(a.borderColor=t.textBorderColor),b(t,"textBorderWidth")&&(a.borderWidth=t.textBorderWidth),b(t,"textBorderRadius")&&(a.borderRadius=t.textBorderRadius),b(t,"textBoxShadowColor")&&(a.shadowColor=t.textBoxShadowColor),b(t,"textBoxShadowBlur")&&(a.shadowBlur=t.textBoxShadowBlur),b(t,"textBoxShadowOffsetX")&&(a.shadowOffsetX=t.textBoxShadowOffsetX),b(t,"textBoxShadowOffsetY")&&(a.shadowOffsetY=t.textBoxShadowOffsetY))}function jl(a,t,e){var r=a;r.textPosition=r.textPosition||e.position||"inside",e.offset!=null&&(r.textOffset=e.offset),e.rotation!=null&&(r.textRotation=e.rotation),e.distance!=null&&(r.textDistance=e.distance);var i=r.textPosition.indexOf("inside")>=0,n=a.fill||"#000";ya(r,t);var o=r.textFill==null;return i?o&&(r.textFill=e.insideFill||"#fff",!r.textStroke&&e.insideStroke&&(r.textStroke=e.insideStroke),!r.textStroke&&(r.textStroke=n),r.textStrokeWidth==null&&(r.textStrokeWidth=2)):(o&&(r.textFill=a.fill||e.outsideFill||"#000"),!r.textStroke&&e.outsideStroke&&(r.textStroke=e.outsideStroke)),r.text=t.text,r.rich=t.rich,m(t.rich,function(s){ya(s,s)}),r}function ya(a,t){t&&(b(t,"fill")&&(a.textFill=t.fill),b(t,"stroke")&&(a.textStroke=t.fill),b(t,"lineWidth")&&(a.textStrokeWidth=t.lineWidth),b(t,"font")&&(a.font=t.font),b(t,"fontStyle")&&(a.fontStyle=t.fontStyle),b(t,"fontWeight")&&(a.fontWeight=t.fontWeight),b(t,"fontSize")&&(a.fontSize=t.fontSize),b(t,"fontFamily")&&(a.fontFamily=t.fontFamily),b(t,"align")&&(a.textAlign=t.align),b(t,"verticalAlign")&&(a.textVerticalAlign=t.verticalAlign),b(t,"lineHeight")&&(a.textLineHeight=t.lineHeight),b(t,"width")&&(a.textWidth=t.width),b(t,"height")&&(a.textHeight=t.height),b(t,"backgroundColor")&&(a.textBackgroundColor=t.backgroundColor),b(t,"padding")&&(a.textPadding=t.padding),b(t,"borderColor")&&(a.textBorderColor=t.borderColor),b(t,"borderWidth")&&(a.textBorderWidth=t.borderWidth),b(t,"borderRadius")&&(a.textBorderRadius=t.borderRadius),b(t,"shadowColor")&&(a.textBoxShadowColor=t.shadowColor),b(t,"shadowBlur")&&(a.textBoxShadowBlur=t.shadowBlur),b(t,"shadowOffsetX")&&(a.textBoxShadowOffsetX=t.shadowOffsetX),b(t,"shadowOffsetY")&&(a.textBoxShadowOffsetY=t.shadowOffsetY),b(t,"textShadowColor")&&(a.textShadowColor=t.textShadowColor),b(t,"textShadowBlur")&&(a.textShadowBlur=t.textShadowBlur),b(t,"textShadowOffsetX")&&(a.textShadowOffsetX=t.textShadowOffsetX),b(t,"textShadowOffsetY")&&(a.textShadowOffsetY=t.textShadowOffsetY))}var Ci={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},ma=rt(Ci);Ya(kt,function(a,t){return a[t]=1,a},{});kt.join(", ");var qt=["","style","shape","extra"],bt=te();function hr(a,t,e,r,i){var n=a+"Animation",o=ka(a,r,i)||{},s=bt(t).userDuring;return o.duration>0&&(o.during=s?Y(Tl,{el:t,userDuring:s}):null,o.setToFinal=!0,o.scope=a),O(o,e[n]),o}function Jl(a,t,e,r){r=r||{};var i=r.dataIndex,n=r.isInit,o=r.clearStyle,s=e.isAnimationEnabled(),l=bt(a),u=t.style;l.userDuring=t.during;var f={},c={};if(Ml(a,t,c),Sa("shape",t,c),Sa("extra",t,c),!n&&s&&(Ll(a,t,f),xa("shape",a,t,f),xa("extra",a,t,f),Pl(a,t,u,f)),c.style=u,_l(a,c,o),wl(a,t),s)if(n){var v={};m(qt,function(p){var g=p?t[p]:t;g&&g.enterFrom&&(p&&(v[p]=v[p]||{}),O(p?v[p]:v,g.enterFrom))});var h=hr("enter",a,t,e,i);h.duration>0&&a.animateFrom(v,h)}else Al(a,t,i||0,e,f);bl(a,t),u?a.dirty():a.markRedraw()}function bl(a,t){for(var e=bt(a).leaveToProps,r=0;r0&&a.animateFrom(i,n)}}function wl(a,t){b(t,"silent")&&(a.silent=t.silent),b(t,"ignore")&&(a.ignore=t.ignore),a instanceof Pe&&b(t,"invisible")&&(a.invisible=t.invisible),a instanceof Ha&&b(t,"autoBatch")&&(a.autoBatch=t.autoBatch)}var j={},Cl={setTransform:function(a,t){return j.el[a]=t,this},getTransform:function(a){return j.el[a]},setShape:function(a,t){var e=j.el,r=e.shape||(e.shape={});return r[a]=t,e.dirtyShape&&e.dirtyShape(),this},getShape:function(a){var t=j.el.shape;if(t)return t[a]},setStyle:function(a,t){var e=j.el,r=e.style;return r&&(r[a]=t,e.dirtyStyle&&e.dirtyStyle()),this},getStyle:function(a){var t=j.el.style;if(t)return t[a]},setExtra:function(a,t){var e=j.el.extra||(j.el.extra={});return e[a]=t,this},getExtra:function(a){var t=j.el.extra;if(t)return t[a]}};function Tl(){var a=this,t=a.el;if(t){var e=bt(t).userDuring,r=a.userDuring;if(e!==r){a.el=a.userDuring=null;return}j.el=t,r(Cl)}}function xa(a,t,e,r){var i=e[a];if(i){var n=t[a],o;if(n){var s=e.transition,l=i.transition;if(l)if(!o&&(o=r[a]={}),gt(l))O(o,n);else for(var u=Gt(l),f=0;f=0){!o&&(o=r[a]={});for(var h=rt(n),f=0;f=0)){var v=a.getAnimationStyleProps(),h=v?v.style:null;if(h){!n&&(n=r.style={});for(var p=rt(e),u=0;u 0 && balanceShift) { - shiftList(-totalShifts / len, 0, len); - } - var first = list[0]; - var last = list[len - 1]; - var minGap; - var maxGap; - updateMinMaxGap(); - minGap < 0 && squeezeGaps(-minGap, 0.8); - maxGap < 0 && squeezeGaps(maxGap, 0.8); - updateMinMaxGap(); - takeBoundsGap(minGap, maxGap, 1); - takeBoundsGap(maxGap, minGap, -1); - updateMinMaxGap(); - if (minGap < 0) { - squeezeWhenBailout(-minGap); - } - if (maxGap < 0) { - squeezeWhenBailout(maxGap); - } - function updateMinMaxGap() { - minGap = first.rect[xyDim] - minBound; - maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim]; - } - function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) { - if (gapThisBound < 0) { - var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound); - if (moveFromMaxGap > 0) { - shiftList(moveFromMaxGap * moveDir, 0, len); - var remained = moveFromMaxGap + gapThisBound; - if (remained < 0) { - squeezeGaps(-remained * moveDir, 1); - } - } else { - squeezeGaps(-gapThisBound * moveDir, 1); - } - } - } - function shiftList(delta2, start, end) { - if (delta2 !== 0) { - adjusted = true; - } - for (var i2 = start; i2 < end; i2++) { - var item2 = list[i2]; - var rect2 = item2.rect; - rect2[xyDim] += delta2; - item2.label[xyDim] += delta2; - } - } - function squeezeGaps(delta2, maxSqeezePercent) { - var gaps = []; - var totalGaps = 0; - for (var i2 = 1; i2 < len; i2++) { - var prevItemRect = list[i2 - 1].rect; - var gap = Math.max(list[i2].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0); - gaps.push(gap); - totalGaps += gap; - } - if (!totalGaps) { - return; - } - var squeezePercent = Math.min(Math.abs(delta2) / totalGaps, maxSqeezePercent); - if (delta2 > 0) { - for (var i2 = 0; i2 < len - 1; i2++) { - var movement = gaps[i2] * squeezePercent; - shiftList(movement, 0, i2 + 1); - } - } else { - for (var i2 = len - 1; i2 > 0; i2--) { - var movement = gaps[i2 - 1] * squeezePercent; - shiftList(-movement, i2, len); - } - } - } - function squeezeWhenBailout(delta2) { - var dir = delta2 < 0 ? -1 : 1; - delta2 = Math.abs(delta2); - var moveForEachLabel = Math.ceil(delta2 / (len - 1)); - for (var i2 = 0; i2 < len - 1; i2++) { - if (dir > 0) { - shiftList(moveForEachLabel, 0, i2 + 1); - } else { - shiftList(-moveForEachLabel, len - i2 - 1, len); - } - delta2 -= moveForEachLabel; - if (delta2 <= 0) { - return; - } - } - } - return adjusted; -} -function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) { - return shiftLayout(list, "y", "height", topBound, bottomBound, balanceShift); -} -function hideOverlap(labelList) { - var displayedLabels = []; - labelList.sort(function(a, b) { - return b.priority - a.priority; - }); - var globalRect = new BoundingRect(0, 0, 0, 0); - function hideEl(el) { - if (!el.ignore) { - var emphasisState = el.ensureState("emphasis"); - if (emphasisState.ignore == null) { - emphasisState.ignore = false; - } - } - el.ignore = true; - } - for (var i = 0; i < labelList.length; i++) { - var labelItem = labelList[i]; - var isAxisAligned = labelItem.axisAligned; - var localRect = labelItem.localRect; - var transform = labelItem.transform; - var label = labelItem.label; - var labelLine = labelItem.labelLine; - globalRect.copy(labelItem.rect); - globalRect.width -= 0.1; - globalRect.height -= 0.1; - globalRect.x += 0.05; - globalRect.y += 0.05; - var obb = labelItem.obb; - var overlapped = false; - for (var j = 0; j < displayedLabels.length; j++) { - var existsTextCfg = displayedLabels[j]; - if (!globalRect.intersect(existsTextCfg.rect)) { - continue; - } - if (isAxisAligned && existsTextCfg.axisAligned) { - overlapped = true; - break; - } - if (!existsTextCfg.obb) { - existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform); - } - if (!obb) { - obb = new OrientedBoundingRect(localRect, transform); - } - if (obb.intersect(existsTextCfg.obb)) { - overlapped = true; - break; - } - } - if (overlapped) { - hideEl(label); - labelLine && hideEl(labelLine); - } else { - label.attr("ignore", labelItem.defaultAttr.ignore); - labelLine && labelLine.attr("ignore", labelItem.defaultAttr.labelGuideIgnore); - displayedLabels.push(labelItem); - } - } -} -function getDefaultLabel(data, dataIndex) { - var labelDims = data.mapDimensionsAll("defaultedLabel"); - var len = labelDims.length; - if (len === 1) { - var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]); - return rawVal != null ? rawVal + "" : null; - } else if (len) { - var vals = []; - for (var i = 0; i < labelDims.length; i++) { - vals.push(retrieveRawValue(data, dataIndex, labelDims[i])); - } - return vals.join(" "); - } -} -function getDefaultInterpolatedLabel(data, interpolatedValue) { - var labelDims = data.mapDimensionsAll("defaultedLabel"); - if (!isArray(interpolatedValue)) { - return interpolatedValue + ""; - } - var vals = []; - for (var i = 0; i < labelDims.length; i++) { - var dimIndex = data.getDimensionIndex(labelDims[i]); - if (dimIndex >= 0) { - vals.push(interpolatedValue[dimIndex]); - } - } - return vals.join(" "); -} -var Symbol$1 = ( - /** @class */ - function(_super) { - __extends(Symbol, _super); - function Symbol(data, idx, seriesScope, opts) { - var _this = _super.call(this) || this; - _this.updateData(data, idx, seriesScope, opts); - return _this; - } - Symbol.prototype._createSymbol = function(symbolType, data, idx, symbolSize, keepAspect) { - this.removeAll(); - var symbolPath = createSymbol$1(symbolType, -1, -1, 2, 2, null, keepAspect); - symbolPath.attr({ - z2: 100, - culling: true, - scaleX: symbolSize[0] / 2, - scaleY: symbolSize[1] / 2 - }); - symbolPath.drift = driftSymbol; - this._symbolType = symbolType; - this.add(symbolPath); - }; - Symbol.prototype.stopSymbolAnimation = function(toLastFrame) { - this.childAt(0).stopAnimation(null, toLastFrame); - }; - Symbol.prototype.getSymbolType = function() { - return this._symbolType; - }; - Symbol.prototype.getSymbolPath = function() { - return this.childAt(0); - }; - Symbol.prototype.highlight = function() { - enterEmphasis(this.childAt(0)); - }; - Symbol.prototype.downplay = function() { - leaveEmphasis(this.childAt(0)); - }; - Symbol.prototype.setZ = function(zlevel, z) { - var symbolPath = this.childAt(0); - symbolPath.zlevel = zlevel; - symbolPath.z = z; - }; - Symbol.prototype.setDraggable = function(draggable, hasCursorOption) { - var symbolPath = this.childAt(0); - symbolPath.draggable = draggable; - symbolPath.cursor = !hasCursorOption && draggable ? "move" : symbolPath.cursor; - }; - Symbol.prototype.updateData = function(data, idx, seriesScope, opts) { - this.silent = false; - var symbolType = data.getItemVisual(idx, "symbol") || "circle"; - var seriesModel = data.hostModel; - var symbolSize = Symbol.getSymbolSize(data, idx); - var isInit = symbolType !== this._symbolType; - var disableAnimation = opts && opts.disableAnimation; - if (isInit) { - var keepAspect = data.getItemVisual(idx, "symbolKeepAspect"); - this._createSymbol(symbolType, data, idx, symbolSize, keepAspect); - } else { - var symbolPath = this.childAt(0); - symbolPath.silent = false; - var target = { - scaleX: symbolSize[0] / 2, - scaleY: symbolSize[1] / 2 - }; - disableAnimation ? symbolPath.attr(target) : updateProps(symbolPath, target, seriesModel, idx); - saveOldStyle(symbolPath); - } - this._updateCommon(data, idx, symbolSize, seriesScope, opts); - if (isInit) { - var symbolPath = this.childAt(0); - if (!disableAnimation) { - var target = { - scaleX: this._sizeX, - scaleY: this._sizeY, - style: { - // Always fadeIn. Because it has fadeOut animation when symbol is removed.. - opacity: symbolPath.style.opacity - } - }; - symbolPath.scaleX = symbolPath.scaleY = 0; - symbolPath.style.opacity = 0; - initProps(symbolPath, target, seriesModel, idx); - } - } - if (disableAnimation) { - this.childAt(0).stopAnimation("leave"); - } - }; - Symbol.prototype._updateCommon = function(data, idx, symbolSize, seriesScope, opts) { - var symbolPath = this.childAt(0); - var seriesModel = data.hostModel; - var emphasisItemStyle; - var blurItemStyle; - var selectItemStyle; - var focus; - var blurScope; - var emphasisDisabled; - var labelStatesModels; - var hoverScale; - var cursorStyle; - if (seriesScope) { - emphasisItemStyle = seriesScope.emphasisItemStyle; - blurItemStyle = seriesScope.blurItemStyle; - selectItemStyle = seriesScope.selectItemStyle; - focus = seriesScope.focus; - blurScope = seriesScope.blurScope; - labelStatesModels = seriesScope.labelStatesModels; - hoverScale = seriesScope.hoverScale; - cursorStyle = seriesScope.cursorStyle; - emphasisDisabled = seriesScope.emphasisDisabled; - } - if (!seriesScope || data.hasItemOption) { - var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx); - var emphasisModel = itemModel.getModel("emphasis"); - emphasisItemStyle = emphasisModel.getModel("itemStyle").getItemStyle(); - selectItemStyle = itemModel.getModel(["select", "itemStyle"]).getItemStyle(); - blurItemStyle = itemModel.getModel(["blur", "itemStyle"]).getItemStyle(); - focus = emphasisModel.get("focus"); - blurScope = emphasisModel.get("blurScope"); - emphasisDisabled = emphasisModel.get("disabled"); - labelStatesModels = getLabelStatesModels(itemModel); - hoverScale = emphasisModel.getShallow("scale"); - cursorStyle = itemModel.getShallow("cursor"); - } - var symbolRotate = data.getItemVisual(idx, "symbolRotate"); - symbolPath.attr("rotation", (symbolRotate || 0) * Math.PI / 180 || 0); - var symbolOffset = normalizeSymbolOffset(data.getItemVisual(idx, "symbolOffset"), symbolSize); - if (symbolOffset) { - symbolPath.x = symbolOffset[0]; - symbolPath.y = symbolOffset[1]; - } - cursorStyle && symbolPath.attr("cursor", cursorStyle); - var symbolStyle = data.getItemVisual(idx, "style"); - var visualColor = symbolStyle.fill; - if (symbolPath instanceof ZRImage) { - var pathStyle = symbolPath.style; - symbolPath.useStyle(extend({ - // TODO other properties like x, y ? - image: pathStyle.image, - x: pathStyle.x, - y: pathStyle.y, - width: pathStyle.width, - height: pathStyle.height - }, symbolStyle)); - } else { - if (symbolPath.__isEmptyBrush) { - symbolPath.useStyle(extend({}, symbolStyle)); - } else { - symbolPath.useStyle(symbolStyle); - } - symbolPath.style.decal = null; - symbolPath.setColor(visualColor, opts && opts.symbolInnerColor); - symbolPath.style.strokeNoScale = true; - } - var liftZ = data.getItemVisual(idx, "liftZ"); - var z2Origin = this._z2; - if (liftZ != null) { - if (z2Origin == null) { - this._z2 = symbolPath.z2; - symbolPath.z2 += liftZ; - } - } else if (z2Origin != null) { - symbolPath.z2 = z2Origin; - this._z2 = null; - } - var useNameLabel = opts && opts.useNameLabel; - setLabelStyle(symbolPath, labelStatesModels, { - labelFetcher: seriesModel, - labelDataIndex: idx, - defaultText: getLabelDefaultText, - inheritColor: visualColor, - defaultOpacity: symbolStyle.opacity - }); - function getLabelDefaultText(idx2) { - return useNameLabel ? data.getName(idx2) : getDefaultLabel(data, idx2); - } - this._sizeX = symbolSize[0] / 2; - this._sizeY = symbolSize[1] / 2; - var emphasisState = symbolPath.ensureState("emphasis"); - emphasisState.style = emphasisItemStyle; - symbolPath.ensureState("select").style = selectItemStyle; - symbolPath.ensureState("blur").style = blurItemStyle; - var scaleRatio = hoverScale == null || hoverScale === true ? Math.max(1.1, 3 / this._sizeY) : isFinite(hoverScale) && hoverScale > 0 ? +hoverScale : 1; - emphasisState.scaleX = this._sizeX * scaleRatio; - emphasisState.scaleY = this._sizeY * scaleRatio; - this.setSymbolScale(1); - toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled); - }; - Symbol.prototype.setSymbolScale = function(scale2) { - this.scaleX = this.scaleY = scale2; - }; - Symbol.prototype.fadeOut = function(cb, seriesModel, opt) { - var symbolPath = this.childAt(0); - var dataIndex = getECData(this).dataIndex; - var animationOpt = opt && opt.animation; - this.silent = symbolPath.silent = true; - if (opt && opt.fadeLabel) { - var textContent = symbolPath.getTextContent(); - if (textContent) { - removeElement(textContent, { - style: { - opacity: 0 - } - }, seriesModel, { - dataIndex, - removeOpt: animationOpt, - cb: function() { - symbolPath.removeTextContent(); - } - }); - } - } else { - symbolPath.removeTextContent(); - } - removeElement(symbolPath, { - style: { - opacity: 0 - }, - scaleX: 0, - scaleY: 0 - }, seriesModel, { - dataIndex, - cb, - removeOpt: animationOpt - }); - }; - Symbol.getSymbolSize = function(data, idx) { - return normalizeSymbolSize(data.getItemVisual(idx, "symbolSize")); - }; - return Symbol; - }(Group) -); -function driftSymbol(dx, dy) { - this.parent.drift(dx, dy); -} -const SymbolClz = Symbol$1; -function symbolNeedsDraw(data, point, idx, opt) { - return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, "symbol") !== "none"; -} -function normalizeUpdateOpt(opt) { - if (opt != null && !isObject$1(opt)) { - opt = { - isIgnore: opt - }; - } - return opt || {}; -} -function makeSeriesScope$1(data) { - var seriesModel = data.hostModel; - var emphasisModel = seriesModel.getModel("emphasis"); - return { - emphasisItemStyle: emphasisModel.getModel("itemStyle").getItemStyle(), - blurItemStyle: seriesModel.getModel(["blur", "itemStyle"]).getItemStyle(), - selectItemStyle: seriesModel.getModel(["select", "itemStyle"]).getItemStyle(), - focus: emphasisModel.get("focus"), - blurScope: emphasisModel.get("blurScope"), - emphasisDisabled: emphasisModel.get("disabled"), - hoverScale: emphasisModel.get("scale"), - labelStatesModels: getLabelStatesModels(seriesModel), - cursorStyle: seriesModel.get("cursor") - }; -} -var SymbolDraw = ( - /** @class */ - function() { - function SymbolDraw2(SymbolCtor) { - this.group = new Group(); - this._SymbolCtor = SymbolCtor || SymbolClz; - } - SymbolDraw2.prototype.updateData = function(data, opt) { - this._progressiveEls = null; - opt = normalizeUpdateOpt(opt); - var group = this.group; - var seriesModel = data.hostModel; - var oldData = this._data; - var SymbolCtor = this._SymbolCtor; - var disableAnimation = opt.disableAnimation; - var seriesScope = makeSeriesScope$1(data); - var symbolUpdateOpt = { - disableAnimation - }; - var getSymbolPoint = opt.getSymbolPoint || function(idx) { - return data.getItemLayout(idx); - }; - if (!oldData) { - group.removeAll(); - } - data.diff(oldData).add(function(newIdx) { - var point = getSymbolPoint(newIdx); - if (symbolNeedsDraw(data, point, newIdx, opt)) { - var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt); - symbolEl.setPosition(point); - data.setItemGraphicEl(newIdx, symbolEl); - group.add(symbolEl); - } - }).update(function(newIdx, oldIdx) { - var symbolEl = oldData.getItemGraphicEl(oldIdx); - var point = getSymbolPoint(newIdx); - if (!symbolNeedsDraw(data, point, newIdx, opt)) { - group.remove(symbolEl); - return; - } - var newSymbolType = data.getItemVisual(newIdx, "symbol") || "circle"; - var oldSymbolType = symbolEl && symbolEl.getSymbolType && symbolEl.getSymbolType(); - if (!symbolEl || oldSymbolType && oldSymbolType !== newSymbolType) { - group.remove(symbolEl); - symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt); - symbolEl.setPosition(point); - } else { - symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt); - var target = { - x: point[0], - y: point[1] - }; - disableAnimation ? symbolEl.attr(target) : updateProps(symbolEl, target, seriesModel); - } - group.add(symbolEl); - data.setItemGraphicEl(newIdx, symbolEl); - }).remove(function(oldIdx) { - var el = oldData.getItemGraphicEl(oldIdx); - el && el.fadeOut(function() { - group.remove(el); - }, seriesModel); - }).execute(); - this._getSymbolPoint = getSymbolPoint; - this._data = data; - }; - SymbolDraw2.prototype.updateLayout = function() { - var _this = this; - var data = this._data; - if (data) { - data.eachItemGraphicEl(function(el, idx) { - var point = _this._getSymbolPoint(idx); - el.setPosition(point); - el.markRedraw(); - }); - } - }; - SymbolDraw2.prototype.incrementalPrepareUpdate = function(data) { - this._seriesScope = makeSeriesScope$1(data); - this._data = null; - this.group.removeAll(); - }; - SymbolDraw2.prototype.incrementalUpdate = function(taskParams, data, opt) { - this._progressiveEls = []; - opt = normalizeUpdateOpt(opt); - function updateIncrementalAndHover(el2) { - if (!el2.isGroup) { - el2.incremental = true; - el2.ensureState("emphasis").hoverLayer = true; - } - } - for (var idx = taskParams.start; idx < taskParams.end; idx++) { - var point = data.getItemLayout(idx); - if (symbolNeedsDraw(data, point, idx, opt)) { - var el = new this._SymbolCtor(data, idx, this._seriesScope); - el.traverse(updateIncrementalAndHover); - el.setPosition(point); - this.group.add(el); - data.setItemGraphicEl(idx, el); - this._progressiveEls.push(el); - } - } - }; - SymbolDraw2.prototype.eachRendered = function(cb) { - traverseElements(this._progressiveEls || this.group, cb); - }; - SymbolDraw2.prototype.remove = function(enableAnimation) { - var group = this.group; - var data = this._data; - if (data && enableAnimation) { - data.eachItemGraphicEl(function(el) { - el.fadeOut(function() { - group.remove(el); - }, data.hostModel); - }); - } else { - group.removeAll(); - } - }; - return SymbolDraw2; - }() -); -const SymbolDraw$1 = SymbolDraw; -function isCoordinateSystemType(coordSys, type) { - return coordSys.type === type; -} -var GridModel = ( - /** @class */ - function(_super) { - __extends(GridModel2, _super); - function GridModel2() { - return _super !== null && _super.apply(this, arguments) || this; - } - GridModel2.type = "grid"; - GridModel2.dependencies = ["xAxis", "yAxis"]; - GridModel2.layoutMode = "box"; - GridModel2.defaultOption = { - show: false, - // zlevel: 0, - z: 0, - left: "10%", - top: 60, - right: "10%", - bottom: 70, - // If grid size contain label - containLabel: false, - // width: {totalWidth} - left - right, - // height: {totalHeight} - top - bottom, - backgroundColor: "rgba(0,0,0,0)", - borderWidth: 1, - borderColor: "#ccc" - }; - return GridModel2; - }(ComponentModel) -); -const GridModel$1 = GridModel; -var CartesianAxisModel = ( - /** @class */ - function(_super) { - __extends(CartesianAxisModel2, _super); - function CartesianAxisModel2() { - return _super !== null && _super.apply(this, arguments) || this; - } - CartesianAxisModel2.prototype.getCoordSysModel = function() { - return this.getReferringComponents("grid", SINGLE_REFERRING).models[0]; - }; - CartesianAxisModel2.type = "cartesian2dAxis"; - return CartesianAxisModel2; - }(ComponentModel) -); -mixin(CartesianAxisModel, AxisModelCommonMixin); -var defaultOption = { - show: true, - // zlevel: 0, - z: 0, - // Inverse the axis. - inverse: false, - // Axis name displayed. - name: "", - // 'start' | 'middle' | 'end' - nameLocation: "end", - // By degree. By default auto rotate by nameLocation. - nameRotate: null, - nameTruncate: { - maxWidth: null, - ellipsis: "...", - placeholder: "." - }, - // Use global text style by default. - nameTextStyle: {}, - // The gap between axisName and axisLine. - nameGap: 15, - // Default `false` to support tooltip. - silent: false, - // Default `false` to avoid legacy user event listener fail. - triggerEvent: false, - tooltip: { - show: false - }, - axisPointer: {}, - axisLine: { - show: true, - onZero: true, - onZeroAxisIndex: null, - lineStyle: { - color: "#6E7079", - width: 1, - type: "solid" - }, - // The arrow at both ends the the axis. - symbol: ["none", "none"], - symbolSize: [10, 15] - }, - axisTick: { - show: true, - // Whether axisTick is inside the grid or outside the grid. - inside: false, - // The length of axisTick. - length: 5, - lineStyle: { - width: 1 - } - }, - axisLabel: { - show: true, - // Whether axisLabel is inside the grid or outside the grid. - inside: false, - rotate: 0, - // true | false | null/undefined (auto) - showMinLabel: null, - // true | false | null/undefined (auto) - showMaxLabel: null, - margin: 8, - // formatter: null, - fontSize: 12 - }, - splitLine: { - show: true, - lineStyle: { - color: ["#E0E6F1"], - width: 1, - type: "solid" - } - }, - splitArea: { - show: false, - areaStyle: { - color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"] - } - } -}; -var categoryAxis = merge({ - // The gap at both ends of the axis. For categoryAxis, boolean. - boundaryGap: true, - // Set false to faster category collection. - deduplication: null, - // splitArea: { - // show: false - // }, - splitLine: { - show: false - }, - axisTick: { - // If tick is align with label when boundaryGap is true - alignWithLabel: false, - interval: "auto" - }, - axisLabel: { - interval: "auto" - } -}, defaultOption); -var valueAxis = merge({ - boundaryGap: [0, 0], - axisLine: { - // Not shown when other axis is categoryAxis in cartesian - show: "auto" - }, - axisTick: { - // Not shown when other axis is categoryAxis in cartesian - show: "auto" - }, - // TODO - // min/max: [30, datamin, 60] or [20, datamin] or [datamin, 60] - splitNumber: 5, - minorTick: { - // Minor tick, not available for cateogry axis. - show: false, - // Split number of minor ticks. The value should be in range of (0, 100) - splitNumber: 5, - // Length of minor tick - length: 3, - // Line style - lineStyle: { - // Default to be same with axisTick - } - }, - minorSplitLine: { - show: false, - lineStyle: { - color: "#F4F7FD", - width: 1 - } - } -}, defaultOption); -var timeAxis = merge({ - splitNumber: 6, - axisLabel: { - // To eliminate labels that are not nice - showMinLabel: false, - showMaxLabel: false, - rich: { - primary: { - fontWeight: "bold" - } - } - }, - splitLine: { - show: false - } -}, valueAxis); -var logAxis = defaults({ - logBase: 10 -}, valueAxis); -const axisDefault = { - category: categoryAxis, - value: valueAxis, - time: timeAxis, - log: logAxis -}; -var AXIS_TYPES = { - value: 1, - category: 1, - time: 1, - log: 1 -}; -function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) { - each$2(AXIS_TYPES, function(v, axisType) { - var defaultOption2 = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true); - var AxisModel = ( - /** @class */ - function(_super) { - __extends(AxisModel2, _super); - function AxisModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = axisName + "Axis." + axisType; - return _this; - } - AxisModel2.prototype.mergeDefaultAndTheme = function(option, ecModel) { - var layoutMode = fetchLayoutMode(this); - var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; - var themeModel = ecModel.getTheme(); - merge(option, themeModel.get(axisType + "Axis")); - merge(option, this.getDefaultOption()); - option.type = getAxisType(option); - if (layoutMode) { - mergeLayoutParam(option, inputPositionParams, layoutMode); - } - }; - AxisModel2.prototype.optionUpdated = function() { - var thisOption = this.option; - if (thisOption.type === "category") { - this.__ordinalMeta = OrdinalMeta.createByAxisModel(this); - } - }; - AxisModel2.prototype.getCategories = function(rawData) { - var option = this.option; - if (option.type === "category") { - if (rawData) { - return option.data; - } - return this.__ordinalMeta.categories; - } - }; - AxisModel2.prototype.getOrdinalMeta = function() { - return this.__ordinalMeta; - }; - AxisModel2.type = axisName + "Axis." + axisType; - AxisModel2.defaultOption = defaultOption2; - return AxisModel2; - }(BaseAxisModelClass) - ); - registers.registerComponentModel(AxisModel); - }); - registers.registerSubTypeDefaulter(axisName + "Axis", getAxisType); -} -function getAxisType(option) { - return option.type || (option.data ? "category" : "value"); -} -var Cartesian = ( - /** @class */ - function() { - function Cartesian2(name) { - this.type = "cartesian"; - this._dimList = []; - this._axes = {}; - this.name = name || ""; - } - Cartesian2.prototype.getAxis = function(dim) { - return this._axes[dim]; - }; - Cartesian2.prototype.getAxes = function() { - return map(this._dimList, function(dim) { - return this._axes[dim]; - }, this); - }; - Cartesian2.prototype.getAxesByScale = function(scaleType) { - scaleType = scaleType.toLowerCase(); - return filter(this.getAxes(), function(axis) { - return axis.scale.type === scaleType; - }); - }; - Cartesian2.prototype.addAxis = function(axis) { - var dim = axis.dim; - this._axes[dim] = axis; - this._dimList.push(dim); - }; - return Cartesian2; - }() -); -const Cartesian$1 = Cartesian; -var cartesian2DDimensions = ["x", "y"]; -function canCalculateAffineTransform(scale2) { - return scale2.type === "interval" || scale2.type === "time"; -} -var Cartesian2D = ( - /** @class */ - function(_super) { - __extends(Cartesian2D2, _super); - function Cartesian2D2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "cartesian2d"; - _this.dimensions = cartesian2DDimensions; - return _this; - } - Cartesian2D2.prototype.calcAffineTransform = function() { - this._transform = this._invTransform = null; - var xAxisScale = this.getAxis("x").scale; - var yAxisScale = this.getAxis("y").scale; - if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) { - return; - } - var xScaleExtent = xAxisScale.getExtent(); - var yScaleExtent = yAxisScale.getExtent(); - var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]); - var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]); - var xScaleSpan = xScaleExtent[1] - xScaleExtent[0]; - var yScaleSpan = yScaleExtent[1] - yScaleExtent[0]; - if (!xScaleSpan || !yScaleSpan) { - return; - } - var scaleX = (end[0] - start[0]) / xScaleSpan; - var scaleY = (end[1] - start[1]) / yScaleSpan; - var translateX = start[0] - xScaleExtent[0] * scaleX; - var translateY = start[1] - yScaleExtent[0] * scaleY; - var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY]; - this._invTransform = invert([], m); - }; - Cartesian2D2.prototype.getBaseAxis = function() { - return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAxis("x"); - }; - Cartesian2D2.prototype.containPoint = function(point) { - var axisX = this.getAxis("x"); - var axisY = this.getAxis("y"); - return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1])); - }; - Cartesian2D2.prototype.containData = function(data) { - return this.getAxis("x").containData(data[0]) && this.getAxis("y").containData(data[1]); - }; - Cartesian2D2.prototype.containZone = function(data1, data2) { - var zoneDiag1 = this.dataToPoint(data1); - var zoneDiag2 = this.dataToPoint(data2); - var area = this.getArea(); - var zone = new BoundingRect(zoneDiag1[0], zoneDiag1[1], zoneDiag2[0] - zoneDiag1[0], zoneDiag2[1] - zoneDiag1[1]); - return area.intersect(zone); - }; - Cartesian2D2.prototype.dataToPoint = function(data, clamp, out) { - out = out || []; - var xVal = data[0]; - var yVal = data[1]; - if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) { - return applyTransform(out, data, this._transform); - } - var xAxis = this.getAxis("x"); - var yAxis = this.getAxis("y"); - out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal, clamp)); - out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal, clamp)); - return out; - }; - Cartesian2D2.prototype.clampData = function(data, out) { - var xScale = this.getAxis("x").scale; - var yScale = this.getAxis("y").scale; - var xAxisExtent = xScale.getExtent(); - var yAxisExtent = yScale.getExtent(); - var x = xScale.parse(data[0]); - var y = yScale.parse(data[1]); - out = out || []; - out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1])); - out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1])); - return out; - }; - Cartesian2D2.prototype.pointToData = function(point, clamp) { - var out = []; - if (this._invTransform) { - return applyTransform(out, point, this._invTransform); - } - var xAxis = this.getAxis("x"); - var yAxis = this.getAxis("y"); - out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]), clamp); - out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]), clamp); - return out; - }; - Cartesian2D2.prototype.getOtherAxis = function(axis) { - return this.getAxis(axis.dim === "x" ? "y" : "x"); - }; - Cartesian2D2.prototype.getArea = function() { - var xExtent = this.getAxis("x").getGlobalExtent(); - var yExtent = this.getAxis("y").getGlobalExtent(); - var x = Math.min(xExtent[0], xExtent[1]); - var y = Math.min(yExtent[0], yExtent[1]); - var width = Math.max(xExtent[0], xExtent[1]) - x; - var height = Math.max(yExtent[0], yExtent[1]) - y; - return new BoundingRect(x, y, width, height); - }; - return Cartesian2D2; - }(Cartesian$1) -); -var Axis2D = ( - /** @class */ - function(_super) { - __extends(Axis2D2, _super); - function Axis2D2(dim, scale2, coordExtent, axisType, position) { - var _this = _super.call(this, dim, scale2, coordExtent) || this; - _this.index = 0; - _this.type = axisType || "value"; - _this.position = position || "bottom"; - return _this; - } - Axis2D2.prototype.isHorizontal = function() { - var position = this.position; - return position === "top" || position === "bottom"; - }; - Axis2D2.prototype.getGlobalExtent = function(asc2) { - var ret = this.getExtent(); - ret[0] = this.toGlobalCoord(ret[0]); - ret[1] = this.toGlobalCoord(ret[1]); - asc2 && ret[0] > ret[1] && ret.reverse(); - return ret; - }; - Axis2D2.prototype.pointToData = function(point, clamp) { - return this.coordToData(this.toLocalCoord(point[this.dim === "x" ? 0 : 1]), clamp); - }; - Axis2D2.prototype.setCategorySortInfo = function(info) { - if (this.type !== "category") { - return false; - } - this.model.option.categorySortInfo = info; - this.scale.setSortInfo(info); - }; - return Axis2D2; - }(Axis) -); -const Axis2D$1 = Axis2D; -function layout(gridModel, axisModel, opt) { - opt = opt || {}; - var grid = gridModel.coordinateSystem; - var axis = axisModel.axis; - var layout2 = {}; - var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0]; - var rawAxisPosition = axis.position; - var axisPosition = otherAxisOnZeroOf ? "onZero" : rawAxisPosition; - var axisDim = axis.dim; - var rect = grid.getRect(); - var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height]; - var idx = { - left: 0, - right: 1, - top: 0, - bottom: 1, - onZero: 2 - }; - var axisOffset = axisModel.get("offset") || 0; - var posBound = axisDim === "x" ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset]; - if (otherAxisOnZeroOf) { - var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0)); - posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]); - } - layout2.position = [axisDim === "y" ? posBound[idx[axisPosition]] : rectBound[0], axisDim === "x" ? posBound[idx[axisPosition]] : rectBound[3]]; - layout2.rotation = Math.PI / 2 * (axisDim === "x" ? 0 : 1); - var dirMap = { - top: -1, - bottom: 1, - left: -1, - right: 1 - }; - layout2.labelDirection = layout2.tickDirection = layout2.nameDirection = dirMap[rawAxisPosition]; - layout2.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0; - if (axisModel.get(["axisTick", "inside"])) { - layout2.tickDirection = -layout2.tickDirection; - } - if (retrieve(opt.labelInside, axisModel.get(["axisLabel", "inside"]))) { - layout2.labelDirection = -layout2.labelDirection; - } - var labelRotate = axisModel.get(["axisLabel", "rotate"]); - layout2.labelRotate = axisPosition === "top" ? -labelRotate : labelRotate; - layout2.z2 = 1; - return layout2; -} -function isCartesian2DSeries(seriesModel) { - return seriesModel.get("coordinateSystem") === "cartesian2d"; -} -function findAxisModels(seriesModel) { - var axisModelMap = { - xAxisModel: null, - yAxisModel: null - }; - each$2(axisModelMap, function(v, key) { - var axisType = key.replace(/Model$/, ""); - var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0]; - axisModelMap[key] = axisModel; - }); - return axisModelMap; -} -var mathLog = Math.log; -function alignScaleTicks(scale2, axisModel, alignToScale) { - var intervalScaleProto = IntervalScale.prototype; - var alignToTicks = intervalScaleProto.getTicks.call(alignToScale); - var alignToNicedTicks = intervalScaleProto.getTicks.call(alignToScale, true); - var alignToSplitNumber = alignToTicks.length - 1; - var alignToInterval = intervalScaleProto.getInterval.call(alignToScale); - var scaleExtent = getScaleExtent(scale2, axisModel); - var rawExtent = scaleExtent.extent; - var isMinFixed = scaleExtent.fixMin; - var isMaxFixed = scaleExtent.fixMax; - if (scale2.type === "log") { - var logBase = mathLog(scale2.base); - rawExtent = [mathLog(rawExtent[0]) / logBase, mathLog(rawExtent[1]) / logBase]; - } - scale2.setExtent(rawExtent[0], rawExtent[1]); - scale2.calcNiceExtent({ - splitNumber: alignToSplitNumber, - fixMin: isMinFixed, - fixMax: isMaxFixed - }); - var extent = intervalScaleProto.getExtent.call(scale2); - if (isMinFixed) { - rawExtent[0] = extent[0]; - } - if (isMaxFixed) { - rawExtent[1] = extent[1]; - } - var interval = intervalScaleProto.getInterval.call(scale2); - var min2 = rawExtent[0]; - var max2 = rawExtent[1]; - if (isMinFixed && isMaxFixed) { - interval = (max2 - min2) / alignToSplitNumber; - } else if (isMinFixed) { - max2 = rawExtent[0] + interval * alignToSplitNumber; - while (max2 < rawExtent[1] && isFinite(max2) && isFinite(rawExtent[1])) { - interval = increaseInterval(interval); - max2 = rawExtent[0] + interval * alignToSplitNumber; - } - } else if (isMaxFixed) { - min2 = rawExtent[1] - interval * alignToSplitNumber; - while (min2 > rawExtent[0] && isFinite(min2) && isFinite(rawExtent[0])) { - interval = increaseInterval(interval); - min2 = rawExtent[1] - interval * alignToSplitNumber; - } - } else { - var nicedSplitNumber = scale2.getTicks().length - 1; - if (nicedSplitNumber > alignToSplitNumber) { - interval = increaseInterval(interval); - } - var range = interval * alignToSplitNumber; - max2 = Math.ceil(rawExtent[1] / interval) * interval; - min2 = round$1(max2 - range); - if (min2 < 0 && rawExtent[0] >= 0) { - min2 = 0; - max2 = round$1(range); - } else if (max2 > 0 && rawExtent[1] <= 0) { - max2 = 0; - min2 = -round$1(range); - } - } - var t0 = (alignToTicks[0].value - alignToNicedTicks[0].value) / alignToInterval; - var t1 = (alignToTicks[alignToSplitNumber].value - alignToNicedTicks[alignToSplitNumber].value) / alignToInterval; - intervalScaleProto.setExtent.call(scale2, min2 + interval * t0, max2 + interval * t1); - intervalScaleProto.setInterval.call(scale2, interval); - if (t0 || t1) { - intervalScaleProto.setNiceExtent.call(scale2, min2 + interval, max2 - interval); - } -} -var Grid = ( - /** @class */ - function() { - function Grid2(gridModel, ecModel, api) { - this.type = "grid"; - this._coordsMap = {}; - this._coordsList = []; - this._axesMap = {}; - this._axesList = []; - this.axisPointerEnabled = true; - this.dimensions = cartesian2DDimensions; - this._initCartesian(gridModel, ecModel, api); - this.model = gridModel; - } - Grid2.prototype.getRect = function() { - return this._rect; - }; - Grid2.prototype.update = function(ecModel, api) { - var axesMap = this._axesMap; - this._updateScale(ecModel, this.model); - function updateAxisTicks(axes) { - var alignTo; - var axesIndices = keys(axes); - var len = axesIndices.length; - if (!len) { - return; - } - var axisNeedsAlign = []; - for (var i = len - 1; i >= 0; i--) { - var idx = +axesIndices[i]; - var axis = axes[idx]; - var model = axis.model; - var scale2 = axis.scale; - if ( - // Only value and log axis without interval support alignTicks. - isIntervalOrLogScale(scale2) && model.get("alignTicks") && model.get("interval") == null - ) { - axisNeedsAlign.push(axis); - } else { - niceScaleExtent(scale2, model); - if (isIntervalOrLogScale(scale2)) { - alignTo = axis; - } - } - } - if (axisNeedsAlign.length) { - if (!alignTo) { - alignTo = axisNeedsAlign.pop(); - niceScaleExtent(alignTo.scale, alignTo.model); - } - each$2(axisNeedsAlign, function(axis2) { - alignScaleTicks(axis2.scale, axis2.model, alignTo.scale); - }); - } - } - updateAxisTicks(axesMap.x); - updateAxisTicks(axesMap.y); - var onZeroRecords = {}; - each$2(axesMap.x, function(xAxis) { - fixAxisOnZero(axesMap, "y", xAxis, onZeroRecords); - }); - each$2(axesMap.y, function(yAxis) { - fixAxisOnZero(axesMap, "x", yAxis, onZeroRecords); - }); - this.resize(this.model, api); - }; - Grid2.prototype.resize = function(gridModel, api, ignoreContainLabel) { - var boxLayoutParams = gridModel.getBoxLayoutParams(); - var isContainLabel = !ignoreContainLabel && gridModel.get("containLabel"); - var gridRect = getLayoutRect(boxLayoutParams, { - width: api.getWidth(), - height: api.getHeight() - }); - this._rect = gridRect; - var axesList = this._axesList; - adjustAxes(); - if (isContainLabel) { - each$2(axesList, function(axis) { - if (!axis.model.get(["axisLabel", "inside"])) { - var labelUnionRect = estimateLabelUnionRect(axis); - if (labelUnionRect) { - var dim = axis.isHorizontal() ? "height" : "width"; - var margin = axis.model.get(["axisLabel", "margin"]); - gridRect[dim] -= labelUnionRect[dim] + margin; - if (axis.position === "top") { - gridRect.y += labelUnionRect.height + margin; - } else if (axis.position === "left") { - gridRect.x += labelUnionRect.width + margin; - } - } - } - }); - adjustAxes(); - } - each$2(this._coordsList, function(coord) { - coord.calcAffineTransform(); - }); - function adjustAxes() { - each$2(axesList, function(axis) { - var isHorizontal = axis.isHorizontal(); - var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height]; - var idx = axis.inverse ? 1 : 0; - axis.setExtent(extent[idx], extent[1 - idx]); - updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y); - }); - } - }; - Grid2.prototype.getAxis = function(dim, axisIndex) { - var axesMapOnDim = this._axesMap[dim]; - if (axesMapOnDim != null) { - return axesMapOnDim[axisIndex || 0]; - } - }; - Grid2.prototype.getAxes = function() { - return this._axesList.slice(); - }; - Grid2.prototype.getCartesian = function(xAxisIndex, yAxisIndex) { - if (xAxisIndex != null && yAxisIndex != null) { - var key = "x" + xAxisIndex + "y" + yAxisIndex; - return this._coordsMap[key]; - } - if (isObject$1(xAxisIndex)) { - yAxisIndex = xAxisIndex.yAxisIndex; - xAxisIndex = xAxisIndex.xAxisIndex; - } - for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) { - if (coordList[i].getAxis("x").index === xAxisIndex || coordList[i].getAxis("y").index === yAxisIndex) { - return coordList[i]; - } - } - }; - Grid2.prototype.getCartesians = function() { - return this._coordsList.slice(); - }; - Grid2.prototype.convertToPixel = function(ecModel, finder, value) { - var target = this._findConvertTarget(finder); - return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null; - }; - Grid2.prototype.convertFromPixel = function(ecModel, finder, value) { - var target = this._findConvertTarget(finder); - return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null; - }; - Grid2.prototype._findConvertTarget = function(finder) { - var seriesModel = finder.seriesModel; - var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents("xAxis", SINGLE_REFERRING).models[0]; - var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents("yAxis", SINGLE_REFERRING).models[0]; - var gridModel = finder.gridModel; - var coordsList = this._coordsList; - var cartesian; - var axis; - if (seriesModel) { - cartesian = seriesModel.coordinateSystem; - indexOf(coordsList, cartesian) < 0 && (cartesian = null); - } else if (xAxisModel && yAxisModel) { - cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex); - } else if (xAxisModel) { - axis = this.getAxis("x", xAxisModel.componentIndex); - } else if (yAxisModel) { - axis = this.getAxis("y", yAxisModel.componentIndex); - } else if (gridModel) { - var grid = gridModel.coordinateSystem; - if (grid === this) { - cartesian = this._coordsList[0]; - } - } - return { - cartesian, - axis - }; - }; - Grid2.prototype.containPoint = function(point) { - var coord = this._coordsList[0]; - if (coord) { - return coord.containPoint(point); - } - }; - Grid2.prototype._initCartesian = function(gridModel, ecModel, api) { - var _this = this; - var grid = this; - var axisPositionUsed = { - left: false, - right: false, - top: false, - bottom: false - }; - var axesMap = { - x: {}, - y: {} - }; - var axesCount = { - x: 0, - y: 0 - }; - ecModel.eachComponent("xAxis", createAxisCreator("x"), this); - ecModel.eachComponent("yAxis", createAxisCreator("y"), this); - if (!axesCount.x || !axesCount.y) { - this._axesMap = {}; - this._axesList = []; - return; - } - this._axesMap = axesMap; - each$2(axesMap.x, function(xAxis, xAxisIndex) { - each$2(axesMap.y, function(yAxis, yAxisIndex) { - var key = "x" + xAxisIndex + "y" + yAxisIndex; - var cartesian = new Cartesian2D(key); - cartesian.master = _this; - cartesian.model = gridModel; - _this._coordsMap[key] = cartesian; - _this._coordsList.push(cartesian); - cartesian.addAxis(xAxis); - cartesian.addAxis(yAxis); - }); - }); - function createAxisCreator(dimName) { - return function(axisModel, idx) { - if (!isAxisUsedInTheGrid(axisModel, gridModel)) { - return; - } - var axisPosition = axisModel.get("position"); - if (dimName === "x") { - if (axisPosition !== "top" && axisPosition !== "bottom") { - axisPosition = axisPositionUsed.bottom ? "top" : "bottom"; - } - } else { - if (axisPosition !== "left" && axisPosition !== "right") { - axisPosition = axisPositionUsed.left ? "right" : "left"; - } - } - axisPositionUsed[axisPosition] = true; - var axis = new Axis2D$1(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get("type"), axisPosition); - var isCategory = axis.type === "category"; - axis.onBand = isCategory && axisModel.get("boundaryGap"); - axis.inverse = axisModel.get("inverse"); - axisModel.axis = axis; - axis.model = axisModel; - axis.grid = grid; - axis.index = idx; - grid._axesList.push(axis); - axesMap[dimName][idx] = axis; - axesCount[dimName]++; - }; - } - }; - Grid2.prototype._updateScale = function(ecModel, gridModel) { - each$2(this._axesList, function(axis) { - axis.scale.setExtent(Infinity, -Infinity); - if (axis.type === "category") { - var categorySortInfo = axis.model.get("categorySortInfo"); - axis.scale.setSortInfo(categorySortInfo); - } - }); - ecModel.eachSeries(function(seriesModel) { - if (isCartesian2DSeries(seriesModel)) { - var axesModelMap = findAxisModels(seriesModel); - var xAxisModel = axesModelMap.xAxisModel; - var yAxisModel = axesModelMap.yAxisModel; - if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) { - return; - } - var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex); - var data = seriesModel.getData(); - var xAxis = cartesian.getAxis("x"); - var yAxis = cartesian.getAxis("y"); - unionExtent(data, xAxis); - unionExtent(data, yAxis); - } - }, this); - function unionExtent(data, axis) { - each$2(getDataDimensionsOnAxis(data, axis.dim), function(dim) { - axis.scale.unionExtentFromData(data, dim); - }); - } - }; - Grid2.prototype.getTooltipAxes = function(dim) { - var baseAxes = []; - var otherAxes = []; - each$2(this.getCartesians(), function(cartesian) { - var baseAxis = dim != null && dim !== "auto" ? cartesian.getAxis(dim) : cartesian.getBaseAxis(); - var otherAxis = cartesian.getOtherAxis(baseAxis); - indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis); - indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis); - }); - return { - baseAxes, - otherAxes - }; - }; - Grid2.create = function(ecModel, api) { - var grids = []; - ecModel.eachComponent("grid", function(gridModel, idx) { - var grid = new Grid2(gridModel, ecModel, api); - grid.name = "grid_" + idx; - grid.resize(gridModel, api, true); - gridModel.coordinateSystem = grid; - grids.push(grid); - }); - ecModel.eachSeries(function(seriesModel) { - if (!isCartesian2DSeries(seriesModel)) { - return; - } - var axesModelMap = findAxisModels(seriesModel); - var xAxisModel = axesModelMap.xAxisModel; - var yAxisModel = axesModelMap.yAxisModel; - var gridModel = xAxisModel.getCoordSysModel(); - var grid = gridModel.coordinateSystem; - seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex); - }); - return grids; - }; - Grid2.dimensions = cartesian2DDimensions; - return Grid2; - }() -); -function isAxisUsedInTheGrid(axisModel, gridModel) { - return axisModel.getCoordSysModel() === gridModel; -} -function fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) { - axis.getAxesOnZeroOf = function() { - return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : []; - }; - var otherAxes = axesMap[otherAxisDim]; - var otherAxisOnZeroOf; - var axisModel = axis.model; - var onZero = axisModel.get(["axisLine", "onZero"]); - var onZeroAxisIndex = axisModel.get(["axisLine", "onZeroAxisIndex"]); - if (!onZero) { - return; - } - if (onZeroAxisIndex != null) { - if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) { - otherAxisOnZeroOf = otherAxes[onZeroAxisIndex]; - } - } else { - for (var idx in otherAxes) { - if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) { - otherAxisOnZeroOf = otherAxes[idx]; - break; - } - } - } - if (otherAxisOnZeroOf) { - onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true; - } - function getOnZeroRecordKey(axis2) { - return axis2.dim + "_" + axis2.index; - } -} -function canOnZeroToAxis(axis) { - return axis && axis.type !== "category" && axis.type !== "time" && ifAxisCrossZero(axis); -} -function updateAxisTransform(axis, coordBase) { - var axisExtent = axis.getExtent(); - var axisExtentSum = axisExtent[0] + axisExtent[1]; - axis.toGlobalCoord = axis.dim === "x" ? function(coord) { - return coord + coordBase; - } : function(coord) { - return axisExtentSum - coord + coordBase; - }; - axis.toLocalCoord = axis.dim === "x" ? function(coord) { - return coord - coordBase; - } : function(coord) { - return axisExtentSum - coord + coordBase; - }; -} -const Grid$1 = Grid; -var PI$1 = Math.PI; -var AxisBuilder = ( - /** @class */ - function() { - function AxisBuilder2(axisModel, opt) { - this.group = new Group(); - this.opt = opt; - this.axisModel = axisModel; - defaults(opt, { - labelOffset: 0, - nameDirection: 1, - tickDirection: 1, - labelDirection: 1, - silent: true, - handleAutoShown: function() { - return true; - } - }); - var transformGroup = new Group({ - x: opt.position[0], - y: opt.position[1], - rotation: opt.rotation - }); - transformGroup.updateTransform(); - this._transformGroup = transformGroup; - } - AxisBuilder2.prototype.hasBuilder = function(name) { - return !!builders[name]; - }; - AxisBuilder2.prototype.add = function(name) { - builders[name](this.opt, this.axisModel, this.group, this._transformGroup); - }; - AxisBuilder2.prototype.getGroup = function() { - return this.group; - }; - AxisBuilder2.innerTextLayout = function(axisRotation, textRotation, direction) { - var rotationDiff = remRadian(textRotation - axisRotation); - var textAlign; - var textVerticalAlign; - if (isRadianAroundZero(rotationDiff)) { - textVerticalAlign = direction > 0 ? "top" : "bottom"; - textAlign = "center"; - } else if (isRadianAroundZero(rotationDiff - PI$1)) { - textVerticalAlign = direction > 0 ? "bottom" : "top"; - textAlign = "center"; - } else { - textVerticalAlign = "middle"; - if (rotationDiff > 0 && rotationDiff < PI$1) { - textAlign = direction > 0 ? "right" : "left"; - } else { - textAlign = direction > 0 ? "left" : "right"; - } - } - return { - rotation: rotationDiff, - textAlign, - textVerticalAlign - }; - }; - AxisBuilder2.makeAxisEventDataBase = function(axisModel) { - var eventData = { - componentType: axisModel.mainType, - componentIndex: axisModel.componentIndex - }; - eventData[axisModel.mainType + "Index"] = axisModel.componentIndex; - return eventData; - }; - AxisBuilder2.isLabelSilent = function(axisModel) { - var tooltipOpt = axisModel.get("tooltip"); - return axisModel.get("silent") || !(axisModel.get("triggerEvent") || tooltipOpt && tooltipOpt.show); - }; - return AxisBuilder2; - }() -); -var builders = { - axisLine: function(opt, axisModel, group, transformGroup) { - var shown = axisModel.get(["axisLine", "show"]); - if (shown === "auto" && opt.handleAutoShown) { - shown = opt.handleAutoShown("axisLine"); - } - if (!shown) { - return; - } - var extent = axisModel.axis.getExtent(); - var matrix = transformGroup.transform; - var pt1 = [extent[0], 0]; - var pt2 = [extent[1], 0]; - var inverse = pt1[0] > pt2[0]; - if (matrix) { - applyTransform(pt1, pt1, matrix); - applyTransform(pt2, pt2, matrix); - } - var lineStyle = extend({ - lineCap: "round" - }, axisModel.getModel(["axisLine", "lineStyle"]).getLineStyle()); - var line = new Line$2({ - shape: { - x1: pt1[0], - y1: pt1[1], - x2: pt2[0], - y2: pt2[1] - }, - style: lineStyle, - strokeContainThreshold: opt.strokeContainThreshold || 5, - silent: true, - z2: 1 - }); - subPixelOptimizeLine(line.shape, line.style.lineWidth); - line.anid = "line"; - group.add(line); - var arrows = axisModel.get(["axisLine", "symbol"]); - if (arrows != null) { - var arrowSize = axisModel.get(["axisLine", "symbolSize"]); - if (isString(arrows)) { - arrows = [arrows, arrows]; - } - if (isString(arrowSize) || isNumber(arrowSize)) { - arrowSize = [arrowSize, arrowSize]; - } - var arrowOffset = normalizeSymbolOffset(axisModel.get(["axisLine", "symbolOffset"]) || 0, arrowSize); - var symbolWidth_1 = arrowSize[0]; - var symbolHeight_1 = arrowSize[1]; - each$2([{ - rotate: opt.rotation + Math.PI / 2, - offset: arrowOffset[0], - r: 0 - }, { - rotate: opt.rotation - Math.PI / 2, - offset: arrowOffset[1], - r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1])) - }], function(point, index) { - if (arrows[index] !== "none" && arrows[index] != null) { - var symbol = createSymbol$1(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true); - var r = point.r + point.offset; - var pt = inverse ? pt2 : pt1; - symbol.attr({ - rotation: point.rotate, - x: pt[0] + r * Math.cos(opt.rotation), - y: pt[1] - r * Math.sin(opt.rotation), - silent: true, - z2: 11 - }); - group.add(symbol); - } - }); - } - }, - axisTickLabel: function(opt, axisModel, group, transformGroup) { - var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt); - var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt); - fixMinMaxLabelShow(axisModel, labelEls, ticksEls); - buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection); - if (axisModel.get(["axisLabel", "hideOverlap"])) { - var labelList = prepareLayoutList(map(labelEls, function(label) { - return { - label, - priority: label.z2, - defaultAttr: { - ignore: label.ignore - } - }; - })); - hideOverlap(labelList); - } - }, - axisName: function(opt, axisModel, group, transformGroup) { - var name = retrieve(opt.axisName, axisModel.get("name")); - if (!name) { - return; - } - var nameLocation = axisModel.get("nameLocation"); - var nameDirection = opt.nameDirection; - var textStyleModel = axisModel.getModel("nameTextStyle"); - var gap = axisModel.get("nameGap") || 0; - var extent = axisModel.axis.getExtent(); - var gapSignal = extent[0] > extent[1] ? -1 : 1; - var pos = [ - nameLocation === "start" ? extent[0] - gapSignal * gap : nameLocation === "end" ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, - // Reuse labelOffset. - isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0 - ]; - var labelLayout; - var nameRotation = axisModel.get("nameRotate"); - if (nameRotation != null) { - nameRotation = nameRotation * PI$1 / 180; - } - var axisNameAvailableWidth; - if (isNameLocationCenter(nameLocation)) { - labelLayout = AxisBuilder.innerTextLayout( - opt.rotation, - nameRotation != null ? nameRotation : opt.rotation, - // Adapt to axis. - nameDirection - ); - } else { - labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent); - axisNameAvailableWidth = opt.axisNameAvailableWidth; - if (axisNameAvailableWidth != null) { - axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation)); - !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null); - } - } - var textFont = textStyleModel.getFont(); - var truncateOpt = axisModel.get("nameTruncate", true) || {}; - var ellipsis = truncateOpt.ellipsis; - var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth); - var textEl = new ZRText({ - x: pos[0], - y: pos[1], - rotation: labelLayout.rotation, - silent: AxisBuilder.isLabelSilent(axisModel), - style: createTextStyle(textStyleModel, { - text: name, - font: textFont, - overflow: "truncate", - width: maxWidth, - ellipsis, - fill: textStyleModel.getTextColor() || axisModel.get(["axisLine", "lineStyle", "color"]), - align: textStyleModel.get("align") || labelLayout.textAlign, - verticalAlign: textStyleModel.get("verticalAlign") || labelLayout.textVerticalAlign - }), - z2: 1 - }); - setTooltipConfig({ - el: textEl, - componentModel: axisModel, - itemName: name - }); - textEl.__fullText = name; - textEl.anid = "name"; - if (axisModel.get("triggerEvent")) { - var eventData = AxisBuilder.makeAxisEventDataBase(axisModel); - eventData.targetType = "axisName"; - eventData.name = name; - getECData(textEl).eventData = eventData; - } - transformGroup.add(textEl); - textEl.updateTransform(); - group.add(textEl); - textEl.decomposeTransform(); - } -}; -function endTextLayout(rotation, textPosition, textRotate, extent) { - var rotationDiff = remRadian(textRotate - rotation); - var textAlign; - var textVerticalAlign; - var inverse = extent[0] > extent[1]; - var onLeft = textPosition === "start" && !inverse || textPosition !== "start" && inverse; - if (isRadianAroundZero(rotationDiff - PI$1 / 2)) { - textVerticalAlign = onLeft ? "bottom" : "top"; - textAlign = "center"; - } else if (isRadianAroundZero(rotationDiff - PI$1 * 1.5)) { - textVerticalAlign = onLeft ? "top" : "bottom"; - textAlign = "center"; - } else { - textVerticalAlign = "middle"; - if (rotationDiff < PI$1 * 1.5 && rotationDiff > PI$1 / 2) { - textAlign = onLeft ? "left" : "right"; - } else { - textAlign = onLeft ? "right" : "left"; - } - } - return { - rotation: rotationDiff, - textAlign, - textVerticalAlign - }; -} -function fixMinMaxLabelShow(axisModel, labelEls, tickEls) { - if (shouldShowAllLabels(axisModel.axis)) { - return; - } - var showMinLabel = axisModel.get(["axisLabel", "showMinLabel"]); - var showMaxLabel = axisModel.get(["axisLabel", "showMaxLabel"]); - labelEls = labelEls || []; - tickEls = tickEls || []; - var firstLabel = labelEls[0]; - var nextLabel = labelEls[1]; - var lastLabel = labelEls[labelEls.length - 1]; - var prevLabel = labelEls[labelEls.length - 2]; - var firstTick = tickEls[0]; - var nextTick = tickEls[1]; - var lastTick = tickEls[tickEls.length - 1]; - var prevTick = tickEls[tickEls.length - 2]; - if (showMinLabel === false) { - ignoreEl(firstLabel); - ignoreEl(firstTick); - } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) { - if (showMinLabel) { - ignoreEl(nextLabel); - ignoreEl(nextTick); - } else { - ignoreEl(firstLabel); - ignoreEl(firstTick); - } - } - if (showMaxLabel === false) { - ignoreEl(lastLabel); - ignoreEl(lastTick); - } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) { - if (showMaxLabel) { - ignoreEl(prevLabel); - ignoreEl(prevTick); - } else { - ignoreEl(lastLabel); - ignoreEl(lastTick); - } - } -} -function ignoreEl(el) { - el && (el.ignore = true); -} -function isTwoLabelOverlapped(current, next) { - var firstRect = current && current.getBoundingRect().clone(); - var nextRect = next && next.getBoundingRect().clone(); - if (!firstRect || !nextRect) { - return; - } - var mRotationBack = identity([]); - rotate(mRotationBack, mRotationBack, -current.rotation); - firstRect.applyTransform(mul([], mRotationBack, current.getLocalTransform())); - nextRect.applyTransform(mul([], mRotationBack, next.getLocalTransform())); - return firstRect.intersect(nextRect); -} -function isNameLocationCenter(nameLocation) { - return nameLocation === "middle" || nameLocation === "center"; -} -function createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) { - var tickEls = []; - var pt1 = []; - var pt2 = []; - for (var i = 0; i < ticksCoords.length; i++) { - var tickCoord = ticksCoords[i].coord; - pt1[0] = tickCoord; - pt1[1] = 0; - pt2[0] = tickCoord; - pt2[1] = tickEndCoord; - if (tickTransform) { - applyTransform(pt1, pt1, tickTransform); - applyTransform(pt2, pt2, tickTransform); - } - var tickEl = new Line$2({ - shape: { - x1: pt1[0], - y1: pt1[1], - x2: pt2[0], - y2: pt2[1] - }, - style: tickLineStyle, - z2: 2, - autoBatch: true, - silent: true - }); - subPixelOptimizeLine(tickEl.shape, tickEl.style.lineWidth); - tickEl.anid = anidPrefix + "_" + ticksCoords[i].tickValue; - tickEls.push(tickEl); - } - return tickEls; -} -function buildAxisMajorTicks(group, transformGroup, axisModel, opt) { - var axis = axisModel.axis; - var tickModel = axisModel.getModel("axisTick"); - var shown = tickModel.get("show"); - if (shown === "auto" && opt.handleAutoShown) { - shown = opt.handleAutoShown("axisTick"); - } - if (!shown || axis.scale.isBlank()) { - return; - } - var lineStyleModel = tickModel.getModel("lineStyle"); - var tickEndCoord = opt.tickDirection * tickModel.get("length"); - var ticksCoords = axis.getTicksCoords(); - var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), { - stroke: axisModel.get(["axisLine", "lineStyle", "color"]) - }), "ticks"); - for (var i = 0; i < ticksEls.length; i++) { - group.add(ticksEls[i]); - } - return ticksEls; -} -function buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) { - var axis = axisModel.axis; - var minorTickModel = axisModel.getModel("minorTick"); - if (!minorTickModel.get("show") || axis.scale.isBlank()) { - return; - } - var minorTicksCoords = axis.getMinorTicksCoords(); - if (!minorTicksCoords.length) { - return; - } - var lineStyleModel = minorTickModel.getModel("lineStyle"); - var tickEndCoord = tickDirection * minorTickModel.get("length"); - var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel("axisTick").getLineStyle(), { - stroke: axisModel.get(["axisLine", "lineStyle", "color"]) - })); - for (var i = 0; i < minorTicksCoords.length; i++) { - var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, "minorticks_" + i); - for (var k = 0; k < minorTicksEls.length; k++) { - group.add(minorTicksEls[k]); - } - } -} -function buildAxisLabel(group, transformGroup, axisModel, opt) { - var axis = axisModel.axis; - var show = retrieve(opt.axisLabelShow, axisModel.get(["axisLabel", "show"])); - if (!show || axis.scale.isBlank()) { - return; - } - var labelModel = axisModel.getModel("axisLabel"); - var labelMargin = labelModel.get("margin"); - var labels = axis.getViewLabels(); - var labelRotation = (retrieve(opt.labelRotate, labelModel.get("rotate")) || 0) * PI$1 / 180; - var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection); - var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true); - var labelEls = []; - var silent = AxisBuilder.isLabelSilent(axisModel); - var triggerEvent = axisModel.get("triggerEvent"); - each$2(labels, function(labelItem, index) { - var tickValue = axis.scale.type === "ordinal" ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue; - var formattedLabel = labelItem.formattedLabel; - var rawLabel = labelItem.rawLabel; - var itemLabelModel = labelModel; - if (rawCategoryData && rawCategoryData[tickValue]) { - var rawCategoryItem = rawCategoryData[tickValue]; - if (isObject$1(rawCategoryItem) && rawCategoryItem.textStyle) { - itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel); - } - } - var textColor = itemLabelModel.getTextColor() || axisModel.get(["axisLine", "lineStyle", "color"]); - var tickCoord = axis.dataToCoord(tickValue); - var textEl = new ZRText({ - x: tickCoord, - y: opt.labelOffset + opt.labelDirection * labelMargin, - rotation: labelLayout.rotation, - silent, - z2: 10 + (labelItem.level || 0), - style: createTextStyle(itemLabelModel, { - text: formattedLabel, - align: itemLabelModel.getShallow("align", true) || labelLayout.textAlign, - verticalAlign: itemLabelModel.getShallow("verticalAlign", true) || itemLabelModel.getShallow("baseline", true) || labelLayout.textVerticalAlign, - fill: isFunction(textColor) ? textColor( - // (1) In category axis with data zoom, tick is not the original - // index of axis.data. So tick should not be exposed to user - // in category axis. - // (2) Compatible with previous version, which always use formatted label as - // input. But in interval scale the formatted label is like '223,445', which - // maked user replace ','. So we modify it to return original val but remain - // it as 'string' to avoid error in replacing. - axis.type === "category" ? rawLabel : axis.type === "value" ? tickValue + "" : tickValue, - index - ) : textColor - }) - }); - textEl.anid = "label_" + tickValue; - if (triggerEvent) { - var eventData = AxisBuilder.makeAxisEventDataBase(axisModel); - eventData.targetType = "axisLabel"; - eventData.value = rawLabel; - eventData.tickIndex = index; - if (axis.type === "category") { - eventData.dataIndex = tickValue; - } - getECData(textEl).eventData = eventData; - } - transformGroup.add(textEl); - textEl.updateTransform(); - labelEls.push(textEl); - group.add(textEl); - textEl.decomposeTransform(); - }); - return labelEls; -} -const AxisBuilder$1 = AxisBuilder; -function collect(ecModel, api) { - var result = { - /** - * key: makeKey(axis.model) - * value: { - * axis, - * coordSys, - * axisPointerModel, - * triggerTooltip, - * involveSeries, - * snap, - * seriesModels, - * seriesDataCount - * } - */ - axesInfo: {}, - seriesInvolved: false, - /** - * key: makeKey(coordSys.model) - * value: Object: key makeKey(axis.model), value: axisInfo - */ - coordSysAxesInfo: {}, - coordSysMap: {} - }; - collectAxesInfo(result, ecModel, api); - result.seriesInvolved && collectSeriesInfo(result, ecModel); - return result; -} -function collectAxesInfo(result, ecModel, api) { - var globalTooltipModel = ecModel.getComponent("tooltip"); - var globalAxisPointerModel = ecModel.getComponent("axisPointer"); - var linksOption = globalAxisPointerModel.get("link", true) || []; - var linkGroups = []; - each$2(api.getCoordinateSystems(), function(coordSys) { - if (!coordSys.axisPointerEnabled) { - return; - } - var coordSysKey = makeKey(coordSys.model); - var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {}; - result.coordSysMap[coordSysKey] = coordSys; - var coordSysModel = coordSys.model; - var baseTooltipModel = coordSysModel.getModel("tooltip", globalTooltipModel); - each$2(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null)); - if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get("show")) { - var triggerAxis = baseTooltipModel.get("trigger") === "axis"; - var cross = baseTooltipModel.get(["axisPointer", "type"]) === "cross"; - var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(["axisPointer", "axis"])); - if (triggerAxis || cross) { - each$2(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? "cross" : true, triggerAxis)); - } - if (cross) { - each$2(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, "cross", false)); - } - } - function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) { - var axisPointerModel = axis.model.getModel("axisPointer", globalAxisPointerModel); - var axisPointerShow = axisPointerModel.get("show"); - if (!axisPointerShow || axisPointerShow === "auto" && !fromTooltip && !isHandleTrigger(axisPointerModel)) { - return; - } - if (triggerTooltip == null) { - triggerTooltip = axisPointerModel.get("triggerTooltip"); - } - axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel; - var snap = axisPointerModel.get("snap"); - var axisKey = makeKey(axis.model); - var involveSeries = triggerTooltip || snap || axis.type === "category"; - var axisInfo = result.axesInfo[axisKey] = { - key: axisKey, - axis, - coordSys, - axisPointerModel, - triggerTooltip, - involveSeries, - snap, - useHandle: isHandleTrigger(axisPointerModel), - seriesModels: [], - linkGroup: null - }; - axesInfoInCoordSys[axisKey] = axisInfo; - result.seriesInvolved = result.seriesInvolved || involveSeries; - var groupIndex = getLinkGroupIndex(linksOption, axis); - if (groupIndex != null) { - var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = { - axesInfo: {} - }); - linkGroup.axesInfo[axisKey] = axisInfo; - linkGroup.mapper = linksOption[groupIndex].mapper; - axisInfo.linkGroup = linkGroup; - } - } - }); -} -function makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) { - var tooltipAxisPointerModel = baseTooltipModel.getModel("axisPointer"); - var fields = ["type", "snap", "lineStyle", "shadowStyle", "label", "animation", "animationDurationUpdate", "animationEasingUpdate", "z"]; - var volatileOption = {}; - each$2(fields, function(field) { - volatileOption[field] = clone(tooltipAxisPointerModel.get(field)); - }); - volatileOption.snap = axis.type !== "category" && !!triggerTooltip; - if (tooltipAxisPointerModel.get("type") === "cross") { - volatileOption.type = "line"; - } - var labelOption = volatileOption.label || (volatileOption.label = {}); - labelOption.show == null && (labelOption.show = false); - if (fromTooltip === "cross") { - var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(["label", "show"]); - labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true; - if (!triggerTooltip) { - var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get("crossStyle"); - crossStyle && defaults(labelOption, crossStyle.textStyle); - } - } - return axis.model.getModel("axisPointer", new Model(volatileOption, globalAxisPointerModel, ecModel)); -} -function collectSeriesInfo(result, ecModel) { - ecModel.eachSeries(function(seriesModel) { - var coordSys = seriesModel.coordinateSystem; - var seriesTooltipTrigger = seriesModel.get(["tooltip", "trigger"], true); - var seriesTooltipShow = seriesModel.get(["tooltip", "show"], true); - if (!coordSys || seriesTooltipTrigger === "none" || seriesTooltipTrigger === false || seriesTooltipTrigger === "item" || seriesTooltipShow === false || seriesModel.get(["axisPointer", "show"], true) === false) { - return; - } - each$2(result.coordSysAxesInfo[makeKey(coordSys.model)], function(axisInfo) { - var axis = axisInfo.axis; - if (coordSys.getAxis(axis.dim) === axis) { - axisInfo.seriesModels.push(seriesModel); - axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0); - axisInfo.seriesDataCount += seriesModel.getData().count(); - } - }); - }); -} -function getLinkGroupIndex(linksOption, axis) { - var axisModel = axis.model; - var dim = axis.dim; - for (var i = 0; i < linksOption.length; i++) { - var linkOption = linksOption[i] || {}; - if (checkPropInLink(linkOption[dim + "AxisId"], axisModel.id) || checkPropInLink(linkOption[dim + "AxisIndex"], axisModel.componentIndex) || checkPropInLink(linkOption[dim + "AxisName"], axisModel.name)) { - return i; - } - } -} -function checkPropInLink(linkPropValue, axisPropValue) { - return linkPropValue === "all" || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue; -} -function fixValue(axisModel) { - var axisInfo = getAxisInfo(axisModel); - if (!axisInfo) { - return; - } - var axisPointerModel = axisInfo.axisPointerModel; - var scale2 = axisInfo.axis.scale; - var option = axisPointerModel.option; - var status = axisPointerModel.get("status"); - var value = axisPointerModel.get("value"); - if (value != null) { - value = scale2.parse(value); - } - var useHandle = isHandleTrigger(axisPointerModel); - if (status == null) { - option.status = useHandle ? "show" : "hide"; - } - var extent = scale2.getExtent().slice(); - extent[0] > extent[1] && extent.reverse(); - if ( - // Pick a value on axis when initializing. - value == null || value > extent[1] - ) { - value = extent[1]; - } - if (value < extent[0]) { - value = extent[0]; - } - option.value = value; - if (useHandle) { - option.status = axisInfo.axis.scale.isBlank() ? "hide" : "show"; - } -} -function getAxisInfo(axisModel) { - var coordSysAxesInfo = (axisModel.ecModel.getComponent("axisPointer") || {}).coordSysAxesInfo; - return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)]; -} -function getAxisPointerModel(axisModel) { - var axisInfo = getAxisInfo(axisModel); - return axisInfo && axisInfo.axisPointerModel; -} -function isHandleTrigger(axisPointerModel) { - return !!axisPointerModel.get(["handle", "show"]); -} -function makeKey(model) { - return model.type + "||" + model.id; -} -var axisPointerClazz = {}; -var AxisView = ( - /** @class */ - function(_super) { - __extends(AxisView2, _super); - function AxisView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = AxisView2.type; - return _this; - } - AxisView2.prototype.render = function(axisModel, ecModel, api, payload) { - this.axisPointerClass && fixValue(axisModel); - _super.prototype.render.apply(this, arguments); - this._doUpdateAxisPointerClass(axisModel, api, true); - }; - AxisView2.prototype.updateAxisPointer = function(axisModel, ecModel, api, payload) { - this._doUpdateAxisPointerClass(axisModel, api, false); - }; - AxisView2.prototype.remove = function(ecModel, api) { - var axisPointer = this._axisPointer; - axisPointer && axisPointer.remove(api); - }; - AxisView2.prototype.dispose = function(ecModel, api) { - this._disposeAxisPointer(api); - _super.prototype.dispose.apply(this, arguments); - }; - AxisView2.prototype._doUpdateAxisPointerClass = function(axisModel, api, forceRender) { - var Clazz = AxisView2.getAxisPointerClass(this.axisPointerClass); - if (!Clazz) { - return; - } - var axisPointerModel = getAxisPointerModel(axisModel); - axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api); - }; - AxisView2.prototype._disposeAxisPointer = function(api) { - this._axisPointer && this._axisPointer.dispose(api); - this._axisPointer = null; - }; - AxisView2.registerAxisPointerClass = function(type, clazz) { - axisPointerClazz[type] = clazz; - }; - AxisView2.getAxisPointerClass = function(type) { - return type && axisPointerClazz[type]; - }; - AxisView2.type = "axis"; - return AxisView2; - }(ComponentView) -); -const AxisView$1 = AxisView; -var inner = makeInner(); -function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) { - var axis = axisModel.axis; - if (axis.scale.isBlank()) { - return; - } - var splitAreaModel = axisModel.getModel("splitArea"); - var areaStyleModel = splitAreaModel.getModel("areaStyle"); - var areaColors = areaStyleModel.get("color"); - var gridRect = gridModel.coordinateSystem.getRect(); - var ticksCoords = axis.getTicksCoords({ - tickModel: splitAreaModel, - clamp: true - }); - if (!ticksCoords.length) { - return; - } - var areaColorsLen = areaColors.length; - var lastSplitAreaColors = inner(axisView).splitAreaColors; - var newSplitAreaColors = createHashMap(); - var colorIndex = 0; - if (lastSplitAreaColors) { - for (var i = 0; i < ticksCoords.length; i++) { - var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue); - if (cIndex != null) { - colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen; - break; - } - } - } - var prev = axis.toGlobalCoord(ticksCoords[0].coord); - var areaStyle = areaStyleModel.getAreaStyle(); - areaColors = isArray(areaColors) ? areaColors : [areaColors]; - for (var i = 1; i < ticksCoords.length; i++) { - var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord); - var x = void 0; - var y = void 0; - var width = void 0; - var height = void 0; - if (axis.isHorizontal()) { - x = prev; - y = gridRect.y; - width = tickCoord - x; - height = gridRect.height; - prev = x + width; - } else { - x = gridRect.x; - y = prev; - width = gridRect.width; - height = tickCoord - y; - prev = y + height; - } - var tickValue = ticksCoords[i - 1].tickValue; - tickValue != null && newSplitAreaColors.set(tickValue, colorIndex); - axisGroup.add(new Rect({ - anid: tickValue != null ? "area_" + tickValue : null, - shape: { - x, - y, - width, - height - }, - style: defaults({ - fill: areaColors[colorIndex] - }, areaStyle), - autoBatch: true, - silent: true - })); - colorIndex = (colorIndex + 1) % areaColorsLen; - } - inner(axisView).splitAreaColors = newSplitAreaColors; -} -function rectCoordAxisHandleRemove(axisView) { - inner(axisView).splitAreaColors = null; -} -var axisBuilderAttrs$1 = ["axisLine", "axisTickLabel", "axisName"]; -var selfBuilderAttrs = ["splitArea", "splitLine", "minorSplitLine"]; -var CartesianAxisView = ( - /** @class */ - function(_super) { - __extends(CartesianAxisView2, _super); - function CartesianAxisView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = CartesianAxisView2.type; - _this.axisPointerClass = "CartesianAxisPointer"; - return _this; - } - CartesianAxisView2.prototype.render = function(axisModel, ecModel, api, payload) { - this.group.removeAll(); - var oldAxisGroup = this._axisGroup; - this._axisGroup = new Group(); - this.group.add(this._axisGroup); - if (!axisModel.get("show")) { - return; - } - var gridModel = axisModel.getCoordSysModel(); - var layout$1 = layout(gridModel, axisModel); - var axisBuilder = new AxisBuilder$1(axisModel, extend({ - handleAutoShown: function(elementType) { - var cartesians = gridModel.coordinateSystem.getCartesians(); - for (var i = 0; i < cartesians.length; i++) { - if (isIntervalOrLogScale(cartesians[i].getOtherAxis(axisModel.axis).scale)) { - return true; - } - } - return false; - } - }, layout$1)); - each$2(axisBuilderAttrs$1, axisBuilder.add, axisBuilder); - this._axisGroup.add(axisBuilder.getGroup()); - each$2(selfBuilderAttrs, function(name) { - if (axisModel.get([name, "show"])) { - axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel); - } - }, this); - var isInitialSortFromBarRacing = payload && payload.type === "changeAxisOrder" && payload.isInitSort; - if (!isInitialSortFromBarRacing) { - groupTransition(oldAxisGroup, this._axisGroup, axisModel); - } - _super.prototype.render.call(this, axisModel, ecModel, api, payload); - }; - CartesianAxisView2.prototype.remove = function() { - rectCoordAxisHandleRemove(this); - }; - CartesianAxisView2.type = "cartesianAxis"; - return CartesianAxisView2; - }(AxisView$1) -); -var axisElementBuilders = { - splitLine: function(axisView, axisGroup, axisModel, gridModel) { - var axis = axisModel.axis; - if (axis.scale.isBlank()) { - return; - } - var splitLineModel = axisModel.getModel("splitLine"); - var lineStyleModel = splitLineModel.getModel("lineStyle"); - var lineColors = lineStyleModel.get("color"); - lineColors = isArray(lineColors) ? lineColors : [lineColors]; - var gridRect = gridModel.coordinateSystem.getRect(); - var isHorizontal = axis.isHorizontal(); - var lineCount = 0; - var ticksCoords = axis.getTicksCoords({ - tickModel: splitLineModel - }); - var p1 = []; - var p2 = []; - var lineStyle = lineStyleModel.getLineStyle(); - for (var i = 0; i < ticksCoords.length; i++) { - var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord); - if (isHorizontal) { - p1[0] = tickCoord; - p1[1] = gridRect.y; - p2[0] = tickCoord; - p2[1] = gridRect.y + gridRect.height; - } else { - p1[0] = gridRect.x; - p1[1] = tickCoord; - p2[0] = gridRect.x + gridRect.width; - p2[1] = tickCoord; - } - var colorIndex = lineCount++ % lineColors.length; - var tickValue = ticksCoords[i].tickValue; - var line = new Line$2({ - anid: tickValue != null ? "line_" + ticksCoords[i].tickValue : null, - autoBatch: true, - shape: { - x1: p1[0], - y1: p1[1], - x2: p2[0], - y2: p2[1] - }, - style: defaults({ - stroke: lineColors[colorIndex] - }, lineStyle), - silent: true - }); - subPixelOptimizeLine(line.shape, lineStyle.lineWidth); - axisGroup.add(line); - } - }, - minorSplitLine: function(axisView, axisGroup, axisModel, gridModel) { - var axis = axisModel.axis; - var minorSplitLineModel = axisModel.getModel("minorSplitLine"); - var lineStyleModel = minorSplitLineModel.getModel("lineStyle"); - var gridRect = gridModel.coordinateSystem.getRect(); - var isHorizontal = axis.isHorizontal(); - var minorTicksCoords = axis.getMinorTicksCoords(); - if (!minorTicksCoords.length) { - return; - } - var p1 = []; - var p2 = []; - var lineStyle = lineStyleModel.getLineStyle(); - for (var i = 0; i < minorTicksCoords.length; i++) { - for (var k = 0; k < minorTicksCoords[i].length; k++) { - var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord); - if (isHorizontal) { - p1[0] = tickCoord; - p1[1] = gridRect.y; - p2[0] = tickCoord; - p2[1] = gridRect.y + gridRect.height; - } else { - p1[0] = gridRect.x; - p1[1] = tickCoord; - p2[0] = gridRect.x + gridRect.width; - p2[1] = tickCoord; - } - var line = new Line$2({ - anid: "minor_line_" + minorTicksCoords[i][k].tickValue, - autoBatch: true, - shape: { - x1: p1[0], - y1: p1[1], - x2: p2[0], - y2: p2[1] - }, - style: lineStyle, - silent: true - }); - subPixelOptimizeLine(line.shape, lineStyle.lineWidth); - axisGroup.add(line); - } - } - }, - splitArea: function(axisView, axisGroup, axisModel, gridModel) { - rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel); - } -}; -var CartesianXAxisView = ( - /** @class */ - function(_super) { - __extends(CartesianXAxisView2, _super); - function CartesianXAxisView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = CartesianXAxisView2.type; - return _this; - } - CartesianXAxisView2.type = "xAxis"; - return CartesianXAxisView2; - }(CartesianAxisView) -); -var CartesianYAxisView = ( - /** @class */ - function(_super) { - __extends(CartesianYAxisView2, _super); - function CartesianYAxisView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = CartesianXAxisView.type; - return _this; - } - CartesianYAxisView2.type = "yAxis"; - return CartesianYAxisView2; - }(CartesianAxisView) -); -var GridView = ( - /** @class */ - function(_super) { - __extends(GridView2, _super); - function GridView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "grid"; - return _this; - } - GridView2.prototype.render = function(gridModel, ecModel) { - this.group.removeAll(); - if (gridModel.get("show")) { - this.group.add(new Rect({ - shape: gridModel.coordinateSystem.getRect(), - style: defaults({ - fill: gridModel.get("backgroundColor") - }, gridModel.getItemStyle()), - silent: true, - z2: -1 - })); - } - }; - GridView2.type = "grid"; - return GridView2; - }(ComponentView) -); -var extraOption = { - // gridIndex: 0, - // gridId: '', - offset: 0 -}; -function install$3(registers) { - registers.registerComponentView(GridView); - registers.registerComponentModel(GridModel$1); - registers.registerCoordinateSystem("cartesian2d", Grid$1); - axisModelCreator(registers, "x", CartesianAxisModel, extraOption); - axisModelCreator(registers, "y", CartesianAxisModel, extraOption); - registers.registerComponentView(CartesianXAxisView); - registers.registerComponentView(CartesianYAxisView); - registers.registerPreprocessor(function(option) { - if (option.xAxis && option.yAxis && !option.grid) { - option.grid = {}; - } - }); -} -var valueAxisDefault = axisDefault.value; -function defaultsShow(opt, show) { - return defaults({ - show - }, opt); -} -var RadarModel = ( - /** @class */ - function(_super) { - __extends(RadarModel2, _super); - function RadarModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = RadarModel2.type; - return _this; - } - RadarModel2.prototype.optionUpdated = function() { - var boundaryGap = this.get("boundaryGap"); - var splitNumber = this.get("splitNumber"); - var scale2 = this.get("scale"); - var axisLine = this.get("axisLine"); - var axisTick = this.get("axisTick"); - var axisLabel = this.get("axisLabel"); - var nameTextStyle = this.get("axisName"); - var showName = this.get(["axisName", "show"]); - var nameFormatter = this.get(["axisName", "formatter"]); - var nameGap = this.get("axisNameGap"); - var triggerEvent = this.get("triggerEvent"); - var indicatorModels = map(this.get("indicator") || [], function(indicatorOpt) { - if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) { - indicatorOpt.min = 0; - } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) { - indicatorOpt.max = 0; - } - var iNameTextStyle = nameTextStyle; - if (indicatorOpt.color != null) { - iNameTextStyle = defaults({ - color: indicatorOpt.color - }, nameTextStyle); - } - var innerIndicatorOpt = merge(clone(indicatorOpt), { - boundaryGap, - splitNumber, - scale: scale2, - axisLine, - axisTick, - // axisType: axisType, - axisLabel, - // Compatible with 2 and use text - name: indicatorOpt.text, - showName, - nameLocation: "end", - nameGap, - // min: 0, - nameTextStyle: iNameTextStyle, - triggerEvent - }, false); - if (isString(nameFormatter)) { - var indName = innerIndicatorOpt.name; - innerIndicatorOpt.name = nameFormatter.replace("{value}", indName != null ? indName : ""); - } else if (isFunction(nameFormatter)) { - innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt); - } - var model = new Model(innerIndicatorOpt, null, this.ecModel); - mixin(model, AxisModelCommonMixin.prototype); - model.mainType = "radar"; - model.componentIndex = this.componentIndex; - return model; - }, this); - this._indicatorModels = indicatorModels; - }; - RadarModel2.prototype.getIndicatorModels = function() { - return this._indicatorModels; - }; - RadarModel2.type = "radar"; - RadarModel2.defaultOption = { - // zlevel: 0, - z: 0, - center: ["50%", "50%"], - radius: "75%", - startAngle: 90, - axisName: { - show: true - // formatter: null - // textStyle: {} - }, - boundaryGap: [0, 0], - splitNumber: 5, - axisNameGap: 15, - scale: false, - // Polygon or circle - shape: "polygon", - axisLine: merge({ - lineStyle: { - color: "#bbb" - } - }, valueAxisDefault.axisLine), - axisLabel: defaultsShow(valueAxisDefault.axisLabel, false), - axisTick: defaultsShow(valueAxisDefault.axisTick, false), - // axisType: 'value', - splitLine: defaultsShow(valueAxisDefault.splitLine, true), - splitArea: defaultsShow(valueAxisDefault.splitArea, true), - // {text, min, max} - indicator: [] - }; - return RadarModel2; - }(ComponentModel) -); -const RadarModel$1 = RadarModel; -var axisBuilderAttrs = ["axisLine", "axisTickLabel", "axisName"]; -var RadarView = ( - /** @class */ - function(_super) { - __extends(RadarView2, _super); - function RadarView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = RadarView2.type; - return _this; - } - RadarView2.prototype.render = function(radarModel, ecModel, api) { - var group = this.group; - group.removeAll(); - this._buildAxes(radarModel); - this._buildSplitLineAndArea(radarModel); - }; - RadarView2.prototype._buildAxes = function(radarModel) { - var radar = radarModel.coordinateSystem; - var indicatorAxes = radar.getIndicatorAxes(); - var axisBuilders = map(indicatorAxes, function(indicatorAxis) { - var axisName = indicatorAxis.model.get("showName") ? indicatorAxis.name : ""; - var axisBuilder = new AxisBuilder$1(indicatorAxis.model, { - axisName, - position: [radar.cx, radar.cy], - rotation: indicatorAxis.angle, - labelDirection: -1, - tickDirection: -1, - nameDirection: 1 - }); - return axisBuilder; - }); - each$2(axisBuilders, function(axisBuilder) { - each$2(axisBuilderAttrs, axisBuilder.add, axisBuilder); - this.group.add(axisBuilder.getGroup()); - }, this); - }; - RadarView2.prototype._buildSplitLineAndArea = function(radarModel) { - var radar = radarModel.coordinateSystem; - var indicatorAxes = radar.getIndicatorAxes(); - if (!indicatorAxes.length) { - return; - } - var shape = radarModel.get("shape"); - var splitLineModel = radarModel.getModel("splitLine"); - var splitAreaModel = radarModel.getModel("splitArea"); - var lineStyleModel = splitLineModel.getModel("lineStyle"); - var areaStyleModel = splitAreaModel.getModel("areaStyle"); - var showSplitLine = splitLineModel.get("show"); - var showSplitArea = splitAreaModel.get("show"); - var splitLineColors = lineStyleModel.get("color"); - var splitAreaColors = areaStyleModel.get("color"); - var splitLineColorsArr = isArray(splitLineColors) ? splitLineColors : [splitLineColors]; - var splitAreaColorsArr = isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors]; - var splitLines = []; - var splitAreas = []; - function getColorIndex(areaOrLine, areaOrLineColorList, idx) { - var colorIndex2 = idx % areaOrLineColorList.length; - areaOrLine[colorIndex2] = areaOrLine[colorIndex2] || []; - return colorIndex2; - } - if (shape === "circle") { - var ticksRadius = indicatorAxes[0].getTicksCoords(); - var cx = radar.cx; - var cy = radar.cy; - for (var i = 0; i < ticksRadius.length; i++) { - if (showSplitLine) { - var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i); - splitLines[colorIndex].push(new Circle({ - shape: { - cx, - cy, - r: ticksRadius[i].coord - } - })); - } - if (showSplitArea && i < ticksRadius.length - 1) { - var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i); - splitAreas[colorIndex].push(new Ring({ - shape: { - cx, - cy, - r0: ticksRadius[i].coord, - r: ticksRadius[i + 1].coord - } - })); - } - } - } else { - var realSplitNumber_1; - var axesTicksPoints = map(indicatorAxes, function(indicatorAxis, idx) { - var ticksCoords = indicatorAxis.getTicksCoords(); - realSplitNumber_1 = realSplitNumber_1 == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber_1); - return map(ticksCoords, function(tickCoord) { - return radar.coordToPoint(tickCoord.coord, idx); - }); - }); - var prevPoints = []; - for (var i = 0; i <= realSplitNumber_1; i++) { - var points2 = []; - for (var j = 0; j < indicatorAxes.length; j++) { - points2.push(axesTicksPoints[j][i]); - } - if (points2[0]) { - points2.push(points2[0].slice()); - } - if (showSplitLine) { - var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i); - splitLines[colorIndex].push(new Polyline({ - shape: { - points: points2 - } - })); - } - if (showSplitArea && prevPoints) { - var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1); - splitAreas[colorIndex].push(new Polygon({ - shape: { - points: points2.concat(prevPoints) - } - })); - } - prevPoints = points2.slice().reverse(); - } - } - var lineStyle = lineStyleModel.getLineStyle(); - var areaStyle = areaStyleModel.getAreaStyle(); - each$2(splitAreas, function(splitAreas2, idx) { - this.group.add(mergePath(splitAreas2, { - style: defaults({ - stroke: "none", - fill: splitAreaColorsArr[idx % splitAreaColorsArr.length] - }, areaStyle), - silent: true - })); - }, this); - each$2(splitLines, function(splitLines2, idx) { - this.group.add(mergePath(splitLines2, { - style: defaults({ - fill: "none", - stroke: splitLineColorsArr[idx % splitLineColorsArr.length] - }, lineStyle), - silent: true - })); - }, this); - }; - RadarView2.type = "radar"; - return RadarView2; - }(ComponentView) -); -const RadarView$1 = RadarView; -var IndicatorAxis = ( - /** @class */ - function(_super) { - __extends(IndicatorAxis2, _super); - function IndicatorAxis2(dim, scale2, radiusExtent) { - var _this = _super.call(this, dim, scale2, radiusExtent) || this; - _this.type = "value"; - _this.angle = 0; - _this.name = ""; - return _this; - } - return IndicatorAxis2; - }(Axis) -); -const IndicatorAxis$1 = IndicatorAxis; -var Radar = ( - /** @class */ - function() { - function Radar2(radarModel, ecModel, api) { - this.dimensions = []; - this._model = radarModel; - this._indicatorAxes = map(radarModel.getIndicatorModels(), function(indicatorModel, idx) { - var dim = "indicator_" + idx; - var indicatorAxis = new IndicatorAxis$1( - dim, - new IntervalScale() - // (indicatorModel.get('axisType') === 'log') ? new LogScale() : new IntervalScale() - ); - indicatorAxis.name = indicatorModel.get("name"); - indicatorAxis.model = indicatorModel; - indicatorModel.axis = indicatorAxis; - this.dimensions.push(dim); - return indicatorAxis; - }, this); - this.resize(radarModel, api); - } - Radar2.prototype.getIndicatorAxes = function() { - return this._indicatorAxes; - }; - Radar2.prototype.dataToPoint = function(value, indicatorIndex) { - var indicatorAxis = this._indicatorAxes[indicatorIndex]; - return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex); - }; - Radar2.prototype.coordToPoint = function(coord, indicatorIndex) { - var indicatorAxis = this._indicatorAxes[indicatorIndex]; - var angle = indicatorAxis.angle; - var x = this.cx + coord * Math.cos(angle); - var y = this.cy - coord * Math.sin(angle); - return [x, y]; - }; - Radar2.prototype.pointToData = function(pt) { - var dx = pt[0] - this.cx; - var dy = pt[1] - this.cy; - var radius = Math.sqrt(dx * dx + dy * dy); - dx /= radius; - dy /= radius; - var radian = Math.atan2(-dy, dx); - var minRadianDiff = Infinity; - var closestAxis; - var closestAxisIdx = -1; - for (var i = 0; i < this._indicatorAxes.length; i++) { - var indicatorAxis = this._indicatorAxes[i]; - var diff = Math.abs(radian - indicatorAxis.angle); - if (diff < minRadianDiff) { - closestAxis = indicatorAxis; - closestAxisIdx = i; - minRadianDiff = diff; - } - } - return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))]; - }; - Radar2.prototype.resize = function(radarModel, api) { - var center = radarModel.get("center"); - var viewWidth = api.getWidth(); - var viewHeight = api.getHeight(); - var viewSize = Math.min(viewWidth, viewHeight) / 2; - this.cx = parsePercent(center[0], viewWidth); - this.cy = parsePercent(center[1], viewHeight); - this.startAngle = radarModel.get("startAngle") * Math.PI / 180; - var radius = radarModel.get("radius"); - if (isString(radius) || isNumber(radius)) { - radius = [0, radius]; - } - this.r0 = parsePercent(radius[0], viewSize); - this.r = parsePercent(radius[1], viewSize); - each$2(this._indicatorAxes, function(indicatorAxis, idx) { - indicatorAxis.setExtent(this.r0, this.r); - var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length; - angle = Math.atan2(Math.sin(angle), Math.cos(angle)); - indicatorAxis.angle = angle; - }, this); - }; - Radar2.prototype.update = function(ecModel, api) { - var indicatorAxes = this._indicatorAxes; - var radarModel = this._model; - each$2(indicatorAxes, function(indicatorAxis) { - indicatorAxis.scale.setExtent(Infinity, -Infinity); - }); - ecModel.eachSeriesByType("radar", function(radarSeries, idx) { - if (radarSeries.get("coordinateSystem") !== "radar" || ecModel.getComponent("radar", radarSeries.get("radarIndex")) !== radarModel) { - return; - } - var data = radarSeries.getData(); - each$2(indicatorAxes, function(indicatorAxis) { - indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim)); - }); - }, this); - var splitNumber = radarModel.get("splitNumber"); - var dummyScale = new IntervalScale(); - dummyScale.setExtent(0, splitNumber); - dummyScale.setInterval(1); - each$2(indicatorAxes, function(indicatorAxis, idx) { - alignScaleTicks(indicatorAxis.scale, indicatorAxis.model, dummyScale); - }); - }; - Radar2.prototype.convertToPixel = function(ecModel, finder, value) { - console.warn("Not implemented."); - return null; - }; - Radar2.prototype.convertFromPixel = function(ecModel, finder, pixel) { - console.warn("Not implemented."); - return null; - }; - Radar2.prototype.containPoint = function(point) { - console.warn("Not implemented."); - return false; - }; - Radar2.create = function(ecModel, api) { - var radarList = []; - ecModel.eachComponent("radar", function(radarModel) { - var radar = new Radar2(radarModel, ecModel, api); - radarList.push(radar); - radarModel.coordinateSystem = radar; - }); - ecModel.eachSeriesByType("radar", function(radarSeries) { - if (radarSeries.get("coordinateSystem") === "radar") { - radarSeries.coordinateSystem = radarList[radarSeries.get("radarIndex") || 0]; - } - }); - return radarList; - }; - Radar2.dimensions = []; - return Radar2; - }() -); -const Radar$1 = Radar; -function install$2(registers) { - registers.registerCoordinateSystem("radar", Radar$1); - registers.registerComponentModel(RadarModel$1); - registers.registerComponentView(RadarView$1); - registers.registerVisual({ - seriesType: "radar", - reset: function(seriesModel) { - var data = seriesModel.getData(); - data.each(function(idx) { - data.setItemVisual(idx, "legendIcon", "roundRect"); - }); - data.setVisual("legendIcon", "roundRect"); - } - }); -} -var ATTR = "\0_ec_interaction_mutex"; -function take(zr, resourceKey, userKey) { - var store = getStore(zr); - store[resourceKey] = userKey; -} -function release(zr, resourceKey, userKey) { - var store = getStore(zr); - var uKey = store[resourceKey]; - if (uKey === userKey) { - store[resourceKey] = null; - } -} -function isTaken(zr, resourceKey) { - return !!getStore(zr)[resourceKey]; -} -function getStore(zr) { - return zr[ATTR] || (zr[ATTR] = {}); -} -registerAction({ - type: "takeGlobalCursor", - event: "globalCursorTaken", - update: "update" -}, noop); -var RoamController = ( - /** @class */ - function(_super) { - __extends(RoamController2, _super); - function RoamController2(zr) { - var _this = _super.call(this) || this; - _this._zr = zr; - var mousedownHandler = bind(_this._mousedownHandler, _this); - var mousemoveHandler = bind(_this._mousemoveHandler, _this); - var mouseupHandler = bind(_this._mouseupHandler, _this); - var mousewheelHandler = bind(_this._mousewheelHandler, _this); - var pinchHandler = bind(_this._pinchHandler, _this); - _this.enable = function(controlType, opt) { - this.disable(); - this._opt = defaults(clone(opt) || {}, { - zoomOnMouseWheel: true, - moveOnMouseMove: true, - // By default, wheel do not trigger move. - moveOnMouseWheel: false, - preventDefaultMouseMove: true - }); - if (controlType == null) { - controlType = true; - } - if (controlType === true || controlType === "move" || controlType === "pan") { - zr.on("mousedown", mousedownHandler); - zr.on("mousemove", mousemoveHandler); - zr.on("mouseup", mouseupHandler); - } - if (controlType === true || controlType === "scale" || controlType === "zoom") { - zr.on("mousewheel", mousewheelHandler); - zr.on("pinch", pinchHandler); - } - }; - _this.disable = function() { - zr.off("mousedown", mousedownHandler); - zr.off("mousemove", mousemoveHandler); - zr.off("mouseup", mouseupHandler); - zr.off("mousewheel", mousewheelHandler); - zr.off("pinch", pinchHandler); - }; - return _this; - } - RoamController2.prototype.isDragging = function() { - return this._dragging; - }; - RoamController2.prototype.isPinching = function() { - return this._pinching; - }; - RoamController2.prototype.setPointerChecker = function(pointerChecker) { - this.pointerChecker = pointerChecker; - }; - RoamController2.prototype.dispose = function() { - this.disable(); - }; - RoamController2.prototype._mousedownHandler = function(e) { - if (isMiddleOrRightButtonOnMouseUpDown(e)) { - return; - } - var el = e.target; - while (el) { - if (el.draggable) { - return; - } - el = el.__hostTarget || el.parent; - } - var x = e.offsetX; - var y = e.offsetY; - if (this.pointerChecker && this.pointerChecker(e, x, y)) { - this._x = x; - this._y = y; - this._dragging = true; - } - }; - RoamController2.prototype._mousemoveHandler = function(e) { - if (!this._dragging || !isAvailableBehavior("moveOnMouseMove", e, this._opt) || e.gestureEvent === "pinch" || isTaken(this._zr, "globalPan")) { - return; - } - var x = e.offsetX; - var y = e.offsetY; - var oldX = this._x; - var oldY = this._y; - var dx = x - oldX; - var dy = y - oldY; - this._x = x; - this._y = y; - this._opt.preventDefaultMouseMove && stop(e.event); - trigger$1(this, "pan", "moveOnMouseMove", e, { - dx, - dy, - oldX, - oldY, - newX: x, - newY: y, - isAvailableBehavior: null - }); - }; - RoamController2.prototype._mouseupHandler = function(e) { - if (!isMiddleOrRightButtonOnMouseUpDown(e)) { - this._dragging = false; - } - }; - RoamController2.prototype._mousewheelHandler = function(e) { - var shouldZoom = isAvailableBehavior("zoomOnMouseWheel", e, this._opt); - var shouldMove = isAvailableBehavior("moveOnMouseWheel", e, this._opt); - var wheelDelta = e.wheelDelta; - var absWheelDeltaDelta = Math.abs(wheelDelta); - var originX = e.offsetX; - var originY = e.offsetY; - if (wheelDelta === 0 || !shouldZoom && !shouldMove) { - return; - } - if (shouldZoom) { - var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1; - var scale2 = wheelDelta > 0 ? factor : 1 / factor; - checkPointerAndTrigger(this, "zoom", "zoomOnMouseWheel", e, { - scale: scale2, - originX, - originY, - isAvailableBehavior: null - }); - } - if (shouldMove) { - var absDelta = Math.abs(wheelDelta); - var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05); - checkPointerAndTrigger(this, "scrollMove", "moveOnMouseWheel", e, { - scrollDelta, - originX, - originY, - isAvailableBehavior: null - }); - } - }; - RoamController2.prototype._pinchHandler = function(e) { - if (isTaken(this._zr, "globalPan")) { - return; - } - var scale2 = e.pinchScale > 1 ? 1.1 : 1 / 1.1; - checkPointerAndTrigger(this, "zoom", null, e, { - scale: scale2, - originX: e.pinchX, - originY: e.pinchY, - isAvailableBehavior: null - }); - }; - return RoamController2; - }(Eventful) -); -function checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) { - if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) { - stop(e.event); - trigger$1(controller, eventName, behaviorToCheck, e, contollerEvent); - } -} -function trigger$1(controller, eventName, behaviorToCheck, e, contollerEvent) { - contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e); - controller.trigger(eventName, contollerEvent); -} -function isAvailableBehavior(behaviorToCheck, e, settings) { - var setting = settings[behaviorToCheck]; - return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + "Key"]); -} -const RoamController$1 = RoamController; -function updateViewOnPan(controllerHost, dx, dy) { - var target = controllerHost.target; - target.x += dx; - target.y += dy; - target.dirty(); -} -function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) { - var target = controllerHost.target; - var zoomLimit = controllerHost.zoomLimit; - var newZoom = controllerHost.zoom = controllerHost.zoom || 1; - newZoom *= zoomDelta; - if (zoomLimit) { - var zoomMin = zoomLimit.min || 0; - var zoomMax = zoomLimit.max || Infinity; - newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin); - } - var zoomScale = newZoom / controllerHost.zoom; - controllerHost.zoom = newZoom; - target.x -= (zoomX - target.x) * (zoomScale - 1); - target.y -= (zoomY - target.y) * (zoomScale - 1); - target.scaleX *= zoomScale; - target.scaleY *= zoomScale; - target.dirty(); -} -var IRRELEVANT_EXCLUDES = { - "axisPointer": 1, - "tooltip": 1, - "brush": 1 -}; -function onIrrelevantElement(e, api, targetCoordSysModel) { - var model = api.getComponentByElement(e.topTarget); - var coordSys = model && model.coordinateSystem; - return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel; -} -function parseXML(svg) { - if (isString(svg)) { - var parser = new DOMParser(); - svg = parser.parseFromString(svg, "text/xml"); - } - var svgNode = svg; - if (svgNode.nodeType === 9) { - svgNode = svgNode.firstChild; - } - while (svgNode.nodeName.toLowerCase() !== "svg" || svgNode.nodeType !== 1) { - svgNode = svgNode.nextSibling; - } - return svgNode; -} -var nodeParsers; -var INHERITABLE_STYLE_ATTRIBUTES_MAP = { - "fill": "fill", - "stroke": "stroke", - "stroke-width": "lineWidth", - "opacity": "opacity", - "fill-opacity": "fillOpacity", - "stroke-opacity": "strokeOpacity", - "stroke-dasharray": "lineDash", - "stroke-dashoffset": "lineDashOffset", - "stroke-linecap": "lineCap", - "stroke-linejoin": "lineJoin", - "stroke-miterlimit": "miterLimit", - "font-family": "fontFamily", - "font-size": "fontSize", - "font-style": "fontStyle", - "font-weight": "fontWeight", - "text-anchor": "textAlign", - "visibility": "visibility", - "display": "display" -}; -var INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS = keys(INHERITABLE_STYLE_ATTRIBUTES_MAP); -var SELF_STYLE_ATTRIBUTES_MAP = { - "alignment-baseline": "textBaseline", - "stop-color": "stopColor" -}; -var SELF_STYLE_ATTRIBUTES_MAP_KEYS = keys(SELF_STYLE_ATTRIBUTES_MAP); -var SVGParser = function() { - function SVGParser2() { - this._defs = {}; - this._root = null; - } - SVGParser2.prototype.parse = function(xml, opt) { - opt = opt || {}; - var svg = parseXML(xml); - this._defsUsePending = []; - var root = new Group(); - this._root = root; - var named = []; - var viewBox = svg.getAttribute("viewBox") || ""; - var width = parseFloat(svg.getAttribute("width") || opt.width); - var height = parseFloat(svg.getAttribute("height") || opt.height); - isNaN(width) && (width = null); - isNaN(height) && (height = null); - parseAttributes(svg, root, null, true, false); - var child = svg.firstChild; - while (child) { - this._parseNode(child, root, named, null, false, false); - child = child.nextSibling; - } - applyDefs(this._defs, this._defsUsePending); - this._defsUsePending = []; - var viewBoxRect; - var viewBoxTransform; - if (viewBox) { - var viewBoxArr = splitNumberSequence(viewBox); - if (viewBoxArr.length >= 4) { - viewBoxRect = { - x: parseFloat(viewBoxArr[0] || 0), - y: parseFloat(viewBoxArr[1] || 0), - width: parseFloat(viewBoxArr[2]), - height: parseFloat(viewBoxArr[3]) - }; - } - } - if (viewBoxRect && width != null && height != null) { - viewBoxTransform = makeViewBoxTransform(viewBoxRect, { x: 0, y: 0, width, height }); - if (!opt.ignoreViewBox) { - var elRoot = root; - root = new Group(); - root.add(elRoot); - elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale; - elRoot.x = viewBoxTransform.x; - elRoot.y = viewBoxTransform.y; - } - } - if (!opt.ignoreRootClip && width != null && height != null) { - root.setClipPath(new Rect({ - shape: { x: 0, y: 0, width, height } - })); - } - return { - root, - width, - height, - viewBoxRect, - viewBoxTransform, - named - }; - }; - SVGParser2.prototype._parseNode = function(xmlNode, parentGroup, named, namedFrom, isInDefs, isInText) { - var nodeName = xmlNode.nodeName.toLowerCase(); - var el; - var namedFromForSub = namedFrom; - if (nodeName === "defs") { - isInDefs = true; - } - if (nodeName === "text") { - isInText = true; - } - if (nodeName === "defs" || nodeName === "switch") { - el = parentGroup; - } else { - if (!isInDefs) { - var parser_1 = nodeParsers[nodeName]; - if (parser_1 && hasOwn(nodeParsers, nodeName)) { - el = parser_1.call(this, xmlNode, parentGroup); - var nameAttr = xmlNode.getAttribute("name"); - if (nameAttr) { - var newNamed = { - name: nameAttr, - namedFrom: null, - svgNodeTagLower: nodeName, - el - }; - named.push(newNamed); - if (nodeName === "g") { - namedFromForSub = newNamed; - } - } else if (namedFrom) { - named.push({ - name: namedFrom.name, - namedFrom, - svgNodeTagLower: nodeName, - el - }); - } - parentGroup.add(el); - } - } - var parser = paintServerParsers[nodeName]; - if (parser && hasOwn(paintServerParsers, nodeName)) { - var def = parser.call(this, xmlNode); - var id = xmlNode.getAttribute("id"); - if (id) { - this._defs[id] = def; - } - } - } - if (el && el.isGroup) { - var child = xmlNode.firstChild; - while (child) { - if (child.nodeType === 1) { - this._parseNode(child, el, named, namedFromForSub, isInDefs, isInText); - } else if (child.nodeType === 3 && isInText) { - this._parseText(child, el); - } - child = child.nextSibling; - } - } - }; - SVGParser2.prototype._parseText = function(xmlNode, parentGroup) { - var text = new TSpan({ - style: { - text: xmlNode.textContent - }, - silent: true, - x: this._textX || 0, - y: this._textY || 0 - }); - inheritStyle(parentGroup, text); - parseAttributes(xmlNode, text, this._defsUsePending, false, false); - applyTextAlignment(text, parentGroup); - var textStyle = text.style; - var fontSize = textStyle.fontSize; - if (fontSize && fontSize < 9) { - textStyle.fontSize = 9; - text.scaleX *= fontSize / 9; - text.scaleY *= fontSize / 9; - } - var font = (textStyle.fontSize || textStyle.fontFamily) && [ - textStyle.fontStyle, - textStyle.fontWeight, - (textStyle.fontSize || 12) + "px", - textStyle.fontFamily || "sans-serif" - ].join(" "); - textStyle.font = font; - var rect = text.getBoundingRect(); - this._textX += rect.width; - parentGroup.add(text); - return text; - }; - SVGParser2.internalField = function() { - nodeParsers = { - "g": function(xmlNode, parentGroup) { - var g = new Group(); - inheritStyle(parentGroup, g); - parseAttributes(xmlNode, g, this._defsUsePending, false, false); - return g; - }, - "rect": function(xmlNode, parentGroup) { - var rect = new Rect(); - inheritStyle(parentGroup, rect); - parseAttributes(xmlNode, rect, this._defsUsePending, false, false); - rect.setShape({ - x: parseFloat(xmlNode.getAttribute("x") || "0"), - y: parseFloat(xmlNode.getAttribute("y") || "0"), - width: parseFloat(xmlNode.getAttribute("width") || "0"), - height: parseFloat(xmlNode.getAttribute("height") || "0") - }); - rect.silent = true; - return rect; - }, - "circle": function(xmlNode, parentGroup) { - var circle = new Circle(); - inheritStyle(parentGroup, circle); - parseAttributes(xmlNode, circle, this._defsUsePending, false, false); - circle.setShape({ - cx: parseFloat(xmlNode.getAttribute("cx") || "0"), - cy: parseFloat(xmlNode.getAttribute("cy") || "0"), - r: parseFloat(xmlNode.getAttribute("r") || "0") - }); - circle.silent = true; - return circle; - }, - "line": function(xmlNode, parentGroup) { - var line = new Line$2(); - inheritStyle(parentGroup, line); - parseAttributes(xmlNode, line, this._defsUsePending, false, false); - line.setShape({ - x1: parseFloat(xmlNode.getAttribute("x1") || "0"), - y1: parseFloat(xmlNode.getAttribute("y1") || "0"), - x2: parseFloat(xmlNode.getAttribute("x2") || "0"), - y2: parseFloat(xmlNode.getAttribute("y2") || "0") - }); - line.silent = true; - return line; - }, - "ellipse": function(xmlNode, parentGroup) { - var ellipse = new Ellipse(); - inheritStyle(parentGroup, ellipse); - parseAttributes(xmlNode, ellipse, this._defsUsePending, false, false); - ellipse.setShape({ - cx: parseFloat(xmlNode.getAttribute("cx") || "0"), - cy: parseFloat(xmlNode.getAttribute("cy") || "0"), - rx: parseFloat(xmlNode.getAttribute("rx") || "0"), - ry: parseFloat(xmlNode.getAttribute("ry") || "0") - }); - ellipse.silent = true; - return ellipse; - }, - "polygon": function(xmlNode, parentGroup) { - var pointsStr = xmlNode.getAttribute("points"); - var pointsArr; - if (pointsStr) { - pointsArr = parsePoints(pointsStr); - } - var polygon = new Polygon({ - shape: { - points: pointsArr || [] - }, - silent: true - }); - inheritStyle(parentGroup, polygon); - parseAttributes(xmlNode, polygon, this._defsUsePending, false, false); - return polygon; - }, - "polyline": function(xmlNode, parentGroup) { - var pointsStr = xmlNode.getAttribute("points"); - var pointsArr; - if (pointsStr) { - pointsArr = parsePoints(pointsStr); - } - var polyline = new Polyline({ - shape: { - points: pointsArr || [] - }, - silent: true - }); - inheritStyle(parentGroup, polyline); - parseAttributes(xmlNode, polyline, this._defsUsePending, false, false); - return polyline; - }, - "image": function(xmlNode, parentGroup) { - var img = new ZRImage(); - inheritStyle(parentGroup, img); - parseAttributes(xmlNode, img, this._defsUsePending, false, false); - img.setStyle({ - image: xmlNode.getAttribute("xlink:href") || xmlNode.getAttribute("href"), - x: +xmlNode.getAttribute("x"), - y: +xmlNode.getAttribute("y"), - width: +xmlNode.getAttribute("width"), - height: +xmlNode.getAttribute("height") - }); - img.silent = true; - return img; - }, - "text": function(xmlNode, parentGroup) { - var x = xmlNode.getAttribute("x") || "0"; - var y = xmlNode.getAttribute("y") || "0"; - var dx = xmlNode.getAttribute("dx") || "0"; - var dy = xmlNode.getAttribute("dy") || "0"; - this._textX = parseFloat(x) + parseFloat(dx); - this._textY = parseFloat(y) + parseFloat(dy); - var g = new Group(); - inheritStyle(parentGroup, g); - parseAttributes(xmlNode, g, this._defsUsePending, false, true); - return g; - }, - "tspan": function(xmlNode, parentGroup) { - var x = xmlNode.getAttribute("x"); - var y = xmlNode.getAttribute("y"); - if (x != null) { - this._textX = parseFloat(x); - } - if (y != null) { - this._textY = parseFloat(y); - } - var dx = xmlNode.getAttribute("dx") || "0"; - var dy = xmlNode.getAttribute("dy") || "0"; - var g = new Group(); - inheritStyle(parentGroup, g); - parseAttributes(xmlNode, g, this._defsUsePending, false, true); - this._textX += parseFloat(dx); - this._textY += parseFloat(dy); - return g; - }, - "path": function(xmlNode, parentGroup) { - var d = xmlNode.getAttribute("d") || ""; - var path = createFromString(d); - inheritStyle(parentGroup, path); - parseAttributes(xmlNode, path, this._defsUsePending, false, false); - path.silent = true; - return path; - } - }; - }(); - return SVGParser2; -}(); -var paintServerParsers = { - "lineargradient": function(xmlNode) { - var x1 = parseInt(xmlNode.getAttribute("x1") || "0", 10); - var y1 = parseInt(xmlNode.getAttribute("y1") || "0", 10); - var x2 = parseInt(xmlNode.getAttribute("x2") || "10", 10); - var y2 = parseInt(xmlNode.getAttribute("y2") || "0", 10); - var gradient = new LinearGradient(x1, y1, x2, y2); - parsePaintServerUnit(xmlNode, gradient); - parseGradientColorStops(xmlNode, gradient); - return gradient; - }, - "radialgradient": function(xmlNode) { - var cx = parseInt(xmlNode.getAttribute("cx") || "0", 10); - var cy = parseInt(xmlNode.getAttribute("cy") || "0", 10); - var r = parseInt(xmlNode.getAttribute("r") || "0", 10); - var gradient = new RadialGradient(cx, cy, r); - parsePaintServerUnit(xmlNode, gradient); - parseGradientColorStops(xmlNode, gradient); - return gradient; - } -}; -function parsePaintServerUnit(xmlNode, gradient) { - var gradientUnits = xmlNode.getAttribute("gradientUnits"); - if (gradientUnits === "userSpaceOnUse") { - gradient.global = true; - } -} -function parseGradientColorStops(xmlNode, gradient) { - var stop2 = xmlNode.firstChild; - while (stop2) { - if (stop2.nodeType === 1 && stop2.nodeName.toLocaleLowerCase() === "stop") { - var offsetStr = stop2.getAttribute("offset"); - var offset = void 0; - if (offsetStr && offsetStr.indexOf("%") > 0) { - offset = parseInt(offsetStr, 10) / 100; - } else if (offsetStr) { - offset = parseFloat(offsetStr); - } else { - offset = 0; - } - var styleVals = {}; - parseInlineStyle(stop2, styleVals, styleVals); - var stopColor = styleVals.stopColor || stop2.getAttribute("stop-color") || "#000000"; - gradient.colorStops.push({ - offset, - color: stopColor - }); - } - stop2 = stop2.nextSibling; - } -} -function inheritStyle(parent, child) { - if (parent && parent.__inheritedStyle) { - if (!child.__inheritedStyle) { - child.__inheritedStyle = {}; - } - defaults(child.__inheritedStyle, parent.__inheritedStyle); - } -} -function parsePoints(pointsString) { - var list = splitNumberSequence(pointsString); - var points2 = []; - for (var i = 0; i < list.length; i += 2) { - var x = parseFloat(list[i]); - var y = parseFloat(list[i + 1]); - points2.push([x, y]); - } - return points2; -} -function parseAttributes(xmlNode, el, defsUsePending, onlyInlineStyle, isTextGroup) { - var disp = el; - var inheritedStyle = disp.__inheritedStyle = disp.__inheritedStyle || {}; - var selfStyle = {}; - if (xmlNode.nodeType === 1) { - parseTransformAttribute(xmlNode, el); - parseInlineStyle(xmlNode, inheritedStyle, selfStyle); - if (!onlyInlineStyle) { - parseAttributeStyle(xmlNode, inheritedStyle, selfStyle); - } - } - disp.style = disp.style || {}; - if (inheritedStyle.fill != null) { - disp.style.fill = getFillStrokeStyle(disp, "fill", inheritedStyle.fill, defsUsePending); - } - if (inheritedStyle.stroke != null) { - disp.style.stroke = getFillStrokeStyle(disp, "stroke", inheritedStyle.stroke, defsUsePending); - } - each$2([ - "lineWidth", - "opacity", - "fillOpacity", - "strokeOpacity", - "miterLimit", - "fontSize" - ], function(propName) { - if (inheritedStyle[propName] != null) { - disp.style[propName] = parseFloat(inheritedStyle[propName]); - } - }); - each$2([ - "lineDashOffset", - "lineCap", - "lineJoin", - "fontWeight", - "fontFamily", - "fontStyle", - "textAlign" - ], function(propName) { - if (inheritedStyle[propName] != null) { - disp.style[propName] = inheritedStyle[propName]; - } - }); - if (isTextGroup) { - disp.__selfStyle = selfStyle; - } - if (inheritedStyle.lineDash) { - disp.style.lineDash = map(splitNumberSequence(inheritedStyle.lineDash), function(str) { - return parseFloat(str); - }); - } - if (inheritedStyle.visibility === "hidden" || inheritedStyle.visibility === "collapse") { - disp.invisible = true; - } - if (inheritedStyle.display === "none") { - disp.ignore = true; - } -} -function applyTextAlignment(text, parentGroup) { - var parentSelfStyle = parentGroup.__selfStyle; - if (parentSelfStyle) { - var textBaseline = parentSelfStyle.textBaseline; - var zrTextBaseline = textBaseline; - if (!textBaseline || textBaseline === "auto") { - zrTextBaseline = "alphabetic"; - } else if (textBaseline === "baseline") { - zrTextBaseline = "alphabetic"; - } else if (textBaseline === "before-edge" || textBaseline === "text-before-edge") { - zrTextBaseline = "top"; - } else if (textBaseline === "after-edge" || textBaseline === "text-after-edge") { - zrTextBaseline = "bottom"; - } else if (textBaseline === "central" || textBaseline === "mathematical") { - zrTextBaseline = "middle"; - } - text.style.textBaseline = zrTextBaseline; - } - var parentInheritedStyle = parentGroup.__inheritedStyle; - if (parentInheritedStyle) { - var textAlign = parentInheritedStyle.textAlign; - var zrTextAlign = textAlign; - if (textAlign) { - if (textAlign === "middle") { - zrTextAlign = "center"; - } - text.style.textAlign = zrTextAlign; - } - } -} -var urlRegex = /^url\(\s*#(.*?)\)/; -function getFillStrokeStyle(el, method, str, defsUsePending) { - var urlMatch = str && str.match(urlRegex); - if (urlMatch) { - var url = trim(urlMatch[1]); - defsUsePending.push([el, method, url]); - return; - } - if (str === "none") { - str = null; - } - return str; -} -function applyDefs(defs, defsUsePending) { - for (var i = 0; i < defsUsePending.length; i++) { - var item = defsUsePending[i]; - item[0].style[item[1]] = defs[item[2]]; - } -} -var numberReg = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g; -function splitNumberSequence(rawStr) { - return rawStr.match(numberReg) || []; -} -var transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.eE,]*)\)/g; -var DEGREE_TO_ANGLE = Math.PI / 180; -function parseTransformAttribute(xmlNode, node) { - var transform = xmlNode.getAttribute("transform"); - if (transform) { - transform = transform.replace(/,/g, " "); - var transformOps_1 = []; - var mt = null; - transform.replace(transformRegex, function(str, type2, value2) { - transformOps_1.push(type2, value2); - return ""; - }); - for (var i = transformOps_1.length - 1; i > 0; i -= 2) { - var value = transformOps_1[i]; - var type = transformOps_1[i - 1]; - var valueArr = splitNumberSequence(value); - mt = mt || create(); - switch (type) { - case "translate": - translate(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || "0")]); - break; - case "scale": - scale(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]); - break; - case "rotate": - rotate(mt, mt, -parseFloat(valueArr[0]) * DEGREE_TO_ANGLE); - break; - case "skewX": - var sx = Math.tan(parseFloat(valueArr[0]) * DEGREE_TO_ANGLE); - mul(mt, [1, 0, sx, 1, 0, 0], mt); - break; - case "skewY": - var sy = Math.tan(parseFloat(valueArr[0]) * DEGREE_TO_ANGLE); - mul(mt, [1, sy, 0, 1, 0, 0], mt); - break; - case "matrix": - mt[0] = parseFloat(valueArr[0]); - mt[1] = parseFloat(valueArr[1]); - mt[2] = parseFloat(valueArr[2]); - mt[3] = parseFloat(valueArr[3]); - mt[4] = parseFloat(valueArr[4]); - mt[5] = parseFloat(valueArr[5]); - break; - } - } - node.setLocalTransform(mt); - } -} -var styleRegex = /([^\s:;]+)\s*:\s*([^:;]+)/g; -function parseInlineStyle(xmlNode, inheritableStyleResult, selfStyleResult) { - var style = xmlNode.getAttribute("style"); - if (!style) { - return; - } - styleRegex.lastIndex = 0; - var styleRegResult; - while ((styleRegResult = styleRegex.exec(style)) != null) { - var svgStlAttr = styleRegResult[1]; - var zrInheritableStlAttr = hasOwn(INHERITABLE_STYLE_ATTRIBUTES_MAP, svgStlAttr) ? INHERITABLE_STYLE_ATTRIBUTES_MAP[svgStlAttr] : null; - if (zrInheritableStlAttr) { - inheritableStyleResult[zrInheritableStlAttr] = styleRegResult[2]; - } - var zrSelfStlAttr = hasOwn(SELF_STYLE_ATTRIBUTES_MAP, svgStlAttr) ? SELF_STYLE_ATTRIBUTES_MAP[svgStlAttr] : null; - if (zrSelfStlAttr) { - selfStyleResult[zrSelfStlAttr] = styleRegResult[2]; - } - } -} -function parseAttributeStyle(xmlNode, inheritableStyleResult, selfStyleResult) { - for (var i = 0; i < INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) { - var svgAttrName = INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS[i]; - var attrValue = xmlNode.getAttribute(svgAttrName); - if (attrValue != null) { - inheritableStyleResult[INHERITABLE_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue; - } - } - for (var i = 0; i < SELF_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) { - var svgAttrName = SELF_STYLE_ATTRIBUTES_MAP_KEYS[i]; - var attrValue = xmlNode.getAttribute(svgAttrName); - if (attrValue != null) { - selfStyleResult[SELF_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue; - } - } -} -function makeViewBoxTransform(viewBoxRect, boundingRect) { - var scaleX = boundingRect.width / viewBoxRect.width; - var scaleY = boundingRect.height / viewBoxRect.height; - var scale2 = Math.min(scaleX, scaleY); - return { - scale: scale2, - x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale2 + (boundingRect.x + boundingRect.width / 2), - y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale2 + (boundingRect.y + boundingRect.height / 2) - }; -} -function parseSVG(xml, opt) { - var parser = new SVGParser(); - return parser.parse(xml, opt); -} -var REGION_AVAILABLE_SVG_TAG_MAP = createHashMap([ - "rect", - "circle", - "line", - "ellipse", - "polygon", - "polyline", - "path", - // are also enabled because some SVG might paint text itself, - // but still need to trigger events or tooltip. - "text", - "tspan", - // is also enabled because this case: if multiple tags share one name - // and need label displayed, every tags will display the name, which is not - // expected. So we can put them into a . Thereby only one label - // displayed and located based on the bounding rect of the . - "g" -]); -var GeoSVGResource = ( - /** @class */ - function() { - function GeoSVGResource2(mapName, svg) { - this.type = "geoSVG"; - this._usedGraphicMap = createHashMap(); - this._freedGraphics = []; - this._mapName = mapName; - this._parsedXML = parseXML(svg); - } - GeoSVGResource2.prototype.load = function() { - var firstGraphic = this._firstGraphic; - if (!firstGraphic) { - firstGraphic = this._firstGraphic = this._buildGraphic(this._parsedXML); - this._freedGraphics.push(firstGraphic); - this._boundingRect = this._firstGraphic.boundingRect.clone(); - var _a = createRegions(firstGraphic.named), regions = _a.regions, regionsMap = _a.regionsMap; - this._regions = regions; - this._regionsMap = regionsMap; - } - return { - boundingRect: this._boundingRect, - regions: this._regions, - regionsMap: this._regionsMap - }; - }; - GeoSVGResource2.prototype._buildGraphic = function(svgXML) { - var result; - var rootFromParse; - try { - result = svgXML && parseSVG(svgXML, { - ignoreViewBox: true, - ignoreRootClip: true - }) || {}; - rootFromParse = result.root; - assert(rootFromParse != null); - } catch (e) { - throw new Error("Invalid svg format\n" + e.message); - } - var root = new Group(); - root.add(rootFromParse); - root.isGeoSVGGraphicRoot = true; - var svgWidth = result.width; - var svgHeight = result.height; - var viewBoxRect = result.viewBoxRect; - var boundingRect = this._boundingRect; - if (!boundingRect) { - var bRectX = void 0; - var bRectY = void 0; - var bRectWidth = void 0; - var bRectHeight = void 0; - if (svgWidth != null) { - bRectX = 0; - bRectWidth = svgWidth; - } else if (viewBoxRect) { - bRectX = viewBoxRect.x; - bRectWidth = viewBoxRect.width; - } - if (svgHeight != null) { - bRectY = 0; - bRectHeight = svgHeight; - } else if (viewBoxRect) { - bRectY = viewBoxRect.y; - bRectHeight = viewBoxRect.height; - } - if (bRectX == null || bRectY == null) { - var calculatedBoundingRect = rootFromParse.getBoundingRect(); - if (bRectX == null) { - bRectX = calculatedBoundingRect.x; - bRectWidth = calculatedBoundingRect.width; - } - if (bRectY == null) { - bRectY = calculatedBoundingRect.y; - bRectHeight = calculatedBoundingRect.height; - } - } - boundingRect = this._boundingRect = new BoundingRect(bRectX, bRectY, bRectWidth, bRectHeight); - } - if (viewBoxRect) { - var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect); - rootFromParse.scaleX = rootFromParse.scaleY = viewBoxTransform.scale; - rootFromParse.x = viewBoxTransform.x; - rootFromParse.y = viewBoxTransform.y; - } - root.setClipPath(new Rect({ - shape: boundingRect.plain() - })); - var named = []; - each$2(result.named, function(namedItem) { - if (REGION_AVAILABLE_SVG_TAG_MAP.get(namedItem.svgNodeTagLower) != null) { - named.push(namedItem); - setSilent(namedItem.el); - } - }); - return { - root, - boundingRect, - named - }; - }; - GeoSVGResource2.prototype.useGraphic = function(hostKey) { - var usedRootMap = this._usedGraphicMap; - var svgGraphic = usedRootMap.get(hostKey); - if (svgGraphic) { - return svgGraphic; - } - svgGraphic = this._freedGraphics.pop() || this._buildGraphic(this._parsedXML); - usedRootMap.set(hostKey, svgGraphic); - return svgGraphic; - }; - GeoSVGResource2.prototype.freeGraphic = function(hostKey) { - var usedRootMap = this._usedGraphicMap; - var svgGraphic = usedRootMap.get(hostKey); - if (svgGraphic) { - usedRootMap.removeKey(hostKey); - this._freedGraphics.push(svgGraphic); - } - }; - return GeoSVGResource2; - }() -); -function setSilent(el) { - el.silent = false; - if (el.isGroup) { - el.traverse(function(child) { - child.silent = false; - }); - } -} -function createRegions(named) { - var regions = []; - var regionsMap = createHashMap(); - each$2(named, function(namedItem) { - if (namedItem.namedFrom != null) { - return; - } - var region = new GeoSVGRegion(namedItem.name, namedItem.el); - regions.push(region); - regionsMap.set(namedItem.name, region); - }); - return { - regions, - regionsMap - }; -} -var geoCoord = [126, 25]; -var nanhaiName = "南海诸岛"; -var points$1 = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]]; -for (var i = 0; i < points$1.length; i++) { - for (var k = 0; k < points$1[i].length; k++) { - points$1[i][k][0] /= 10.5; - points$1[i][k][1] /= -10.5 / 0.75; - points$1[i][k][0] += geoCoord[0]; - points$1[i][k][1] += geoCoord[1]; - } -} -function fixNanhai(mapType, regions) { - if (mapType === "china") { - for (var i = 0; i < regions.length; i++) { - if (regions[i].name === nanhaiName) { - return; - } - } - regions.push(new GeoJSONRegion(nanhaiName, map(points$1, function(exterior) { - return { - type: "polygon", - exterior - }; - }), geoCoord)); - } -} -var coordsOffsetMap = { - "南海诸岛": [32, 80], - // 全国 - "广东": [0, -10], - "香港": [10, 5], - "澳门": [-10, 10], - // '北京': [-10, 0], - "天津": [5, 5] -}; -function fixTextCoords(mapType, region) { - if (mapType === "china") { - var coordFix = coordsOffsetMap[region.name]; - if (coordFix) { - var cp = region.getCenter(); - cp[0] += coordFix[0] / 10.5; - cp[1] += -coordFix[1] / (10.5 / 0.75); - region.setCenter(cp); - } - } -} -var points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]]; -function fixDiaoyuIsland(mapType, region) { - if (mapType === "china" && region.name === "台湾") { - region.geometries.push({ - type: "polygon", - exterior: points[0] - }); - } -} -var DEFAULT_NAME_PROPERTY = "name"; -var GeoJSONResource = ( - /** @class */ - function() { - function GeoJSONResource2(mapName, geoJSON, specialAreas) { - this.type = "geoJSON"; - this._parsedMap = createHashMap(); - this._mapName = mapName; - this._specialAreas = specialAreas; - this._geoJSON = parseInput(geoJSON); - } - GeoJSONResource2.prototype.load = function(nameMap, nameProperty) { - nameProperty = nameProperty || DEFAULT_NAME_PROPERTY; - var parsed = this._parsedMap.get(nameProperty); - if (!parsed) { - var rawRegions = this._parseToRegions(nameProperty); - parsed = this._parsedMap.set(nameProperty, { - regions: rawRegions, - boundingRect: calculateBoundingRect(rawRegions) - }); - } - var regionsMap = createHashMap(); - var finalRegions = []; - each$2(parsed.regions, function(region) { - var regionName = region.name; - if (nameMap && hasOwn(nameMap, regionName)) { - region = region.cloneShallow(regionName = nameMap[regionName]); - } - finalRegions.push(region); - regionsMap.set(regionName, region); - }); - return { - regions: finalRegions, - boundingRect: parsed.boundingRect || new BoundingRect(0, 0, 0, 0), - regionsMap - }; - }; - GeoJSONResource2.prototype._parseToRegions = function(nameProperty) { - var mapName = this._mapName; - var geoJSON = this._geoJSON; - var rawRegions; - try { - rawRegions = geoJSON ? parseGeoJSON(geoJSON, nameProperty) : []; - } catch (e) { - throw new Error("Invalid geoJson format\n" + e.message); - } - fixNanhai(mapName, rawRegions); - each$2(rawRegions, function(region) { - var regionName = region.name; - fixTextCoords(mapName, region); - fixDiaoyuIsland(mapName, region); - var specialArea = this._specialAreas && this._specialAreas[regionName]; - if (specialArea) { - region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height); - } - }, this); - return rawRegions; - }; - GeoJSONResource2.prototype.getMapForUser = function() { - return { - // For backward compatibility, use geoJson - // PENDING: it has been returning them without clone. - // do we need to avoid outsite modification? - geoJson: this._geoJSON, - geoJSON: this._geoJSON, - specialAreas: this._specialAreas - }; - }; - return GeoJSONResource2; - }() -); -function calculateBoundingRect(regions) { - var rect; - for (var i = 0; i < regions.length; i++) { - var regionRect = regions[i].getBoundingRect(); - rect = rect || regionRect.clone(); - rect.union(regionRect); - } - return rect; -} -function parseInput(source) { - return !isString(source) ? source : typeof JSON !== "undefined" && JSON.parse ? JSON.parse(source) : new Function("return (" + source + ");")(); -} -var storage = createHashMap(); -const geoSourceManager = { - /** - * Compatible with previous `echarts.registerMap`. - * - * @usage - * ```js - * - * echarts.registerMap('USA', geoJson, specialAreas); - * - * echarts.registerMap('USA', { - * geoJson: geoJson, - * specialAreas: {...} - * }); - * echarts.registerMap('USA', { - * geoJSON: geoJson, - * specialAreas: {...} - * }); - * - * echarts.registerMap('airport', { - * svg: svg - * } - * ``` - * - * Note: - * Do not support that register multiple geoJSON or SVG - * one map name. Because different geoJSON and SVG have - * different unit. It's not easy to make sure how those - * units are mapping/normalize. - * If intending to use multiple geoJSON or SVG, we can - * use multiple geo coordinate system. - */ - registerMap: function(mapName, rawDef, rawSpecialAreas) { - if (rawDef.svg) { - var resource = new GeoSVGResource(mapName, rawDef.svg); - storage.set(mapName, resource); - } else { - var geoJSON = rawDef.geoJson || rawDef.geoJSON; - if (geoJSON && !rawDef.features) { - rawSpecialAreas = rawDef.specialAreas; - } else { - geoJSON = rawDef; - } - var resource = new GeoJSONResource(mapName, geoJSON, rawSpecialAreas); - storage.set(mapName, resource); - } - }, - getGeoResource: function(mapName) { - return storage.get(mapName); - }, - /** - * Only for exporting to users. - * **MUST NOT** used internally. - */ - getMapForUser: function(mapName) { - var resource = storage.get(mapName); - return resource && resource.type === "geoJSON" && resource.getMapForUser(); - }, - load: function(mapName, nameMap, nameProperty) { - var resource = storage.get(mapName); - if (!resource) { - return; - } - return resource.load(nameMap, nameProperty); - } -}; -var OPTION_STYLE_ENABLED_TAGS = ["rect", "circle", "line", "ellipse", "polygon", "polyline", "path"]; -var OPTION_STYLE_ENABLED_TAG_MAP = createHashMap(OPTION_STYLE_ENABLED_TAGS); -var STATE_TRIGGER_TAG_MAP = createHashMap(OPTION_STYLE_ENABLED_TAGS.concat(["g"])); -var LABEL_HOST_MAP = createHashMap(OPTION_STYLE_ENABLED_TAGS.concat(["g"])); -var mapLabelRaw = makeInner(); -function getFixedItemStyle(model) { - var itemStyle = model.getItemStyle(); - var areaColor = model.get("areaColor"); - if (areaColor != null) { - itemStyle.fill = areaColor; - } - return itemStyle; -} -function fixLineStyle(styleHost) { - var style = styleHost.style; - if (style) { - style.stroke = style.stroke || style.fill; - style.fill = null; - } -} -var MapDraw = ( - /** @class */ - function() { - function MapDraw2(api) { - var group = new Group(); - this.uid = getUID("ec_map_draw"); - this._controller = new RoamController$1(api.getZr()); - this._controllerHost = { - target: group - }; - this.group = group; - group.add(this._regionsGroup = new Group()); - group.add(this._svgGroup = new Group()); - } - MapDraw2.prototype.draw = function(mapOrGeoModel, ecModel, api, fromView, payload) { - var isGeo = mapOrGeoModel.mainType === "geo"; - var data = mapOrGeoModel.getData && mapOrGeoModel.getData(); - isGeo && ecModel.eachComponent({ - mainType: "series", - subType: "map" - }, function(mapSeries) { - if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) { - data = mapSeries.getData(); - } - }); - var geo = mapOrGeoModel.coordinateSystem; - var regionsGroup = this._regionsGroup; - var group = this.group; - var transformInfo = geo.getTransformInfo(); - var transformInfoRaw = transformInfo.raw; - var transformInfoRoam = transformInfo.roam; - var isFirstDraw = !regionsGroup.childAt(0) || payload; - if (isFirstDraw) { - group.x = transformInfoRoam.x; - group.y = transformInfoRoam.y; - group.scaleX = transformInfoRoam.scaleX; - group.scaleY = transformInfoRoam.scaleY; - group.dirty(); - } else { - updateProps(group, transformInfoRoam, mapOrGeoModel); - } - var isVisualEncodedByVisualMap = data && data.getVisual("visualMeta") && data.getVisual("visualMeta").length > 0; - var viewBuildCtx = { - api, - geo, - mapOrGeoModel, - data, - isVisualEncodedByVisualMap, - isGeo, - transformInfoRaw - }; - if (geo.resourceType === "geoJSON") { - this._buildGeoJSON(viewBuildCtx); - } else if (geo.resourceType === "geoSVG") { - this._buildSVG(viewBuildCtx); - } - this._updateController(mapOrGeoModel, ecModel, api); - this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView); - }; - MapDraw2.prototype._buildGeoJSON = function(viewBuildCtx) { - var regionsGroupByName = this._regionsGroupByName = createHashMap(); - var regionsInfoByName = createHashMap(); - var regionsGroup = this._regionsGroup; - var transformInfoRaw = viewBuildCtx.transformInfoRaw; - var mapOrGeoModel = viewBuildCtx.mapOrGeoModel; - var data = viewBuildCtx.data; - var projection = viewBuildCtx.geo.projection; - var projectionStream = projection && projection.stream; - function transformPoint(point, project) { - if (project) { - point = project(point); - } - return point && [point[0] * transformInfoRaw.scaleX + transformInfoRaw.x, point[1] * transformInfoRaw.scaleY + transformInfoRaw.y]; - } - function transformPolygonPoints(inPoints) { - var outPoints = []; - var project = !projectionStream && projection && projection.project; - for (var i = 0; i < inPoints.length; ++i) { - var newPt = transformPoint(inPoints[i], project); - newPt && outPoints.push(newPt); - } - return outPoints; - } - function getPolyShape(points2) { - return { - shape: { - points: transformPolygonPoints(points2) - } - }; - } - regionsGroup.removeAll(); - each$2(viewBuildCtx.geo.regions, function(region) { - var regionName = region.name; - var regionGroup = regionsGroupByName.get(regionName); - var _a = regionsInfoByName.get(regionName) || {}, dataIdx = _a.dataIdx, regionModel = _a.regionModel; - if (!regionGroup) { - regionGroup = regionsGroupByName.set(regionName, new Group()); - regionsGroup.add(regionGroup); - dataIdx = data ? data.indexOfName(regionName) : null; - regionModel = viewBuildCtx.isGeo ? mapOrGeoModel.getRegionModel(regionName) : data ? data.getItemModel(dataIdx) : null; - regionsInfoByName.set(regionName, { - dataIdx, - regionModel - }); - } - var polygonSubpaths = []; - var polylineSubpaths = []; - each$2(region.geometries, function(geometry) { - if (geometry.type === "polygon") { - var polys = [geometry.exterior].concat(geometry.interiors || []); - if (projectionStream) { - polys = projectPolys(polys, projectionStream); - } - each$2(polys, function(poly) { - polygonSubpaths.push(new Polygon(getPolyShape(poly))); - }); - } else { - var points2 = geometry.points; - if (projectionStream) { - points2 = projectPolys(points2, projectionStream, true); - } - each$2(points2, function(points3) { - polylineSubpaths.push(new Polyline(getPolyShape(points3))); - }); - } - }); - var centerPt = transformPoint(region.getCenter(), projection && projection.project); - function createCompoundPath(subpaths, isLine) { - if (!subpaths.length) { - return; - } - var compoundPath = new CompoundPath({ - culling: true, - segmentIgnoreThreshold: 1, - shape: { - paths: subpaths - } - }); - regionGroup.add(compoundPath); - applyOptionStyleForRegion(viewBuildCtx, compoundPath, dataIdx, regionModel); - resetLabelForRegion(viewBuildCtx, compoundPath, regionName, regionModel, mapOrGeoModel, dataIdx, centerPt); - if (isLine) { - fixLineStyle(compoundPath); - each$2(compoundPath.states, fixLineStyle); - } - } - createCompoundPath(polygonSubpaths); - createCompoundPath(polylineSubpaths, true); - }); - regionsGroupByName.each(function(regionGroup, regionName) { - var _a = regionsInfoByName.get(regionName), dataIdx = _a.dataIdx, regionModel = _a.regionModel; - resetEventTriggerForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel, dataIdx); - resetTooltipForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel); - resetStateTriggerForRegion(viewBuildCtx, regionGroup, regionName, regionModel, mapOrGeoModel); - }, this); - }; - MapDraw2.prototype._buildSVG = function(viewBuildCtx) { - var mapName = viewBuildCtx.geo.map; - var transformInfoRaw = viewBuildCtx.transformInfoRaw; - this._svgGroup.x = transformInfoRaw.x; - this._svgGroup.y = transformInfoRaw.y; - this._svgGroup.scaleX = transformInfoRaw.scaleX; - this._svgGroup.scaleY = transformInfoRaw.scaleY; - if (this._svgResourceChanged(mapName)) { - this._freeSVG(); - this._useSVG(mapName); - } - var svgDispatcherMap = this._svgDispatcherMap = createHashMap(); - var focusSelf = false; - each$2(this._svgGraphicRecord.named, function(namedItem) { - var regionName = namedItem.name; - var mapOrGeoModel = viewBuildCtx.mapOrGeoModel; - var data = viewBuildCtx.data; - var svgNodeTagLower = namedItem.svgNodeTagLower; - var el = namedItem.el; - var dataIdx = data ? data.indexOfName(regionName) : null; - var regionModel = mapOrGeoModel.getRegionModel(regionName); - if (OPTION_STYLE_ENABLED_TAG_MAP.get(svgNodeTagLower) != null && el instanceof Displayable) { - applyOptionStyleForRegion(viewBuildCtx, el, dataIdx, regionModel); - } - if (el instanceof Displayable) { - el.culling = true; - } - el.z2EmphasisLift = 0; - if (!namedItem.namedFrom) { - if (LABEL_HOST_MAP.get(svgNodeTagLower) != null) { - resetLabelForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, dataIdx, null); - } - resetEventTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, dataIdx); - resetTooltipForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel); - if (STATE_TRIGGER_TAG_MAP.get(svgNodeTagLower) != null) { - var focus_1 = resetStateTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel); - if (focus_1 === "self") { - focusSelf = true; - } - var els = svgDispatcherMap.get(regionName) || svgDispatcherMap.set(regionName, []); - els.push(el); - } - } - }, this); - this._enableBlurEntireSVG(focusSelf, viewBuildCtx); - }; - MapDraw2.prototype._enableBlurEntireSVG = function(focusSelf, viewBuildCtx) { - if (focusSelf && viewBuildCtx.isGeo) { - var blurStyle = viewBuildCtx.mapOrGeoModel.getModel(["blur", "itemStyle"]).getItemStyle(); - var opacity_1 = blurStyle.opacity; - this._svgGraphicRecord.root.traverse(function(el) { - if (!el.isGroup) { - setDefaultStateProxy(el); - var style = el.ensureState("blur").style || {}; - if (style.opacity == null && opacity_1 != null) { - style.opacity = opacity_1; - } - el.ensureState("emphasis"); - } - }); - } - }; - MapDraw2.prototype.remove = function() { - this._regionsGroup.removeAll(); - this._regionsGroupByName = null; - this._svgGroup.removeAll(); - this._freeSVG(); - this._controller.dispose(); - this._controllerHost = null; - }; - MapDraw2.prototype.findHighDownDispatchers = function(name, geoModel) { - if (name == null) { - return []; - } - var geo = geoModel.coordinateSystem; - if (geo.resourceType === "geoJSON") { - var regionsGroupByName = this._regionsGroupByName; - if (regionsGroupByName) { - var regionGroup = regionsGroupByName.get(name); - return regionGroup ? [regionGroup] : []; - } - } else if (geo.resourceType === "geoSVG") { - return this._svgDispatcherMap && this._svgDispatcherMap.get(name) || []; - } - }; - MapDraw2.prototype._svgResourceChanged = function(mapName) { - return this._svgMapName !== mapName; - }; - MapDraw2.prototype._useSVG = function(mapName) { - var resource = geoSourceManager.getGeoResource(mapName); - if (resource && resource.type === "geoSVG") { - var svgGraphic = resource.useGraphic(this.uid); - this._svgGroup.add(svgGraphic.root); - this._svgGraphicRecord = svgGraphic; - this._svgMapName = mapName; - } - }; - MapDraw2.prototype._freeSVG = function() { - var mapName = this._svgMapName; - if (mapName == null) { - return; - } - var resource = geoSourceManager.getGeoResource(mapName); - if (resource && resource.type === "geoSVG") { - resource.freeGraphic(this.uid); - } - this._svgGraphicRecord = null; - this._svgDispatcherMap = null; - this._svgGroup.removeAll(); - this._svgMapName = null; - }; - MapDraw2.prototype._updateController = function(mapOrGeoModel, ecModel, api) { - var geo = mapOrGeoModel.coordinateSystem; - var controller = this._controller; - var controllerHost = this._controllerHost; - controllerHost.zoomLimit = mapOrGeoModel.get("scaleLimit"); - controllerHost.zoom = geo.getZoom(); - controller.enable(mapOrGeoModel.get("roam") || false); - var mainType = mapOrGeoModel.mainType; - function makeActionBase() { - var action = { - type: "geoRoam", - componentType: mainType - }; - action[mainType + "Id"] = mapOrGeoModel.id; - return action; - } - controller.off("pan").on("pan", function(e) { - this._mouseDownFlag = false; - updateViewOnPan(controllerHost, e.dx, e.dy); - api.dispatchAction(extend(makeActionBase(), { - dx: e.dx, - dy: e.dy, - animation: { - duration: 0 - } - })); - }, this); - controller.off("zoom").on("zoom", function(e) { - this._mouseDownFlag = false; - updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY); - api.dispatchAction(extend(makeActionBase(), { - zoom: e.scale, - originX: e.originX, - originY: e.originY, - animation: { - duration: 0 - } - })); - }, this); - controller.setPointerChecker(function(e, x, y) { - return geo.containPoint([x, y]) && !onIrrelevantElement(e, api, mapOrGeoModel); - }); - }; - MapDraw2.prototype.resetForLabelLayout = function() { - this.group.traverse(function(el) { - var label = el.getTextContent(); - if (label) { - label.ignore = mapLabelRaw(label).ignore; - } - }); - }; - MapDraw2.prototype._updateMapSelectHandler = function(mapOrGeoModel, regionsGroup, api, fromView) { - var mapDraw = this; - regionsGroup.off("mousedown"); - regionsGroup.off("click"); - if (mapOrGeoModel.get("selectedMode")) { - regionsGroup.on("mousedown", function() { - mapDraw._mouseDownFlag = true; - }); - regionsGroup.on("click", function(e) { - if (!mapDraw._mouseDownFlag) { - return; - } - mapDraw._mouseDownFlag = false; - }); - } - }; - return MapDraw2; - }() -); -function applyOptionStyleForRegion(viewBuildCtx, el, dataIndex, regionModel) { - var normalStyleModel = regionModel.getModel("itemStyle"); - var emphasisStyleModel = regionModel.getModel(["emphasis", "itemStyle"]); - var blurStyleModel = regionModel.getModel(["blur", "itemStyle"]); - var selectStyleModel = regionModel.getModel(["select", "itemStyle"]); - var normalStyle = getFixedItemStyle(normalStyleModel); - var emphasisStyle = getFixedItemStyle(emphasisStyleModel); - var selectStyle = getFixedItemStyle(selectStyleModel); - var blurStyle = getFixedItemStyle(blurStyleModel); - var data = viewBuildCtx.data; - if (data) { - var style = data.getItemVisual(dataIndex, "style"); - var decal = data.getItemVisual(dataIndex, "decal"); - if (viewBuildCtx.isVisualEncodedByVisualMap && style.fill) { - normalStyle.fill = style.fill; - } - if (decal) { - normalStyle.decal = createOrUpdatePatternFromDecal(decal, viewBuildCtx.api); - } - } - el.setStyle(normalStyle); - el.style.strokeNoScale = true; - el.ensureState("emphasis").style = emphasisStyle; - el.ensureState("select").style = selectStyle; - el.ensureState("blur").style = blurStyle; - setDefaultStateProxy(el); -} -function resetLabelForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel, dataIdx, labelXY) { - var data = viewBuildCtx.data; - var isGeo = viewBuildCtx.isGeo; - var isDataNaN = data && isNaN(data.get(data.mapDimension("value"), dataIdx)); - var itemLayout = data && data.getItemLayout(dataIdx); - if (isGeo || isDataNaN || itemLayout && itemLayout.showLabel) { - var query = !isGeo ? dataIdx : regionName; - var labelFetcher = void 0; - if (!data || dataIdx >= 0) { - labelFetcher = mapOrGeoModel; - } - var specifiedTextOpt = labelXY ? { - normal: { - align: "center", - verticalAlign: "middle" - } - } : null; - setLabelStyle(el, getLabelStatesModels(regionModel), { - labelFetcher, - labelDataIndex: query, - defaultText: regionName - }, specifiedTextOpt); - var textEl = el.getTextContent(); - if (textEl) { - mapLabelRaw(textEl).ignore = textEl.ignore; - if (el.textConfig && labelXY) { - var rect = el.getBoundingRect().clone(); - el.textConfig.layoutRect = rect; - el.textConfig.position = [(labelXY[0] - rect.x) / rect.width * 100 + "%", (labelXY[1] - rect.y) / rect.height * 100 + "%"]; - } - } - el.disableLabelAnimation = true; - } else { - el.removeTextContent(); - el.removeTextConfig(); - el.disableLabelAnimation = null; - } -} -function resetEventTriggerForRegion(viewBuildCtx, eventTrigger, regionName, regionModel, mapOrGeoModel, dataIdx) { - if (viewBuildCtx.data) { - viewBuildCtx.data.setItemGraphicEl(dataIdx, eventTrigger); - } else { - getECData(eventTrigger).eventData = { - componentType: "geo", - componentIndex: mapOrGeoModel.componentIndex, - geoIndex: mapOrGeoModel.componentIndex, - name: regionName, - region: regionModel && regionModel.option || {} - }; - } -} -function resetTooltipForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel) { - if (!viewBuildCtx.data) { - setTooltipConfig({ - el, - componentModel: mapOrGeoModel, - itemName: regionName, - // @ts-ignore FIXME:TS fix the "compatible with each other"? - itemTooltipOption: regionModel.get("tooltip") - }); - } -} -function resetStateTriggerForRegion(viewBuildCtx, el, regionName, regionModel, mapOrGeoModel) { - el.highDownSilentOnTouch = !!mapOrGeoModel.get("selectedMode"); - var emphasisModel = regionModel.getModel("emphasis"); - var focus = emphasisModel.get("focus"); - toggleHoverEmphasis(el, focus, emphasisModel.get("blurScope"), emphasisModel.get("disabled")); - if (viewBuildCtx.isGeo) { - enableComponentHighDownFeatures(el, mapOrGeoModel, regionName); - } - return focus; -} -function projectPolys(rings, createStream, isLine) { - var polygons = []; - var curPoly; - function startPolygon() { - curPoly = []; - } - function endPolygon() { - if (curPoly.length) { - polygons.push(curPoly); - curPoly = []; - } - } - var stream = createStream({ - polygonStart: startPolygon, - polygonEnd: endPolygon, - lineStart: startPolygon, - lineEnd: endPolygon, - point: function(x, y) { - if (isFinite(x) && isFinite(y)) { - curPoly.push([x, y]); - } - }, - sphere: function() { - } - }); - !isLine && stream.polygonStart(); - each$2(rings, function(ring) { - stream.lineStart(); - for (var i = 0; i < ring.length; i++) { - stream.point(ring[i][0], ring[i][1]); - } - stream.lineEnd(); - }); - !isLine && stream.polygonEnd(); - return polygons; -} -const MapDraw$1 = MapDraw; -var v2ApplyTransform = applyTransform; -var View = ( - /** @class */ - function(_super) { - __extends(View2, _super); - function View2(name) { - var _this = _super.call(this) || this; - _this.type = "view"; - _this.dimensions = ["x", "y"]; - _this._roamTransformable = new Transformable(); - _this._rawTransformable = new Transformable(); - _this.name = name; - return _this; - } - View2.prototype.setBoundingRect = function(x, y, width, height) { - this._rect = new BoundingRect(x, y, width, height); - return this._rect; - }; - View2.prototype.getBoundingRect = function() { - return this._rect; - }; - View2.prototype.setViewRect = function(x, y, width, height) { - this._transformTo(x, y, width, height); - this._viewRect = new BoundingRect(x, y, width, height); - }; - View2.prototype._transformTo = function(x, y, width, height) { - var rect = this.getBoundingRect(); - var rawTransform = this._rawTransformable; - rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height)); - var rawParent = rawTransform.parent; - rawTransform.parent = null; - rawTransform.decomposeTransform(); - rawTransform.parent = rawParent; - this._updateTransform(); - }; - View2.prototype.setCenter = function(centerCoord, api) { - if (!centerCoord) { - return; - } - this._center = [parsePercent(centerCoord[0], api.getWidth()), parsePercent(centerCoord[1], api.getHeight())]; - this._updateCenterAndZoom(); - }; - View2.prototype.setZoom = function(zoom) { - zoom = zoom || 1; - var zoomLimit = this.zoomLimit; - if (zoomLimit) { - if (zoomLimit.max != null) { - zoom = Math.min(zoomLimit.max, zoom); - } - if (zoomLimit.min != null) { - zoom = Math.max(zoomLimit.min, zoom); - } - } - this._zoom = zoom; - this._updateCenterAndZoom(); - }; - View2.prototype.getDefaultCenter = function() { - var rawRect = this.getBoundingRect(); - var cx = rawRect.x + rawRect.width / 2; - var cy = rawRect.y + rawRect.height / 2; - return [cx, cy]; - }; - View2.prototype.getCenter = function() { - return this._center || this.getDefaultCenter(); - }; - View2.prototype.getZoom = function() { - return this._zoom || 1; - }; - View2.prototype.getRoamTransform = function() { - return this._roamTransformable.getLocalTransform(); - }; - View2.prototype._updateCenterAndZoom = function() { - var rawTransformMatrix = this._rawTransformable.getLocalTransform(); - var roamTransform = this._roamTransformable; - var defaultCenter = this.getDefaultCenter(); - var center = this.getCenter(); - var zoom = this.getZoom(); - center = applyTransform([], center, rawTransformMatrix); - defaultCenter = applyTransform([], defaultCenter, rawTransformMatrix); - roamTransform.originX = center[0]; - roamTransform.originY = center[1]; - roamTransform.x = defaultCenter[0] - center[0]; - roamTransform.y = defaultCenter[1] - center[1]; - roamTransform.scaleX = roamTransform.scaleY = zoom; - this._updateTransform(); - }; - View2.prototype._updateTransform = function() { - var roamTransformable = this._roamTransformable; - var rawTransformable = this._rawTransformable; - rawTransformable.parent = roamTransformable; - roamTransformable.updateTransform(); - rawTransformable.updateTransform(); - copy(this.transform || (this.transform = []), rawTransformable.transform || create()); - this._rawTransform = rawTransformable.getLocalTransform(); - this.invTransform = this.invTransform || []; - invert(this.invTransform, this.transform); - this.decomposeTransform(); - }; - View2.prototype.getTransformInfo = function() { - var rawTransformable = this._rawTransformable; - var roamTransformable = this._roamTransformable; - var dummyTransformable = new Transformable(); - dummyTransformable.transform = roamTransformable.transform; - dummyTransformable.decomposeTransform(); - return { - roam: { - x: dummyTransformable.x, - y: dummyTransformable.y, - scaleX: dummyTransformable.scaleX, - scaleY: dummyTransformable.scaleY - }, - raw: { - x: rawTransformable.x, - y: rawTransformable.y, - scaleX: rawTransformable.scaleX, - scaleY: rawTransformable.scaleY - } - }; - }; - View2.prototype.getViewRect = function() { - return this._viewRect; - }; - View2.prototype.getViewRectAfterRoam = function() { - var rect = this.getBoundingRect().clone(); - rect.applyTransform(this.transform); - return rect; - }; - View2.prototype.dataToPoint = function(data, noRoam, out) { - var transform = noRoam ? this._rawTransform : this.transform; - out = out || []; - return transform ? v2ApplyTransform(out, data, transform) : copy$1(out, data); - }; - View2.prototype.pointToData = function(point) { - var invTransform = this.invTransform; - return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]]; - }; - View2.prototype.convertToPixel = function(ecModel, finder, value) { - var coordSys = getCoordSys$1(finder); - return coordSys === this ? coordSys.dataToPoint(value) : null; - }; - View2.prototype.convertFromPixel = function(ecModel, finder, pixel) { - var coordSys = getCoordSys$1(finder); - return coordSys === this ? coordSys.pointToData(pixel) : null; - }; - View2.prototype.containPoint = function(point) { - return this.getViewRectAfterRoam().contain(point[0], point[1]); - }; - View2.dimensions = ["x", "y"]; - return View2; - }(Transformable) -); -function getCoordSys$1(finder) { - var seriesModel = finder.seriesModel; - return seriesModel ? seriesModel.coordinateSystem : null; -} -const View$1 = View; -var GEO_DEFAULT_PARAMS = { - "geoJSON": { - aspectScale: 0.75, - invertLongitute: true - }, - "geoSVG": { - aspectScale: 1, - invertLongitute: false - } -}; -var geo2DDimensions = ["lng", "lat"]; -var Geo = ( - /** @class */ - function(_super) { - __extends(Geo2, _super); - function Geo2(name, map2, opt) { - var _this = _super.call(this, name) || this; - _this.dimensions = geo2DDimensions; - _this.type = "geo"; - _this._nameCoordMap = createHashMap(); - _this.map = map2; - var projection = opt.projection; - var source = geoSourceManager.load(map2, opt.nameMap, opt.nameProperty); - var resource = geoSourceManager.getGeoResource(map2); - _this.resourceType = resource ? resource.type : null; - var regions = _this.regions = source.regions; - var defaultParams = GEO_DEFAULT_PARAMS[resource.type]; - _this._regionsMap = source.regionsMap; - _this.regions = source.regions; - _this.projection = projection; - var boundingRect; - if (projection) { - for (var i = 0; i < regions.length; i++) { - var regionRect = regions[i].getBoundingRect(projection); - boundingRect = boundingRect || regionRect.clone(); - boundingRect.union(regionRect); - } - } else { - boundingRect = source.boundingRect; - } - _this.setBoundingRect(boundingRect.x, boundingRect.y, boundingRect.width, boundingRect.height); - _this.aspectScale = projection ? 1 : retrieve2(opt.aspectScale, defaultParams.aspectScale); - _this._invertLongitute = projection ? false : defaultParams.invertLongitute; - return _this; - } - Geo2.prototype._transformTo = function(x, y, width, height) { - var rect = this.getBoundingRect(); - var invertLongitute = this._invertLongitute; - rect = rect.clone(); - if (invertLongitute) { - rect.y = -rect.y - rect.height; - } - var rawTransformable = this._rawTransformable; - rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height)); - var rawParent = rawTransformable.parent; - rawTransformable.parent = null; - rawTransformable.decomposeTransform(); - rawTransformable.parent = rawParent; - if (invertLongitute) { - rawTransformable.scaleY = -rawTransformable.scaleY; - } - this._updateTransform(); - }; - Geo2.prototype.getRegion = function(name) { - return this._regionsMap.get(name); - }; - Geo2.prototype.getRegionByCoord = function(coord) { - var regions = this.regions; - for (var i = 0; i < regions.length; i++) { - var region = regions[i]; - if (region.type === "geoJSON" && region.contain(coord)) { - return regions[i]; - } - } - }; - Geo2.prototype.addGeoCoord = function(name, geoCoord2) { - this._nameCoordMap.set(name, geoCoord2); - }; - Geo2.prototype.getGeoCoord = function(name) { - var region = this._regionsMap.get(name); - return this._nameCoordMap.get(name) || region && region.getCenter(); - }; - Geo2.prototype.dataToPoint = function(data, noRoam, out) { - if (isString(data)) { - data = this.getGeoCoord(data); - } - if (data) { - var projection = this.projection; - if (projection) { - data = projection.project(data); - } - return data && this.projectedToPoint(data, noRoam, out); - } - }; - Geo2.prototype.pointToData = function(point) { - var projection = this.projection; - if (projection) { - point = projection.unproject(point); - } - return point && this.pointToProjected(point); - }; - Geo2.prototype.pointToProjected = function(point) { - return _super.prototype.pointToData.call(this, point); - }; - Geo2.prototype.projectedToPoint = function(projected, noRoam, out) { - return _super.prototype.dataToPoint.call(this, projected, noRoam, out); - }; - Geo2.prototype.convertToPixel = function(ecModel, finder, value) { - var coordSys = getCoordSys(finder); - return coordSys === this ? coordSys.dataToPoint(value) : null; - }; - Geo2.prototype.convertFromPixel = function(ecModel, finder, pixel) { - var coordSys = getCoordSys(finder); - return coordSys === this ? coordSys.pointToData(pixel) : null; - }; - return Geo2; - }(View$1) -); -mixin(Geo, View$1); -function getCoordSys(finder) { - var geoModel = finder.geoModel; - var seriesModel = finder.seriesModel; - return geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem || (seriesModel.getReferringComponents("geo", SINGLE_REFERRING).models[0] || {}).coordinateSystem : null; -} -const Geo$1 = Geo; -function resizeGeo(geoModel, api) { - var boundingCoords = geoModel.get("boundingCoords"); - if (boundingCoords != null) { - var leftTop_1 = boundingCoords[0]; - var rightBottom_1 = boundingCoords[1]; - if (!(isFinite(leftTop_1[0]) && isFinite(leftTop_1[1]) && isFinite(rightBottom_1[0]) && isFinite(rightBottom_1[1]))) - ; - else { - var projection_1 = this.projection; - if (projection_1) { - var xMin = leftTop_1[0]; - var yMin = leftTop_1[1]; - var xMax = rightBottom_1[0]; - var yMax = rightBottom_1[1]; - leftTop_1 = [Infinity, Infinity]; - rightBottom_1 = [-Infinity, -Infinity]; - var sampleLine = function(x0, y0, x1, y1) { - var dx = x1 - x0; - var dy = y1 - y0; - for (var i = 0; i <= 100; i++) { - var p = i / 100; - var pt = projection_1.project([x0 + dx * p, y0 + dy * p]); - min(leftTop_1, leftTop_1, pt); - max(rightBottom_1, rightBottom_1, pt); - } - }; - sampleLine(xMin, yMin, xMax, yMin); - sampleLine(xMax, yMin, xMax, yMax); - sampleLine(xMax, yMax, xMin, yMax); - sampleLine(xMin, yMax, xMax, yMin); - } - this.setBoundingRect(leftTop_1[0], leftTop_1[1], rightBottom_1[0] - leftTop_1[0], rightBottom_1[1] - leftTop_1[1]); - } - } - var rect = this.getBoundingRect(); - var centerOption = geoModel.get("layoutCenter"); - var sizeOption = geoModel.get("layoutSize"); - var viewWidth = api.getWidth(); - var viewHeight = api.getHeight(); - var aspect = rect.width / rect.height * this.aspectScale; - var useCenterAndSize = false; - var center; - var size; - if (centerOption && sizeOption) { - center = [parsePercent(centerOption[0], viewWidth), parsePercent(centerOption[1], viewHeight)]; - size = parsePercent(sizeOption, Math.min(viewWidth, viewHeight)); - if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) { - useCenterAndSize = true; - } - } - var viewRect; - if (useCenterAndSize) { - viewRect = {}; - if (aspect > 1) { - viewRect.width = size; - viewRect.height = size / aspect; - } else { - viewRect.height = size; - viewRect.width = size * aspect; - } - viewRect.y = center[1] - viewRect.height / 2; - viewRect.x = center[0] - viewRect.width / 2; - } else { - var boxLayoutOption = geoModel.getBoxLayoutParams(); - boxLayoutOption.aspect = aspect; - viewRect = getLayoutRect(boxLayoutOption, { - width: viewWidth, - height: viewHeight - }); - } - this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height); - this.setCenter(geoModel.get("center"), api); - this.setZoom(geoModel.get("zoom")); -} -function setGeoCoords(geo, model) { - each$2(model.get("geoCoord"), function(geoCoord2, name) { - geo.addGeoCoord(name, geoCoord2); - }); -} -var GeoCreator = ( - /** @class */ - function() { - function GeoCreator2() { - this.dimensions = geo2DDimensions; - } - GeoCreator2.prototype.create = function(ecModel, api) { - var geoList = []; - function getCommonGeoProperties(model) { - return { - nameProperty: model.get("nameProperty"), - aspectScale: model.get("aspectScale"), - projection: model.get("projection") - }; - } - ecModel.eachComponent("geo", function(geoModel, idx) { - var mapName = geoModel.get("map"); - var geo = new Geo$1(mapName + idx, mapName, extend({ - nameMap: geoModel.get("nameMap") - }, getCommonGeoProperties(geoModel))); - geo.zoomLimit = geoModel.get("scaleLimit"); - geoList.push(geo); - geoModel.coordinateSystem = geo; - geo.model = geoModel; - geo.resize = resizeGeo; - geo.resize(geoModel, api); - }); - ecModel.eachSeries(function(seriesModel) { - var coordSys = seriesModel.get("coordinateSystem"); - if (coordSys === "geo") { - var geoIndex = seriesModel.get("geoIndex") || 0; - seriesModel.coordinateSystem = geoList[geoIndex]; - } - }); - var mapModelGroupBySeries = {}; - ecModel.eachSeriesByType("map", function(seriesModel) { - if (!seriesModel.getHostGeoModel()) { - var mapType = seriesModel.getMapType(); - mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || []; - mapModelGroupBySeries[mapType].push(seriesModel); - } - }); - each$2(mapModelGroupBySeries, function(mapSeries, mapType) { - var nameMapList = map(mapSeries, function(singleMapSeries) { - return singleMapSeries.get("nameMap"); - }); - var geo = new Geo$1(mapType, mapType, extend({ - nameMap: mergeAll(nameMapList) - }, getCommonGeoProperties(mapSeries[0]))); - geo.zoomLimit = retrieve.apply(null, map(mapSeries, function(singleMapSeries) { - return singleMapSeries.get("scaleLimit"); - })); - geoList.push(geo); - geo.resize = resizeGeo; - geo.resize(mapSeries[0], api); - each$2(mapSeries, function(singleMapSeries) { - singleMapSeries.coordinateSystem = geo; - setGeoCoords(geo, singleMapSeries); - }); - }); - return geoList; - }; - GeoCreator2.prototype.getFilledRegions = function(originRegionArr, mapName, nameMap, nameProperty) { - var regionsArr = (originRegionArr || []).slice(); - var dataNameMap = createHashMap(); - for (var i = 0; i < regionsArr.length; i++) { - dataNameMap.set(regionsArr[i].name, regionsArr[i]); - } - var source = geoSourceManager.load(mapName, nameMap, nameProperty); - each$2(source.regions, function(region) { - var name = region.name; - !dataNameMap.get(name) && regionsArr.push({ - name - }); - }); - return regionsArr; - }; - return GeoCreator2; - }() -); -var geoCreator = new GeoCreator(); -const geoCreator$1 = geoCreator; -var GeoModel = ( - /** @class */ - function(_super) { - __extends(GeoModel2, _super); - function GeoModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = GeoModel2.type; - return _this; - } - GeoModel2.prototype.init = function(option, parentModel, ecModel) { - var source = geoSourceManager.getGeoResource(option.map); - if (source && source.type === "geoJSON") { - var itemStyle = option.itemStyle = option.itemStyle || {}; - if (!("color" in itemStyle)) { - itemStyle.color = "#eee"; - } - } - this.mergeDefaultAndTheme(option, ecModel); - defaultEmphasis(option, "label", ["show"]); - }; - GeoModel2.prototype.optionUpdated = function() { - var _this = this; - var option = this.option; - option.regions = geoCreator$1.getFilledRegions(option.regions, option.map, option.nameMap, option.nameProperty); - var selectedMap = {}; - this._optionModelMap = reduce(option.regions || [], function(optionModelMap, regionOpt) { - var regionName = regionOpt.name; - if (regionName) { - optionModelMap.set(regionName, new Model(regionOpt, _this, _this.ecModel)); - if (regionOpt.selected) { - selectedMap[regionName] = true; - } - } - return optionModelMap; - }, createHashMap()); - if (!option.selectedMap) { - option.selectedMap = selectedMap; - } - }; - GeoModel2.prototype.getRegionModel = function(name) { - return this._optionModelMap.get(name) || new Model(null, this, this.ecModel); - }; - GeoModel2.prototype.getFormattedLabel = function(name, status) { - var regionModel = this.getRegionModel(name); - var formatter = status === "normal" ? regionModel.get(["label", "formatter"]) : regionModel.get(["emphasis", "label", "formatter"]); - var params = { - name - }; - if (isFunction(formatter)) { - params.status = status; - return formatter(params); - } else if (isString(formatter)) { - return formatter.replace("{a}", name != null ? name : ""); - } - }; - GeoModel2.prototype.setZoom = function(zoom) { - this.option.zoom = zoom; - }; - GeoModel2.prototype.setCenter = function(center) { - this.option.center = center; - }; - GeoModel2.prototype.select = function(name) { - var option = this.option; - var selectedMode = option.selectedMode; - if (!selectedMode) { - return; - } - if (selectedMode !== "multiple") { - option.selectedMap = null; - } - var selectedMap = option.selectedMap || (option.selectedMap = {}); - selectedMap[name] = true; - }; - GeoModel2.prototype.unSelect = function(name) { - var selectedMap = this.option.selectedMap; - if (selectedMap) { - selectedMap[name] = false; - } - }; - GeoModel2.prototype.toggleSelected = function(name) { - this[this.isSelected(name) ? "unSelect" : "select"](name); - }; - GeoModel2.prototype.isSelected = function(name) { - var selectedMap = this.option.selectedMap; - return !!(selectedMap && selectedMap[name]); - }; - GeoModel2.type = "geo"; - GeoModel2.layoutMode = "box"; - GeoModel2.defaultOption = { - // zlevel: 0, - z: 0, - show: true, - left: "center", - top: "center", - // Default value: - // for geoSVG source: 1, - // for geoJSON source: 0.75. - aspectScale: null, - // /// Layout with center and size - // If you want to put map in a fixed size box with right aspect ratio - // This two properties may be more convenient - // layoutCenter: [50%, 50%] - // layoutSize: 100 - silent: false, - // Map type - map: "", - // Define left-top, right-bottom coords to control view - // For example, [ [180, 90], [-180, -90] ] - boundingCoords: null, - // Default on center of map - center: null, - zoom: 1, - scaleLimit: null, - // selectedMode: false - label: { - show: false, - color: "#000" - }, - itemStyle: { - borderWidth: 0.5, - borderColor: "#444" - // Default color: - // + geoJSON: #eee - // + geoSVG: null (use SVG original `fill`) - // color: '#eee' - }, - emphasis: { - label: { - show: true, - color: "rgb(100,0,0)" - }, - itemStyle: { - color: "rgba(255,215,0,0.8)" - } - }, - select: { - label: { - show: true, - color: "rgb(100,0,0)" - }, - itemStyle: { - color: "rgba(255,215,0,0.8)" - } - }, - regions: [] - // tooltip: { - // show: false - // } - }; - return GeoModel2; - }(ComponentModel) -); -const GeoModel$1 = GeoModel; -function getCenterCoord(view, point) { - return view.pointToProjected ? view.pointToProjected(point) : view.pointToData(point); -} -function updateCenterAndZoom(view, payload, zoomLimit, api) { - var previousZoom = view.getZoom(); - var center = view.getCenter(); - var zoom = payload.zoom; - var point = view.projectedToPoint ? view.projectedToPoint(center) : view.dataToPoint(center); - if (payload.dx != null && payload.dy != null) { - point[0] -= payload.dx; - point[1] -= payload.dy; - view.setCenter(getCenterCoord(view, point), api); - } - if (zoom != null) { - if (zoomLimit) { - var zoomMin = zoomLimit.min || 0; - var zoomMax = zoomLimit.max || Infinity; - zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom; - } - view.scaleX *= zoom; - view.scaleY *= zoom; - var fixX = (payload.originX - view.x) * (zoom - 1); - var fixY = (payload.originY - view.y) * (zoom - 1); - view.x -= fixX; - view.y -= fixY; - view.updateTransform(); - view.setCenter(getCenterCoord(view, point), api); - view.setZoom(zoom * previousZoom); - } - return { - center: view.getCenter(), - zoom: view.getZoom() - }; -} -var GeoView = ( - /** @class */ - function(_super) { - __extends(GeoView2, _super); - function GeoView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = GeoView2.type; - _this.focusBlurEnabled = true; - return _this; - } - GeoView2.prototype.init = function(ecModel, api) { - this._api = api; - }; - GeoView2.prototype.render = function(geoModel, ecModel, api, payload) { - this._model = geoModel; - if (!geoModel.get("show")) { - this._mapDraw && this._mapDraw.remove(); - this._mapDraw = null; - return; - } - if (!this._mapDraw) { - this._mapDraw = new MapDraw$1(api); - } - var mapDraw = this._mapDraw; - mapDraw.draw(geoModel, ecModel, api, this, payload); - mapDraw.group.on("click", this._handleRegionClick, this); - mapDraw.group.silent = geoModel.get("silent"); - this.group.add(mapDraw.group); - this.updateSelectStatus(geoModel, ecModel, api); - }; - GeoView2.prototype._handleRegionClick = function(e) { - var eventData; - findEventDispatcher(e.target, function(current) { - return (eventData = getECData(current).eventData) != null; - }, true); - if (eventData) { - this._api.dispatchAction({ - type: "geoToggleSelect", - geoId: this._model.id, - name: eventData.name - }); - } - }; - GeoView2.prototype.updateSelectStatus = function(model, ecModel, api) { - var _this = this; - this._mapDraw.group.traverse(function(node) { - var eventData = getECData(node).eventData; - if (eventData) { - _this._model.isSelected(eventData.name) ? api.enterSelect(node) : api.leaveSelect(node); - return true; - } - }); - }; - GeoView2.prototype.findHighDownDispatchers = function(name) { - return this._mapDraw && this._mapDraw.findHighDownDispatchers(name, this._model); - }; - GeoView2.prototype.dispose = function() { - this._mapDraw && this._mapDraw.remove(); - }; - GeoView2.type = "geo"; - return GeoView2; - }(ComponentView) -); -const GeoView$1 = GeoView; -function registerMap(mapName, geoJson, specialAreas) { - geoSourceManager.registerMap(mapName, geoJson, specialAreas); -} -function install$1(registers) { - registers.registerCoordinateSystem("geo", geoCreator$1); - registers.registerComponentModel(GeoModel$1); - registers.registerComponentView(GeoView$1); - registers.registerImpl("registerMap", registerMap); - registers.registerImpl("getMap", function(mapName) { - return geoSourceManager.getMapForUser(mapName); - }); - function makeAction(method, actionInfo2) { - actionInfo2.update = "geo:updateSelectStatus"; - registers.registerAction(actionInfo2, function(payload, ecModel) { - var selected = {}; - var allSelected = []; - ecModel.eachComponent({ - mainType: "geo", - query: payload - }, function(geoModel) { - geoModel[method](payload.name); - var geo = geoModel.coordinateSystem; - each$2(geo.regions, function(region) { - selected[region.name] = geoModel.isSelected(region.name) || false; - }); - var names = []; - each$2(selected, function(v, name) { - selected[name] && names.push(name); - }); - allSelected.push({ - geoIndex: geoModel.componentIndex, - // Use singular, the same naming convention as the event `selectchanged`. - name: names - }); - }); - return { - selected, - allSelected, - name: payload.name - }; - }); - } - makeAction("toggleSelected", { - type: "geoToggleSelect", - event: "geoselectchanged" - }); - makeAction("select", { - type: "geoSelect", - event: "geoselected" - }); - makeAction("unSelect", { - type: "geoUnSelect", - event: "geounselected" - }); - registers.registerAction({ - type: "geoRoam", - event: "geoRoam", - update: "updateTransform" - }, function(payload, ecModel, api) { - var componentType = payload.componentType || "series"; - ecModel.eachComponent({ - mainType: componentType, - query: payload - }, function(componentModel) { - var geo = componentModel.coordinateSystem; - if (geo.type !== "geo") { - return; - } - var res = updateCenterAndZoom(geo, payload, componentModel.get("scaleLimit"), api); - componentModel.setCenter && componentModel.setCenter(res.center); - componentModel.setZoom && componentModel.setZoom(res.zoom); - if (componentType === "series") { - each$2(componentModel.seriesGroup, function(seriesModel) { - seriesModel.setCenter(res.center); - seriesModel.setZoom(res.zoom); - }); - } - }); - }); -} -var each$1 = each$2; -var isObject = isObject$1; -var CATEGORY_DEFAULT_VISUAL_INDEX = -1; -var VisualMapping = ( - /** @class */ - function() { - function VisualMapping2(option) { - var mappingMethod = option.mappingMethod; - var visualType = option.type; - var thisOption = this.option = clone(option); - this.type = visualType; - this.mappingMethod = mappingMethod; - this._normalizeData = normalizers[mappingMethod]; - var visualHandler = VisualMapping2.visualHandlers[visualType]; - this.applyVisual = visualHandler.applyVisual; - this.getColorMapper = visualHandler.getColorMapper; - this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod]; - if (mappingMethod === "piecewise") { - normalizeVisualRange(thisOption); - preprocessForPiecewise(thisOption); - } else if (mappingMethod === "category") { - thisOption.categories ? preprocessForSpecifiedCategory(thisOption) : normalizeVisualRange(thisOption, true); - } else { - assert(mappingMethod !== "linear" || thisOption.dataExtent); - normalizeVisualRange(thisOption); - } - } - VisualMapping2.prototype.mapValueToVisual = function(value) { - var normalized = this._normalizeData(value); - return this._normalizedToVisual(normalized, value); - }; - VisualMapping2.prototype.getNormalizer = function() { - return bind(this._normalizeData, this); - }; - VisualMapping2.listVisualTypes = function() { - return keys(VisualMapping2.visualHandlers); - }; - VisualMapping2.isValidType = function(visualType) { - return VisualMapping2.visualHandlers.hasOwnProperty(visualType); - }; - VisualMapping2.eachVisual = function(visual, callback, context) { - if (isObject$1(visual)) { - each$2(visual, callback, context); - } else { - callback.call(context, visual); - } - }; - VisualMapping2.mapVisual = function(visual, callback, context) { - var isPrimary; - var newVisual = isArray(visual) ? [] : isObject$1(visual) ? {} : (isPrimary = true, null); - VisualMapping2.eachVisual(visual, function(v, key) { - var newVal = callback.call(context, v, key); - isPrimary ? newVisual = newVal : newVisual[key] = newVal; - }); - return newVisual; - }; - VisualMapping2.retrieveVisuals = function(obj) { - var ret = {}; - var hasVisual; - obj && each$1(VisualMapping2.visualHandlers, function(h, visualType) { - if (obj.hasOwnProperty(visualType)) { - ret[visualType] = obj[visualType]; - hasVisual = true; - } - }); - return hasVisual ? ret : null; - }; - VisualMapping2.prepareVisualTypes = function(visualTypes) { - if (isArray(visualTypes)) { - visualTypes = visualTypes.slice(); - } else if (isObject(visualTypes)) { - var types_1 = []; - each$1(visualTypes, function(item, type) { - types_1.push(type); - }); - visualTypes = types_1; - } else { - return []; - } - visualTypes.sort(function(type1, type2) { - return type2 === "color" && type1 !== "color" && type1.indexOf("color") === 0 ? 1 : -1; - }); - return visualTypes; - }; - VisualMapping2.dependsOn = function(visualType1, visualType2) { - return visualType2 === "color" ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2; - }; - VisualMapping2.findPieceIndex = function(value, pieceList, findClosestWhenOutside) { - var possibleI; - var abs = Infinity; - for (var i = 0, len = pieceList.length; i < len; i++) { - var pieceValue = pieceList[i].value; - if (pieceValue != null) { - if (pieceValue === value || isString(pieceValue) && pieceValue === value + "") { - return i; - } - findClosestWhenOutside && updatePossible(pieceValue, i); - } - } - for (var i = 0, len = pieceList.length; i < len; i++) { - var piece = pieceList[i]; - var interval = piece.interval; - var close_1 = piece.close; - if (interval) { - if (interval[0] === -Infinity) { - if (littleThan(close_1[1], value, interval[1])) { - return i; - } - } else if (interval[1] === Infinity) { - if (littleThan(close_1[0], interval[0], value)) { - return i; - } - } else if (littleThan(close_1[0], interval[0], value) && littleThan(close_1[1], value, interval[1])) { - return i; - } - findClosestWhenOutside && updatePossible(interval[0], i); - findClosestWhenOutside && updatePossible(interval[1], i); - } - } - if (findClosestWhenOutside) { - return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI; - } - function updatePossible(val, index) { - var newAbs = Math.abs(val - value); - if (newAbs < abs) { - abs = newAbs; - possibleI = index; - } - } - }; - VisualMapping2.visualHandlers = { - color: { - applyVisual: makeApplyVisual("color"), - getColorMapper: function() { - var thisOption = this.option; - return bind(thisOption.mappingMethod === "category" ? function(value, isNormalized) { - !isNormalized && (value = this._normalizeData(value)); - return doMapCategory.call(this, value); - } : function(value, isNormalized, out) { - var returnRGBArray = !!out; - !isNormalized && (value = this._normalizeData(value)); - out = fastLerp(value, thisOption.parsedVisual, out); - return returnRGBArray ? out : stringify(out, "rgba"); - }, this); - }, - _normalizedToVisual: { - linear: function(normalized) { - return stringify(fastLerp(normalized, this.option.parsedVisual), "rgba"); - }, - category: doMapCategory, - piecewise: function(normalized, value) { - var result = getSpecifiedVisual.call(this, value); - if (result == null) { - result = stringify(fastLerp(normalized, this.option.parsedVisual), "rgba"); - } - return result; - }, - fixed: doMapFixed - } - }, - colorHue: makePartialColorVisualHandler(function(color$1, value) { - return modifyHSL(color$1, value); - }), - colorSaturation: makePartialColorVisualHandler(function(color$1, value) { - return modifyHSL(color$1, null, value); - }), - colorLightness: makePartialColorVisualHandler(function(color$1, value) { - return modifyHSL(color$1, null, null, value); - }), - colorAlpha: makePartialColorVisualHandler(function(color$1, value) { - return modifyAlpha(color$1, value); - }), - decal: { - applyVisual: makeApplyVisual("decal"), - _normalizedToVisual: { - linear: null, - category: doMapCategory, - piecewise: null, - fixed: null - } - }, - opacity: { - applyVisual: makeApplyVisual("opacity"), - _normalizedToVisual: createNormalizedToNumericVisual([0, 1]) - }, - liftZ: { - applyVisual: makeApplyVisual("liftZ"), - _normalizedToVisual: { - linear: doMapFixed, - category: doMapFixed, - piecewise: doMapFixed, - fixed: doMapFixed - } - }, - symbol: { - applyVisual: function(value, getter, setter) { - var symbolCfg = this.mapValueToVisual(value); - setter("symbol", symbolCfg); - }, - _normalizedToVisual: { - linear: doMapToArray, - category: doMapCategory, - piecewise: function(normalized, value) { - var result = getSpecifiedVisual.call(this, value); - if (result == null) { - result = doMapToArray.call(this, normalized); - } - return result; - }, - fixed: doMapFixed - } - }, - symbolSize: { - applyVisual: makeApplyVisual("symbolSize"), - _normalizedToVisual: createNormalizedToNumericVisual([0, 1]) - } - }; - return VisualMapping2; - }() -); -function preprocessForPiecewise(thisOption) { - var pieceList = thisOption.pieceList; - thisOption.hasSpecialVisual = false; - each$2(pieceList, function(piece, index) { - piece.originIndex = index; - if (piece.visual != null) { - thisOption.hasSpecialVisual = true; - } - }); -} -function preprocessForSpecifiedCategory(thisOption) { - var categories = thisOption.categories; - var categoryMap = thisOption.categoryMap = {}; - var visual = thisOption.visual; - each$1(categories, function(cate, index) { - categoryMap[cate] = index; - }); - if (!isArray(visual)) { - var visualArr_1 = []; - if (isObject$1(visual)) { - each$1(visual, function(v, cate) { - var index = categoryMap[cate]; - visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v; - }); - } else { - visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual; - } - visual = setVisualToOption(thisOption, visualArr_1); - } - for (var i = categories.length - 1; i >= 0; i--) { - if (visual[i] == null) { - delete categoryMap[categories[i]]; - categories.pop(); - } - } -} -function normalizeVisualRange(thisOption, isCategory) { - var visual = thisOption.visual; - var visualArr = []; - if (isObject$1(visual)) { - each$1(visual, function(v) { - visualArr.push(v); - }); - } else if (visual != null) { - visualArr.push(visual); - } - var doNotNeedPair = { - color: 1, - symbol: 1 - }; - if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) { - visualArr[1] = visualArr[0]; - } - setVisualToOption(thisOption, visualArr); -} -function makePartialColorVisualHandler(applyValue) { - return { - applyVisual: function(value, getter, setter) { - var colorChannel = this.mapValueToVisual(value); - setter("color", applyValue(getter("color"), colorChannel)); - }, - _normalizedToVisual: createNormalizedToNumericVisual([0, 1]) - }; -} -function doMapToArray(normalized) { - var visual = this.option.visual; - return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {}; -} -function makeApplyVisual(visualType) { - return function(value, getter, setter) { - setter(visualType, this.mapValueToVisual(value)); - }; -} -function doMapCategory(normalized) { - var visual = this.option.visual; - return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized]; -} -function doMapFixed() { - return this.option.visual[0]; -} -function createNormalizedToNumericVisual(sourceExtent) { - return { - linear: function(normalized) { - return linearMap(normalized, sourceExtent, this.option.visual, true); - }, - category: doMapCategory, - piecewise: function(normalized, value) { - var result = getSpecifiedVisual.call(this, value); - if (result == null) { - result = linearMap(normalized, sourceExtent, this.option.visual, true); - } - return result; - }, - fixed: doMapFixed - }; -} -function getSpecifiedVisual(value) { - var thisOption = this.option; - var pieceList = thisOption.pieceList; - if (thisOption.hasSpecialVisual) { - var pieceIndex = VisualMapping.findPieceIndex(value, pieceList); - var piece = pieceList[pieceIndex]; - if (piece && piece.visual) { - return piece.visual[this.type]; - } - } -} -function setVisualToOption(thisOption, visualArr) { - thisOption.visual = visualArr; - if (thisOption.type === "color") { - thisOption.parsedVisual = map(visualArr, function(item) { - var color$1 = parse(item); - if (!color$1 && false) { - warn("'" + item + "' is an illegal color, fallback to '#000000'", true); - } - return color$1 || [0, 0, 0, 1]; - }); - } - return visualArr; -} -var normalizers = { - linear: function(value) { - return linearMap(value, this.option.dataExtent, [0, 1], true); - }, - piecewise: function(value) { - var pieceList = this.option.pieceList; - var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true); - if (pieceIndex != null) { - return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true); - } - }, - category: function(value) { - var index = this.option.categories ? this.option.categoryMap[value] : value; - return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index; - }, - fixed: noop -}; -function littleThan(close, a, b) { - return close ? a <= b : a < b; -} -const VisualMapping$1 = VisualMapping; -var straightLineProto = Line$2.prototype; -var bezierCurveProto = BezierCurve.prototype; -var StraightLineShape = ( - /** @class */ - function() { - function StraightLineShape2() { - this.x1 = 0; - this.y1 = 0; - this.x2 = 0; - this.y2 = 0; - this.percent = 1; - } - return StraightLineShape2; - }() -); -(function(_super) { - __extends(CurveShape, _super); - function CurveShape() { - return _super !== null && _super.apply(this, arguments) || this; - } - return CurveShape; -})(StraightLineShape); -function isStraightLine(shape) { - return isNaN(+shape.cpx1) || isNaN(+shape.cpy1); -} -var ECLinePath = ( - /** @class */ - function(_super) { - __extends(ECLinePath2, _super); - function ECLinePath2(opts) { - var _this = _super.call(this, opts) || this; - _this.type = "ec-line"; - return _this; - } - ECLinePath2.prototype.getDefaultStyle = function() { - return { - stroke: "#000", - fill: null - }; - }; - ECLinePath2.prototype.getDefaultShape = function() { - return new StraightLineShape(); - }; - ECLinePath2.prototype.buildPath = function(ctx, shape) { - if (isStraightLine(shape)) { - straightLineProto.buildPath.call(this, ctx, shape); - } else { - bezierCurveProto.buildPath.call(this, ctx, shape); - } - }; - ECLinePath2.prototype.pointAt = function(t) { - if (isStraightLine(this.shape)) { - return straightLineProto.pointAt.call(this, t); - } else { - return bezierCurveProto.pointAt.call(this, t); - } - }; - ECLinePath2.prototype.tangentAt = function(t) { - var shape = this.shape; - var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t); - return normalize(p, p); - }; - return ECLinePath2; - }(Path) -); -const ECLinePath$1 = ECLinePath; -var SYMBOL_CATEGORIES = ["fromSymbol", "toSymbol"]; -function makeSymbolTypeKey(symbolCategory) { - return "_" + symbolCategory + "Type"; -} -function createSymbol(name, lineData, idx) { - var symbolType = lineData.getItemVisual(idx, name); - if (!symbolType || symbolType === "none") { - return; - } - var symbolSize = lineData.getItemVisual(idx, name + "Size"); - var symbolRotate = lineData.getItemVisual(idx, name + "Rotate"); - var symbolOffset = lineData.getItemVisual(idx, name + "Offset"); - var symbolKeepAspect = lineData.getItemVisual(idx, name + "KeepAspect"); - var symbolSizeArr = normalizeSymbolSize(symbolSize); - var symbolOffsetArr = normalizeSymbolOffset(symbolOffset || 0, symbolSizeArr); - var symbolPath = createSymbol$1(symbolType, -symbolSizeArr[0] / 2 + symbolOffsetArr[0], -symbolSizeArr[1] / 2 + symbolOffsetArr[1], symbolSizeArr[0], symbolSizeArr[1], null, symbolKeepAspect); - symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0; - symbolPath.name = name; - return symbolPath; -} -function createLine(points2) { - var line = new ECLinePath$1({ - name: "line", - subPixelOptimize: true - }); - setLinePoints(line.shape, points2); - return line; -} -function setLinePoints(targetShape, points2) { - targetShape.x1 = points2[0][0]; - targetShape.y1 = points2[0][1]; - targetShape.x2 = points2[1][0]; - targetShape.y2 = points2[1][1]; - targetShape.percent = 1; - var cp1 = points2[2]; - if (cp1) { - targetShape.cpx1 = cp1[0]; - targetShape.cpy1 = cp1[1]; - } else { - targetShape.cpx1 = NaN; - targetShape.cpy1 = NaN; - } -} -var Line = ( - /** @class */ - function(_super) { - __extends(Line2, _super); - function Line2(lineData, idx, seriesScope) { - var _this = _super.call(this) || this; - _this._createLine(lineData, idx, seriesScope); - return _this; - } - Line2.prototype._createLine = function(lineData, idx, seriesScope) { - var seriesModel = lineData.hostModel; - var linePoints = lineData.getItemLayout(idx); - var line = createLine(linePoints); - line.shape.percent = 0; - initProps(line, { - shape: { - percent: 1 - } - }, seriesModel, idx); - this.add(line); - each$2(SYMBOL_CATEGORIES, function(symbolCategory) { - var symbol = createSymbol(symbolCategory, lineData, idx); - this.add(symbol); - this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory); - }, this); - this._updateCommonStl(lineData, idx, seriesScope); - }; - Line2.prototype.updateData = function(lineData, idx, seriesScope) { - var seriesModel = lineData.hostModel; - var line = this.childOfName("line"); - var linePoints = lineData.getItemLayout(idx); - var target = { - shape: {} - }; - setLinePoints(target.shape, linePoints); - updateProps(line, target, seriesModel, idx); - each$2(SYMBOL_CATEGORIES, function(symbolCategory) { - var symbolType = lineData.getItemVisual(idx, symbolCategory); - var key = makeSymbolTypeKey(symbolCategory); - if (this[key] !== symbolType) { - this.remove(this.childOfName(symbolCategory)); - var symbol = createSymbol(symbolCategory, lineData, idx); - this.add(symbol); - } - this[key] = symbolType; - }, this); - this._updateCommonStl(lineData, idx, seriesScope); - }; - Line2.prototype.getLinePath = function() { - return this.childAt(0); - }; - Line2.prototype._updateCommonStl = function(lineData, idx, seriesScope) { - var seriesModel = lineData.hostModel; - var line = this.childOfName("line"); - var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle; - var blurLineStyle = seriesScope && seriesScope.blurLineStyle; - var selectLineStyle = seriesScope && seriesScope.selectLineStyle; - var labelStatesModels = seriesScope && seriesScope.labelStatesModels; - var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled; - var focus = seriesScope && seriesScope.focus; - var blurScope = seriesScope && seriesScope.blurScope; - if (!seriesScope || lineData.hasItemOption) { - var itemModel = lineData.getItemModel(idx); - var emphasisModel = itemModel.getModel("emphasis"); - emphasisLineStyle = emphasisModel.getModel("lineStyle").getLineStyle(); - blurLineStyle = itemModel.getModel(["blur", "lineStyle"]).getLineStyle(); - selectLineStyle = itemModel.getModel(["select", "lineStyle"]).getLineStyle(); - emphasisDisabled = emphasisModel.get("disabled"); - focus = emphasisModel.get("focus"); - blurScope = emphasisModel.get("blurScope"); - labelStatesModels = getLabelStatesModels(itemModel); - } - var lineStyle = lineData.getItemVisual(idx, "style"); - var visualColor = lineStyle.stroke; - line.useStyle(lineStyle); - line.style.fill = null; - line.style.strokeNoScale = true; - line.ensureState("emphasis").style = emphasisLineStyle; - line.ensureState("blur").style = blurLineStyle; - line.ensureState("select").style = selectLineStyle; - each$2(SYMBOL_CATEGORIES, function(symbolCategory) { - var symbol = this.childOfName(symbolCategory); - if (symbol) { - symbol.setColor(visualColor); - symbol.style.opacity = lineStyle.opacity; - for (var i = 0; i < SPECIAL_STATES.length; i++) { - var stateName = SPECIAL_STATES[i]; - var lineState = line.getState(stateName); - if (lineState) { - var lineStateStyle = lineState.style || {}; - var state = symbol.ensureState(stateName); - var stateStyle = state.style || (state.style = {}); - if (lineStateStyle.stroke != null) { - stateStyle[symbol.__isEmptyBrush ? "stroke" : "fill"] = lineStateStyle.stroke; - } - if (lineStateStyle.opacity != null) { - stateStyle.opacity = lineStateStyle.opacity; - } - } - } - symbol.markRedraw(); - } - }, this); - var rawVal = seriesModel.getRawValue(idx); - setLabelStyle(this, labelStatesModels, { - labelDataIndex: idx, - labelFetcher: { - getFormattedLabel: function(dataIndex, stateName) { - return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType); - } - }, - inheritColor: visualColor || "#000", - defaultOpacity: lineStyle.opacity, - defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round$1(rawVal) : rawVal) + "" - }); - var label = this.getTextContent(); - if (label) { - var labelNormalModel = labelStatesModels.normal; - label.__align = label.style.align; - label.__verticalAlign = label.style.verticalAlign; - label.__position = labelNormalModel.get("position") || "middle"; - var distance = labelNormalModel.get("distance"); - if (!isArray(distance)) { - distance = [distance, distance]; - } - label.__labelDistance = distance; - } - this.setTextConfig({ - position: null, - local: true, - inside: false - // Can't be inside for stroke element. - }); - toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled); - }; - Line2.prototype.highlight = function() { - enterEmphasis(this); - }; - Line2.prototype.downplay = function() { - leaveEmphasis(this); - }; - Line2.prototype.updateLayout = function(lineData, idx) { - this.setLinePoints(lineData.getItemLayout(idx)); - }; - Line2.prototype.setLinePoints = function(points2) { - var linePath = this.childOfName("line"); - setLinePoints(linePath.shape, points2); - linePath.dirty(); - }; - Line2.prototype.beforeUpdate = function() { - var lineGroup = this; - var symbolFrom = lineGroup.childOfName("fromSymbol"); - var symbolTo = lineGroup.childOfName("toSymbol"); - var label = lineGroup.getTextContent(); - if (!symbolFrom && !symbolTo && (!label || label.ignore)) { - return; - } - var invScale = 1; - var parentNode = this.parent; - while (parentNode) { - if (parentNode.scaleX) { - invScale /= parentNode.scaleX; - } - parentNode = parentNode.parent; - } - var line = lineGroup.childOfName("line"); - if (!this.__dirty && !line.__dirty) { - return; - } - var percent = line.shape.percent; - var fromPos = line.pointAt(0); - var toPos = line.pointAt(percent); - var d = sub([], toPos, fromPos); - normalize(d, d); - function setSymbolRotation(symbol, percent2) { - var specifiedRotation = symbol.__specifiedRotation; - if (specifiedRotation == null) { - var tangent2 = line.tangentAt(percent2); - symbol.attr("rotation", (percent2 === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent2[1], tangent2[0])); - } else { - symbol.attr("rotation", specifiedRotation); - } - } - if (symbolFrom) { - symbolFrom.setPosition(fromPos); - setSymbolRotation(symbolFrom, 0); - symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent; - symbolFrom.markRedraw(); - } - if (symbolTo) { - symbolTo.setPosition(toPos); - setSymbolRotation(symbolTo, 1); - symbolTo.scaleX = symbolTo.scaleY = invScale * percent; - symbolTo.markRedraw(); - } - if (label && !label.ignore) { - label.x = label.y = 0; - label.originX = label.originY = 0; - var textAlign = void 0; - var textVerticalAlign = void 0; - var distance = label.__labelDistance; - var distanceX = distance[0] * invScale; - var distanceY = distance[1] * invScale; - var halfPercent = percent / 2; - var tangent = line.tangentAt(halfPercent); - var n = [tangent[1], -tangent[0]]; - var cp = line.pointAt(halfPercent); - if (n[1] > 0) { - n[0] = -n[0]; - n[1] = -n[1]; - } - var dir = tangent[0] < 0 ? -1 : 1; - if (label.__position !== "start" && label.__position !== "end") { - var rotation = -Math.atan2(tangent[1], tangent[0]); - if (toPos[0] < fromPos[0]) { - rotation = Math.PI + rotation; - } - label.rotation = rotation; - } - var dy = void 0; - switch (label.__position) { - case "insideStartTop": - case "insideMiddleTop": - case "insideEndTop": - case "middle": - dy = -distanceY; - textVerticalAlign = "bottom"; - break; - case "insideStartBottom": - case "insideMiddleBottom": - case "insideEndBottom": - dy = distanceY; - textVerticalAlign = "top"; - break; - default: - dy = 0; - textVerticalAlign = "middle"; - } - switch (label.__position) { - case "end": - label.x = d[0] * distanceX + toPos[0]; - label.y = d[1] * distanceY + toPos[1]; - textAlign = d[0] > 0.8 ? "left" : d[0] < -0.8 ? "right" : "center"; - textVerticalAlign = d[1] > 0.8 ? "top" : d[1] < -0.8 ? "bottom" : "middle"; - break; - case "start": - label.x = -d[0] * distanceX + fromPos[0]; - label.y = -d[1] * distanceY + fromPos[1]; - textAlign = d[0] > 0.8 ? "right" : d[0] < -0.8 ? "left" : "center"; - textVerticalAlign = d[1] > 0.8 ? "bottom" : d[1] < -0.8 ? "top" : "middle"; - break; - case "insideStartTop": - case "insideStart": - case "insideStartBottom": - label.x = distanceX * dir + fromPos[0]; - label.y = fromPos[1] + dy; - textAlign = tangent[0] < 0 ? "right" : "left"; - label.originX = -distanceX * dir; - label.originY = -dy; - break; - case "insideMiddleTop": - case "insideMiddle": - case "insideMiddleBottom": - case "middle": - label.x = cp[0]; - label.y = cp[1] + dy; - textAlign = "center"; - label.originY = -dy; - break; - case "insideEndTop": - case "insideEnd": - case "insideEndBottom": - label.x = -distanceX * dir + toPos[0]; - label.y = toPos[1] + dy; - textAlign = tangent[0] >= 0 ? "right" : "left"; - label.originX = distanceX * dir; - label.originY = -dy; - break; - } - label.scaleX = label.scaleY = invScale; - label.setStyle({ - // Use the user specified text align and baseline first - verticalAlign: label.__verticalAlign || textVerticalAlign, - align: label.__align || textAlign - }); - } - }; - return Line2; - }(Group) -); -const Line$1 = Line; -var LineDraw = ( - /** @class */ - function() { - function LineDraw2(LineCtor) { - this.group = new Group(); - this._LineCtor = LineCtor || Line$1; - } - LineDraw2.prototype.updateData = function(lineData) { - var _this = this; - this._progressiveEls = null; - var lineDraw = this; - var group = lineDraw.group; - var oldLineData = lineDraw._lineData; - lineDraw._lineData = lineData; - if (!oldLineData) { - group.removeAll(); - } - var seriesScope = makeSeriesScope(lineData); - lineData.diff(oldLineData).add(function(idx) { - _this._doAdd(lineData, idx, seriesScope); - }).update(function(newIdx, oldIdx) { - _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope); - }).remove(function(idx) { - group.remove(oldLineData.getItemGraphicEl(idx)); - }).execute(); - }; - LineDraw2.prototype.updateLayout = function() { - var lineData = this._lineData; - if (!lineData) { - return; - } - lineData.eachItemGraphicEl(function(el, idx) { - el.updateLayout(lineData, idx); - }, this); - }; - LineDraw2.prototype.incrementalPrepareUpdate = function(lineData) { - this._seriesScope = makeSeriesScope(lineData); - this._lineData = null; - this.group.removeAll(); - }; - LineDraw2.prototype.incrementalUpdate = function(taskParams, lineData) { - this._progressiveEls = []; - function updateIncrementalAndHover(el2) { - if (!el2.isGroup && !isEffectObject(el2)) { - el2.incremental = true; - el2.ensureState("emphasis").hoverLayer = true; - } - } - for (var idx = taskParams.start; idx < taskParams.end; idx++) { - var itemLayout = lineData.getItemLayout(idx); - if (lineNeedsDraw(itemLayout)) { - var el = new this._LineCtor(lineData, idx, this._seriesScope); - el.traverse(updateIncrementalAndHover); - this.group.add(el); - lineData.setItemGraphicEl(idx, el); - this._progressiveEls.push(el); - } - } - }; - LineDraw2.prototype.remove = function() { - this.group.removeAll(); - }; - LineDraw2.prototype.eachRendered = function(cb) { - traverseElements(this._progressiveEls || this.group, cb); - }; - LineDraw2.prototype._doAdd = function(lineData, idx, seriesScope) { - var itemLayout = lineData.getItemLayout(idx); - if (!lineNeedsDraw(itemLayout)) { - return; - } - var el = new this._LineCtor(lineData, idx, seriesScope); - lineData.setItemGraphicEl(idx, el); - this.group.add(el); - }; - LineDraw2.prototype._doUpdate = function(oldLineData, newLineData, oldIdx, newIdx, seriesScope) { - var itemEl = oldLineData.getItemGraphicEl(oldIdx); - if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) { - this.group.remove(itemEl); - return; - } - if (!itemEl) { - itemEl = new this._LineCtor(newLineData, newIdx, seriesScope); - } else { - itemEl.updateData(newLineData, newIdx, seriesScope); - } - newLineData.setItemGraphicEl(newIdx, itemEl); - this.group.add(itemEl); - }; - return LineDraw2; - }() -); -function isEffectObject(el) { - return el.animators && el.animators.length > 0; -} -function makeSeriesScope(lineData) { - var hostModel = lineData.hostModel; - var emphasisModel = hostModel.getModel("emphasis"); - return { - lineStyle: hostModel.getModel("lineStyle").getLineStyle(), - emphasisLineStyle: emphasisModel.getModel(["lineStyle"]).getLineStyle(), - blurLineStyle: hostModel.getModel(["blur", "lineStyle"]).getLineStyle(), - selectLineStyle: hostModel.getModel(["select", "lineStyle"]).getLineStyle(), - emphasisDisabled: emphasisModel.get("disabled"), - blurScope: emphasisModel.get("blurScope"), - focus: emphasisModel.get("focus"), - labelStatesModels: getLabelStatesModels(hostModel) - }; -} -function isPointNaN(pt) { - return isNaN(pt[0]) || isNaN(pt[1]); -} -function lineNeedsDraw(pts) { - return pts && !isPointNaN(pts[0]) && !isPointNaN(pts[1]); -} -const LineDraw$1 = LineDraw; -function parallelPreprocessor(option) { - createParallelIfNeeded(option); - mergeAxisOptionFromParallel(option); -} -function createParallelIfNeeded(option) { - if (option.parallel) { - return; - } - var hasParallelSeries = false; - each$2(option.series, function(seriesOpt) { - if (seriesOpt && seriesOpt.type === "parallel") { - hasParallelSeries = true; - } - }); - if (hasParallelSeries) { - option.parallel = [{}]; - } -} -function mergeAxisOptionFromParallel(option) { - var axes = normalizeToArray(option.parallelAxis); - each$2(axes, function(axisOption) { - if (!isObject$1(axisOption)) { - return; - } - var parallelIndex = axisOption.parallelIndex || 0; - var parallelOption = normalizeToArray(option.parallel)[parallelIndex]; - if (parallelOption && parallelOption.parallelAxisDefault) { - merge(axisOption, parallelOption.parallelAxisDefault, false); - } - }); -} -var CLICK_THRESHOLD = 5; -var ParallelView = ( - /** @class */ - function(_super) { - __extends(ParallelView2, _super); - function ParallelView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ParallelView2.type; - return _this; - } - ParallelView2.prototype.render = function(parallelModel, ecModel, api) { - this._model = parallelModel; - this._api = api; - if (!this._handlers) { - this._handlers = {}; - each$2(handlers, function(handler, eventName) { - api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this)); - }, this); - } - createOrUpdate(this, "_throttledDispatchExpand", parallelModel.get("axisExpandRate"), "fixRate"); - }; - ParallelView2.prototype.dispose = function(ecModel, api) { - clear(this, "_throttledDispatchExpand"); - each$2(this._handlers, function(handler, eventName) { - api.getZr().off(eventName, handler); - }); - this._handlers = null; - }; - ParallelView2.prototype._throttledDispatchExpand = function(opt) { - this._dispatchExpand(opt); - }; - ParallelView2.prototype._dispatchExpand = function(opt) { - opt && this._api.dispatchAction(extend({ - type: "parallelAxisExpand" - }, opt)); - }; - ParallelView2.type = "parallel"; - return ParallelView2; - }(ComponentView) -); -var handlers = { - mousedown: function(e) { - if (checkTrigger(this, "click")) { - this._mouseDownPoint = [e.offsetX, e.offsetY]; - } - }, - mouseup: function(e) { - var mouseDownPoint = this._mouseDownPoint; - if (checkTrigger(this, "click") && mouseDownPoint) { - var point = [e.offsetX, e.offsetY]; - var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2); - if (dist > CLICK_THRESHOLD) { - return; - } - var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]); - result.behavior !== "none" && this._dispatchExpand({ - axisExpandWindow: result.axisExpandWindow - }); - } - this._mouseDownPoint = null; - }, - mousemove: function(e) { - if (this._mouseDownPoint || !checkTrigger(this, "mousemove")) { - return; - } - var model = this._model; - var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]); - var behavior = result.behavior; - behavior === "jump" && this._throttledDispatchExpand.debounceNextCall(model.get("axisExpandDebounce")); - this._throttledDispatchExpand(behavior === "none" ? null : { - axisExpandWindow: result.axisExpandWindow, - // Jumping uses animation, and sliding suppresses animation. - animation: behavior === "jump" ? null : { - duration: 0 - // Disable animation. - } - }); - } -}; -function checkTrigger(view, triggerOn) { - var model = view._model; - return model.get("axisExpandable") && model.get("axisExpandTriggerOn") === triggerOn; -} -const ParallelView$1 = ParallelView; -var ParallelModel = ( - /** @class */ - function(_super) { - __extends(ParallelModel2, _super); - function ParallelModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ParallelModel2.type; - return _this; - } - ParallelModel2.prototype.init = function() { - _super.prototype.init.apply(this, arguments); - this.mergeOption({}); - }; - ParallelModel2.prototype.mergeOption = function(newOption) { - var thisOption = this.option; - newOption && merge(thisOption, newOption, true); - this._initDimensions(); - }; - ParallelModel2.prototype.contains = function(model, ecModel) { - var parallelIndex = model.get("parallelIndex"); - return parallelIndex != null && ecModel.getComponent("parallel", parallelIndex) === this; - }; - ParallelModel2.prototype.setAxisExpand = function(opt) { - each$2(["axisExpandable", "axisExpandCenter", "axisExpandCount", "axisExpandWidth", "axisExpandWindow"], function(name) { - if (opt.hasOwnProperty(name)) { - this.option[name] = opt[name]; - } - }, this); - }; - ParallelModel2.prototype._initDimensions = function() { - var dimensions = this.dimensions = []; - var parallelAxisIndex = this.parallelAxisIndex = []; - var axisModels = filter(this.ecModel.queryComponents({ - mainType: "parallelAxis" - }), function(axisModel) { - return (axisModel.get("parallelIndex") || 0) === this.componentIndex; - }, this); - each$2(axisModels, function(axisModel) { - dimensions.push("dim" + axisModel.get("dim")); - parallelAxisIndex.push(axisModel.componentIndex); - }); - }; - ParallelModel2.type = "parallel"; - ParallelModel2.dependencies = ["parallelAxis"]; - ParallelModel2.layoutMode = "box"; - ParallelModel2.defaultOption = { - // zlevel: 0, - z: 0, - left: 80, - top: 60, - right: 80, - bottom: 60, - // width: {totalWidth} - left - right, - // height: {totalHeight} - top - bottom, - layout: "horizontal", - // FIXME - // naming? - axisExpandable: false, - axisExpandCenter: null, - axisExpandCount: 0, - axisExpandWidth: 50, - axisExpandRate: 17, - axisExpandDebounce: 50, - // [out, in, jumpTarget]. In percentage. If use [null, 0.05], null means full. - // Do not doc to user until necessary. - axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4], - axisExpandTriggerOn: "click", - parallelAxisDefault: null - }; - return ParallelModel2; - }(ComponentModel) -); -const ParallelModel$1 = ParallelModel; -var ParallelAxis = ( - /** @class */ - function(_super) { - __extends(ParallelAxis2, _super); - function ParallelAxis2(dim, scale2, coordExtent, axisType, axisIndex) { - var _this = _super.call(this, dim, scale2, coordExtent) || this; - _this.type = axisType || "value"; - _this.axisIndex = axisIndex; - return _this; - } - ParallelAxis2.prototype.isHorizontal = function() { - return this.coordinateSystem.getModel().get("layout") !== "horizontal"; - }; - return ParallelAxis2; - }(Axis) -); -const ParallelAxis$1 = ParallelAxis; -function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) { - delta = delta || 0; - var extentSpan = extent[1] - extent[0]; - if (minSpan != null) { - minSpan = restrict$1(minSpan, [0, extentSpan]); - } - if (maxSpan != null) { - maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0); - } - if (handleIndex === "all") { - var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]); - handleSpan = restrict$1(handleSpan, [0, extentSpan]); - minSpan = maxSpan = restrict$1(handleSpan, [minSpan, maxSpan]); - handleIndex = 0; - } - handleEnds[0] = restrict$1(handleEnds[0], extent); - handleEnds[1] = restrict$1(handleEnds[1], extent); - var originalDistSign = getSpanSign(handleEnds, handleIndex); - handleEnds[handleIndex] += delta; - var extentMinSpan = minSpan || 0; - var realExtent = extent.slice(); - originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan; - handleEnds[handleIndex] = restrict$1(handleEnds[handleIndex], realExtent); - var currDistSign; - currDistSign = getSpanSign(handleEnds, handleIndex); - if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) { - handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan; - } - currDistSign = getSpanSign(handleEnds, handleIndex); - if (maxSpan != null && currDistSign.span > maxSpan) { - handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan; - } - return handleEnds; -} -function getSpanSign(handleEnds, handleIndex) { - var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex]; - return { - span: Math.abs(dist), - sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1 - }; -} -function restrict$1(value, extend2) { - return Math.min(extend2[1] != null ? extend2[1] : Infinity, Math.max(extend2[0] != null ? extend2[0] : -Infinity, value)); -} -var each = each$2; -var mathMin$1 = Math.min; -var mathMax$1 = Math.max; -var mathFloor = Math.floor; -var mathCeil = Math.ceil; -var round = round$1; -var PI = Math.PI; -var Parallel = ( - /** @class */ - function() { - function Parallel2(parallelModel, ecModel, api) { - this.type = "parallel"; - this._axesMap = createHashMap(); - this._axesLayout = {}; - this.dimensions = parallelModel.dimensions; - this._model = parallelModel; - this._init(parallelModel, ecModel, api); - } - Parallel2.prototype._init = function(parallelModel, ecModel, api) { - var dimensions = parallelModel.dimensions; - var parallelAxisIndex = parallelModel.parallelAxisIndex; - each(dimensions, function(dim, idx) { - var axisIndex = parallelAxisIndex[idx]; - var axisModel = ecModel.getComponent("parallelAxis", axisIndex); - var axis = this._axesMap.set(dim, new ParallelAxis$1(dim, createScaleByModel(axisModel), [0, 0], axisModel.get("type"), axisIndex)); - var isCategory = axis.type === "category"; - axis.onBand = isCategory && axisModel.get("boundaryGap"); - axis.inverse = axisModel.get("inverse"); - axisModel.axis = axis; - axis.model = axisModel; - axis.coordinateSystem = axisModel.coordinateSystem = this; - }, this); - }; - Parallel2.prototype.update = function(ecModel, api) { - this._updateAxesFromSeries(this._model, ecModel); - }; - Parallel2.prototype.containPoint = function(point) { - var layoutInfo = this._makeLayoutInfo(); - var axisBase = layoutInfo.axisBase; - var layoutBase = layoutInfo.layoutBase; - var pixelDimIndex = layoutInfo.pixelDimIndex; - var pAxis = point[1 - pixelDimIndex]; - var pLayout = point[pixelDimIndex]; - return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength; - }; - Parallel2.prototype.getModel = function() { - return this._model; - }; - Parallel2.prototype._updateAxesFromSeries = function(parallelModel, ecModel) { - ecModel.eachSeries(function(seriesModel) { - if (!parallelModel.contains(seriesModel, ecModel)) { - return; - } - var data = seriesModel.getData(); - each(this.dimensions, function(dim) { - var axis = this._axesMap.get(dim); - axis.scale.unionExtentFromData(data, data.mapDimension(dim)); - niceScaleExtent(axis.scale, axis.model); - }, this); - }, this); - }; - Parallel2.prototype.resize = function(parallelModel, api) { - this._rect = getLayoutRect(parallelModel.getBoxLayoutParams(), { - width: api.getWidth(), - height: api.getHeight() - }); - this._layoutAxes(); - }; - Parallel2.prototype.getRect = function() { - return this._rect; - }; - Parallel2.prototype._makeLayoutInfo = function() { - var parallelModel = this._model; - var rect = this._rect; - var xy = ["x", "y"]; - var wh = ["width", "height"]; - var layout2 = parallelModel.get("layout"); - var pixelDimIndex = layout2 === "horizontal" ? 0 : 1; - var layoutLength = rect[wh[pixelDimIndex]]; - var layoutExtent = [0, layoutLength]; - var axisCount = this.dimensions.length; - var axisExpandWidth = restrict(parallelModel.get("axisExpandWidth"), layoutExtent); - var axisExpandCount = restrict(parallelModel.get("axisExpandCount") || 0, [0, axisCount]); - var axisExpandable = parallelModel.get("axisExpandable") && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0; - var axisExpandWindow = parallelModel.get("axisExpandWindow"); - var winSize; - if (!axisExpandWindow) { - winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent); - var axisExpandCenter = parallelModel.get("axisExpandCenter") || mathFloor(axisCount / 2); - axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2]; - axisExpandWindow[1] = axisExpandWindow[0] + winSize; - } else { - winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent); - axisExpandWindow[1] = axisExpandWindow[0] + winSize; - } - var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount); - axisCollapseWidth < 3 && (axisCollapseWidth = 0); - var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1]; - var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0]; - return { - layout: layout2, - pixelDimIndex, - layoutBase: rect[xy[pixelDimIndex]], - layoutLength, - axisBase: rect[xy[1 - pixelDimIndex]], - axisLength: rect[wh[1 - pixelDimIndex]], - axisExpandable, - axisExpandWidth, - axisCollapseWidth, - axisExpandWindow, - axisCount, - winInnerIndices, - axisExpandWindow0Pos - }; - }; - Parallel2.prototype._layoutAxes = function() { - var rect = this._rect; - var axes = this._axesMap; - var dimensions = this.dimensions; - var layoutInfo = this._makeLayoutInfo(); - var layout2 = layoutInfo.layout; - axes.each(function(axis) { - var axisExtent = [0, layoutInfo.axisLength]; - var idx = axis.inverse ? 1 : 0; - axis.setExtent(axisExtent[idx], axisExtent[1 - idx]); - }); - each(dimensions, function(dim, idx) { - var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo); - var positionTable = { - horizontal: { - x: posInfo.position, - y: layoutInfo.axisLength - }, - vertical: { - x: 0, - y: posInfo.position - } - }; - var rotationTable = { - horizontal: PI / 2, - vertical: 0 - }; - var position = [positionTable[layout2].x + rect.x, positionTable[layout2].y + rect.y]; - var rotation = rotationTable[layout2]; - var transform = create(); - rotate(transform, transform, rotation); - translate(transform, transform, position); - this._axesLayout[dim] = { - position, - rotation, - transform, - axisNameAvailableWidth: posInfo.axisNameAvailableWidth, - axisLabelShow: posInfo.axisLabelShow, - nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth, - tickDirection: 1, - labelDirection: 1 - }; - }, this); - }; - Parallel2.prototype.getAxis = function(dim) { - return this._axesMap.get(dim); - }; - Parallel2.prototype.dataToPoint = function(value, dim) { - return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim); - }; - Parallel2.prototype.eachActiveState = function(data, callback, start, end) { - start == null && (start = 0); - end == null && (end = data.count()); - var axesMap = this._axesMap; - var dimensions = this.dimensions; - var dataDimensions = []; - var axisModels = []; - each$2(dimensions, function(axisDim) { - dataDimensions.push(data.mapDimension(axisDim)); - axisModels.push(axesMap.get(axisDim).model); - }); - var hasActiveSet = this.hasAxisBrushed(); - for (var dataIndex = start; dataIndex < end; dataIndex++) { - var activeState = void 0; - if (!hasActiveSet) { - activeState = "normal"; - } else { - activeState = "active"; - var values = data.getValues(dataDimensions, dataIndex); - for (var j = 0, lenj = dimensions.length; j < lenj; j++) { - var state = axisModels[j].getActiveState(values[j]); - if (state === "inactive") { - activeState = "inactive"; - break; - } - } - } - callback(activeState, dataIndex); - } - }; - Parallel2.prototype.hasAxisBrushed = function() { - var dimensions = this.dimensions; - var axesMap = this._axesMap; - var hasActiveSet = false; - for (var j = 0, lenj = dimensions.length; j < lenj; j++) { - if (axesMap.get(dimensions[j]).model.getActiveState() !== "normal") { - hasActiveSet = true; - } - } - return hasActiveSet; - }; - Parallel2.prototype.axisCoordToPoint = function(coord, dim) { - var axisLayout = this._axesLayout[dim]; - return applyTransform$1([coord, 0], axisLayout.transform); - }; - Parallel2.prototype.getAxisLayout = function(dim) { - return clone(this._axesLayout[dim]); - }; - Parallel2.prototype.getSlidedAxisExpandWindow = function(point) { - var layoutInfo = this._makeLayoutInfo(); - var pixelDimIndex = layoutInfo.pixelDimIndex; - var axisExpandWindow = layoutInfo.axisExpandWindow.slice(); - var winSize = axisExpandWindow[1] - axisExpandWindow[0]; - var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)]; - if (!this.containPoint(point)) { - return { - behavior: "none", - axisExpandWindow - }; - } - var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos; - var delta; - var behavior = "slide"; - var axisCollapseWidth = layoutInfo.axisCollapseWidth; - var triggerArea = this._model.get("axisExpandSlideTriggerArea"); - var useJump = triggerArea[0] != null; - if (axisCollapseWidth) { - if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) { - behavior = "jump"; - delta = pointCoord - winSize * triggerArea[2]; - } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) { - behavior = "jump"; - delta = pointCoord - winSize * (1 - triggerArea[2]); - } else { - (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0); - } - delta *= layoutInfo.axisExpandWidth / axisCollapseWidth; - delta ? sliderMove(delta, axisExpandWindow, extent, "all") : behavior = "none"; - } else { - var winSize2 = axisExpandWindow[1] - axisExpandWindow[0]; - var pos = extent[1] * pointCoord / winSize2; - axisExpandWindow = [mathMax$1(0, pos - winSize2 / 2)]; - axisExpandWindow[1] = mathMin$1(extent[1], axisExpandWindow[0] + winSize2); - axisExpandWindow[0] = axisExpandWindow[1] - winSize2; - } - return { - axisExpandWindow, - behavior - }; - }; - return Parallel2; - }() -); -function restrict(len, extent) { - return mathMin$1(mathMax$1(len, extent[0]), extent[1]); -} -function layoutAxisWithoutExpand(axisIndex, layoutInfo) { - var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1); - return { - position: step * axisIndex, - axisNameAvailableWidth: step, - axisLabelShow: true - }; -} -function layoutAxisWithExpand(axisIndex, layoutInfo) { - var layoutLength = layoutInfo.layoutLength; - var axisExpandWidth = layoutInfo.axisExpandWidth; - var axisCount = layoutInfo.axisCount; - var axisCollapseWidth = layoutInfo.axisCollapseWidth; - var winInnerIndices = layoutInfo.winInnerIndices; - var position; - var axisNameAvailableWidth = axisCollapseWidth; - var axisLabelShow = false; - var nameTruncateMaxWidth; - if (axisIndex < winInnerIndices[0]) { - position = axisIndex * axisCollapseWidth; - nameTruncateMaxWidth = axisCollapseWidth; - } else if (axisIndex <= winInnerIndices[1]) { - position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0]; - axisNameAvailableWidth = axisExpandWidth; - axisLabelShow = true; - } else { - position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth; - nameTruncateMaxWidth = axisCollapseWidth; - } - return { - position, - axisNameAvailableWidth, - axisLabelShow, - nameTruncateMaxWidth - }; -} -const Parallel$1 = Parallel; -function createParallelCoordSys(ecModel, api) { - var coordSysList = []; - ecModel.eachComponent("parallel", function(parallelModel, idx) { - var coordSys = new Parallel$1(parallelModel, ecModel, api); - coordSys.name = "parallel_" + idx; - coordSys.resize(parallelModel, api); - parallelModel.coordinateSystem = coordSys; - coordSys.model = parallelModel; - coordSysList.push(coordSys); - }); - ecModel.eachSeries(function(seriesModel) { - if (seriesModel.get("coordinateSystem") === "parallel") { - var parallelModel = seriesModel.getReferringComponents("parallel", SINGLE_REFERRING).models[0]; - seriesModel.coordinateSystem = parallelModel.coordinateSystem; - } - }); - return coordSysList; -} -var parallelCoordSysCreator = { - create: createParallelCoordSys -}; -const parallelCoordSysCreator$1 = parallelCoordSysCreator; -var ParallelAxisModel = ( - /** @class */ - function(_super) { - __extends(ParallelAxisModel2, _super); - function ParallelAxisModel2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ParallelAxisModel2.type; - _this.activeIntervals = []; - return _this; - } - ParallelAxisModel2.prototype.getAreaSelectStyle = function() { - return makeStyleMapper([ - ["fill", "color"], - ["lineWidth", "borderWidth"], - ["stroke", "borderColor"], - ["width", "width"], - ["opacity", "opacity"] - // Option decal is in `DecalObject` but style.decal is in `PatternObject`. - // So do not transfer decal directly. - ])(this.getModel("areaSelectStyle")); - }; - ParallelAxisModel2.prototype.setActiveIntervals = function(intervals) { - var activeIntervals = this.activeIntervals = clone(intervals); - if (activeIntervals) { - for (var i = activeIntervals.length - 1; i >= 0; i--) { - asc(activeIntervals[i]); - } - } - }; - ParallelAxisModel2.prototype.getActiveState = function(value) { - var activeIntervals = this.activeIntervals; - if (!activeIntervals.length) { - return "normal"; - } - if (value == null || isNaN(+value)) { - return "inactive"; - } - if (activeIntervals.length === 1) { - var interval = activeIntervals[0]; - if (interval[0] <= value && value <= interval[1]) { - return "active"; - } - } else { - for (var i = 0, len = activeIntervals.length; i < len; i++) { - if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) { - return "active"; - } - } - } - return "inactive"; - }; - return ParallelAxisModel2; - }(ComponentModel) -); -mixin(ParallelAxisModel, AxisModelCommonMixin); -const ParallelAxisModel$1 = ParallelAxisModel; -var BRUSH_PANEL_GLOBAL = true; -var mathMin = Math.min; -var mathMax = Math.max; -var mathPow = Math.pow; -var COVER_Z = 1e4; -var UNSELECT_THRESHOLD = 6; -var MIN_RESIZE_LINE_WIDTH = 6; -var MUTEX_RESOURCE_KEY = "globalPan"; -var DIRECTION_MAP = { - w: [0, 0], - e: [0, 1], - n: [1, 0], - s: [1, 1] -}; -var CURSOR_MAP = { - w: "ew", - e: "ew", - n: "ns", - s: "ns", - ne: "nesw", - sw: "nesw", - nw: "nwse", - se: "nwse" -}; -var DEFAULT_BRUSH_OPT = { - brushStyle: { - lineWidth: 2, - stroke: "rgba(210,219,238,0.3)", - fill: "#D2DBEE" - }, - transformable: true, - brushMode: "single", - removeOnClick: false -}; -var baseUID = 0; -var BrushController = ( - /** @class */ - function(_super) { - __extends(BrushController2, _super); - function BrushController2(zr) { - var _this = _super.call(this) || this; - _this._track = []; - _this._covers = []; - _this._handlers = {}; - _this._zr = zr; - _this.group = new Group(); - _this._uid = "brushController_" + baseUID++; - each$2(pointerHandlers, function(handler, eventName) { - this._handlers[eventName] = bind(handler, this); - }, _this); - return _this; - } - BrushController2.prototype.enableBrush = function(brushOption) { - this._brushType && this._doDisableBrush(); - brushOption.brushType && this._doEnableBrush(brushOption); - return this; - }; - BrushController2.prototype._doEnableBrush = function(brushOption) { - var zr = this._zr; - if (!this._enableGlobalPan) { - take(zr, MUTEX_RESOURCE_KEY, this._uid); - } - each$2(this._handlers, function(handler, eventName) { - zr.on(eventName, handler); - }); - this._brushType = brushOption.brushType; - this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true); - }; - BrushController2.prototype._doDisableBrush = function() { - var zr = this._zr; - release(zr, MUTEX_RESOURCE_KEY, this._uid); - each$2(this._handlers, function(handler, eventName) { - zr.off(eventName, handler); - }); - this._brushType = this._brushOption = null; - }; - BrushController2.prototype.setPanels = function(panelOpts) { - if (panelOpts && panelOpts.length) { - var panels_1 = this._panels = {}; - each$2(panelOpts, function(panelOpts2) { - panels_1[panelOpts2.panelId] = clone(panelOpts2); - }); - } else { - this._panels = null; - } - return this; - }; - BrushController2.prototype.mount = function(opt) { - opt = opt || {}; - this._enableGlobalPan = opt.enableGlobalPan; - var thisGroup = this.group; - this._zr.add(thisGroup); - thisGroup.attr({ - x: opt.x || 0, - y: opt.y || 0, - rotation: opt.rotation || 0, - scaleX: opt.scaleX || 1, - scaleY: opt.scaleY || 1 - }); - this._transform = thisGroup.getLocalTransform(); - return this; - }; - BrushController2.prototype.updateCovers = function(coverConfigList) { - coverConfigList = map(coverConfigList, function(coverConfig) { - return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true); - }); - var tmpIdPrefix = "\0-brush-index-"; - var oldCovers = this._covers; - var newCovers = this._covers = []; - var controller = this; - var creatingCover = this._creatingCover; - new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute(); - return this; - function getKey(brushOption, index) { - return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + "-" + brushOption.brushType; - } - function oldGetKey(cover, index) { - return getKey(cover.__brushOption, index); - } - function addOrUpdate(newIndex, oldIndex) { - var newBrushInternal = coverConfigList[newIndex]; - if (oldIndex != null && oldCovers[oldIndex] === creatingCover) { - newCovers[newIndex] = oldCovers[oldIndex]; - } else { - var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal)); - updateCoverAfterCreation(controller, cover); - } - } - function remove(oldIndex) { - if (oldCovers[oldIndex] !== creatingCover) { - controller.group.remove(oldCovers[oldIndex]); - } - } - }; - BrushController2.prototype.unmount = function() { - this.enableBrush(false); - clearCovers(this); - this._zr.remove(this.group); - return this; - }; - BrushController2.prototype.dispose = function() { - this.unmount(); - this.off(); - }; - return BrushController2; - }(Eventful) -); -function createCover(controller, brushOption) { - var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption); - cover.__brushOption = brushOption; - updateZ(cover, brushOption); - controller.group.add(cover); - return cover; -} -function endCreating(controller, creatingCover) { - var coverRenderer = getCoverRenderer(creatingCover); - if (coverRenderer.endCreating) { - coverRenderer.endCreating(controller, creatingCover); - updateZ(creatingCover, creatingCover.__brushOption); - } - return creatingCover; -} -function updateCoverShape(controller, cover) { - var brushOption = cover.__brushOption; - getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption); -} -function updateZ(cover, brushOption) { - var z = brushOption.z; - z == null && (z = COVER_Z); - cover.traverse(function(el) { - el.z = z; - el.z2 = z; - }); -} -function updateCoverAfterCreation(controller, cover) { - getCoverRenderer(cover).updateCommon(controller, cover); - updateCoverShape(controller, cover); -} -function getCoverRenderer(cover) { - return coverRenderers[cover.__brushOption.brushType]; -} -function getPanelByPoint(controller, e, localCursorPoint) { - var panels = controller._panels; - if (!panels) { - return BRUSH_PANEL_GLOBAL; - } - var panel; - var transform = controller._transform; - each$2(panels, function(pn) { - pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn); - }); - return panel; -} -function getPanelByCover(controller, cover) { - var panels = controller._panels; - if (!panels) { - return BRUSH_PANEL_GLOBAL; - } - var panelId = cover.__brushOption.panelId; - return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL; -} -function clearCovers(controller) { - var covers = controller._covers; - var originalLength = covers.length; - each$2(covers, function(cover) { - controller.group.remove(cover); - }, controller); - covers.length = 0; - return !!originalLength; -} -function trigger(controller, opt) { - var areas = map(controller._covers, function(cover) { - var brushOption = cover.__brushOption; - var range = clone(brushOption.range); - return { - brushType: brushOption.brushType, - panelId: brushOption.panelId, - range - }; - }); - controller.trigger("brush", { - areas, - isEnd: !!opt.isEnd, - removeOnClick: !!opt.removeOnClick - }); -} -function shouldShowCover(controller) { - var track = controller._track; - if (!track.length) { - return false; - } - var p2 = track[track.length - 1]; - var p1 = track[0]; - var dx = p2[0] - p1[0]; - var dy = p2[1] - p1[1]; - var dist = mathPow(dx * dx + dy * dy, 0.5); - return dist > UNSELECT_THRESHOLD; -} -function getTrackEnds(track) { - var tail = track.length - 1; - tail < 0 && (tail = 0); - return [track[0], track[tail]]; -} -function createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) { - var cover = new Group(); - cover.add(new Rect({ - name: "main", - style: makeStyle(brushOption), - silent: true, - draggable: true, - cursor: "move", - drift: curry(driftRect, rectRangeConverter, controller, cover, ["n", "s", "w", "e"]), - ondragend: curry(trigger, controller, { - isEnd: true - }) - })); - each$2(edgeNameSequences, function(nameSequence) { - cover.add(new Rect({ - name: nameSequence.join(""), - style: { - opacity: 0 - }, - draggable: true, - silent: true, - invisible: true, - drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence), - ondragend: curry(trigger, controller, { - isEnd: true - }) - })); - }); - return cover; -} -function updateBaseRect(controller, cover, localRange, brushOption) { - var lineWidth = brushOption.brushStyle.lineWidth || 0; - var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH); - var x = localRange[0][0]; - var y = localRange[1][0]; - var xa = x - lineWidth / 2; - var ya = y - lineWidth / 2; - var x2 = localRange[0][1]; - var y2 = localRange[1][1]; - var x2a = x2 - handleSize + lineWidth / 2; - var y2a = y2 - handleSize + lineWidth / 2; - var width = x2 - x; - var height = y2 - y; - var widtha = width + lineWidth; - var heighta = height + lineWidth; - updateRectShape(controller, cover, "main", x, y, width, height); - if (brushOption.transformable) { - updateRectShape(controller, cover, "w", xa, ya, handleSize, heighta); - updateRectShape(controller, cover, "e", x2a, ya, handleSize, heighta); - updateRectShape(controller, cover, "n", xa, ya, widtha, handleSize); - updateRectShape(controller, cover, "s", xa, y2a, widtha, handleSize); - updateRectShape(controller, cover, "nw", xa, ya, handleSize, handleSize); - updateRectShape(controller, cover, "ne", x2a, ya, handleSize, handleSize); - updateRectShape(controller, cover, "sw", xa, y2a, handleSize, handleSize); - updateRectShape(controller, cover, "se", x2a, y2a, handleSize, handleSize); - } -} -function updateCommon(controller, cover) { - var brushOption = cover.__brushOption; - var transformable = brushOption.transformable; - var mainEl = cover.childAt(0); - mainEl.useStyle(makeStyle(brushOption)); - mainEl.attr({ - silent: !transformable, - cursor: transformable ? "move" : "default" - }); - each$2([["w"], ["e"], ["n"], ["s"], ["s", "e"], ["s", "w"], ["n", "e"], ["n", "w"]], function(nameSequence) { - var el = cover.childOfName(nameSequence.join("")); - var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence); - el && el.attr({ - silent: !transformable, - invisible: !transformable, - cursor: transformable ? CURSOR_MAP[globalDir] + "-resize" : null - }); - }); -} -function updateRectShape(controller, cover, name, x, y, w, h) { - var el = cover.childOfName(name); - el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]]))); -} -function makeStyle(brushOption) { - return defaults({ - strokeNoScale: true - }, brushOption.brushStyle); -} -function formatRectRange(x, y, x2, y2) { - var min2 = [mathMin(x, x2), mathMin(y, y2)]; - var max2 = [mathMax(x, x2), mathMax(y, y2)]; - return [ - [min2[0], max2[0]], - [min2[1], max2[1]] - // y range - ]; -} -function getTransform(controller) { - return getTransform$1(controller.group); -} -function getGlobalDirection1(controller, localDirName) { - var map2 = { - w: "left", - e: "right", - n: "top", - s: "bottom" - }; - var inverseMap = { - left: "w", - right: "e", - top: "n", - bottom: "s" - }; - var dir = transformDirection(map2[localDirName], getTransform(controller)); - return inverseMap[dir]; -} -function getGlobalDirection2(controller, localDirNameSeq) { - var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])]; - (globalDir[0] === "e" || globalDir[0] === "w") && globalDir.reverse(); - return globalDir.join(""); -} -function driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) { - var brushOption = cover.__brushOption; - var rectRange = rectRangeConverter.toRectRange(brushOption.range); - var localDelta = toLocalDelta(controller, dx, dy); - each$2(dirNameSequence, function(dirName) { - var ind = DIRECTION_MAP[dirName]; - rectRange[ind[0]][ind[1]] += localDelta[ind[0]]; - }); - brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1])); - updateCoverAfterCreation(controller, cover); - trigger(controller, { - isEnd: false - }); -} -function driftPolygon(controller, cover, dx, dy) { - var range = cover.__brushOption.range; - var localDelta = toLocalDelta(controller, dx, dy); - each$2(range, function(point) { - point[0] += localDelta[0]; - point[1] += localDelta[1]; - }); - updateCoverAfterCreation(controller, cover); - trigger(controller, { - isEnd: false - }); -} -function toLocalDelta(controller, dx, dy) { - var thisGroup = controller.group; - var localD = thisGroup.transformCoordToLocal(dx, dy); - var localZero = thisGroup.transformCoordToLocal(0, 0); - return [localD[0] - localZero[0], localD[1] - localZero[1]]; -} -function clipByPanel(controller, cover, data) { - var panel = getPanelByCover(controller, cover); - return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data); -} -function pointsToRect(points2) { - var xmin = mathMin(points2[0][0], points2[1][0]); - var ymin = mathMin(points2[0][1], points2[1][1]); - var xmax = mathMax(points2[0][0], points2[1][0]); - var ymax = mathMax(points2[0][1], points2[1][1]); - return { - x: xmin, - y: ymin, - width: xmax - xmin, - height: ymax - ymin - }; -} -function resetCursor(controller, e, localCursorPoint) { - if ( - // Check active - !controller._brushType || isOutsideZrArea(controller, e.offsetX, e.offsetY) - ) { - return; - } - var zr = controller._zr; - var covers = controller._covers; - var currPanel = getPanelByPoint(controller, e, localCursorPoint); - if (!controller._dragging) { - for (var i = 0; i < covers.length; i++) { - var brushOption = covers[i].__brushOption; - if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) { - return; - } - } - } - currPanel && zr.setCursorStyle("crosshair"); -} -function preventDefault(e) { - var rawE = e.event; - rawE.preventDefault && rawE.preventDefault(); -} -function mainShapeContain(cover, x, y) { - return cover.childOfName("main").contain(x, y); -} -function updateCoverByMouse(controller, e, localCursorPoint, isEnd) { - var creatingCover = controller._creatingCover; - var panel = controller._creatingPanel; - var thisBrushOption = controller._brushOption; - var eventParams; - controller._track.push(localCursorPoint.slice()); - if (shouldShowCover(controller) || creatingCover) { - if (panel && !creatingCover) { - thisBrushOption.brushMode === "single" && clearCovers(controller); - var brushOption = clone(thisBrushOption); - brushOption.brushType = determineBrushType(brushOption.brushType, panel); - brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId; - creatingCover = controller._creatingCover = createCover(controller, brushOption); - controller._covers.push(creatingCover); - } - if (creatingCover) { - var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)]; - var coverBrushOption = creatingCover.__brushOption; - coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track)); - if (isEnd) { - endCreating(controller, creatingCover); - coverRenderer.updateCommon(controller, creatingCover); - } - updateCoverShape(controller, creatingCover); - eventParams = { - isEnd - }; - } - } else if (isEnd && thisBrushOption.brushMode === "single" && thisBrushOption.removeOnClick) { - if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) { - eventParams = { - isEnd, - removeOnClick: true - }; - } - } - return eventParams; -} -function determineBrushType(brushType, panel) { - if (brushType === "auto") { - return panel.defaultBrushType; - } - return brushType; -} -var pointerHandlers = { - mousedown: function(e) { - if (this._dragging) { - handleDragEnd(this, e); - } else if (!e.target || !e.target.draggable) { - preventDefault(e); - var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY); - this._creatingCover = null; - var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint); - if (panel) { - this._dragging = true; - this._track = [localCursorPoint.slice()]; - } - } - }, - mousemove: function(e) { - var x = e.offsetX; - var y = e.offsetY; - var localCursorPoint = this.group.transformCoordToLocal(x, y); - resetCursor(this, e, localCursorPoint); - if (this._dragging) { - preventDefault(e); - var eventParams = updateCoverByMouse(this, e, localCursorPoint, false); - eventParams && trigger(this, eventParams); - } - }, - mouseup: function(e) { - handleDragEnd(this, e); - } -}; -function handleDragEnd(controller, e) { - if (controller._dragging) { - preventDefault(e); - var x = e.offsetX; - var y = e.offsetY; - var localCursorPoint = controller.group.transformCoordToLocal(x, y); - var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true); - controller._dragging = false; - controller._track = []; - controller._creatingCover = null; - eventParams && trigger(controller, eventParams); - } -} -function isOutsideZrArea(controller, x, y) { - var zr = controller._zr; - return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight(); -} -var coverRenderers = { - lineX: getLineRenderer(0), - lineY: getLineRenderer(1), - rect: { - createCover: function(controller, brushOption) { - function returnInput(range) { - return range; - } - return createBaseRectCover({ - toRectRange: returnInput, - fromRectRange: returnInput - }, controller, brushOption, [["w"], ["e"], ["n"], ["s"], ["s", "e"], ["s", "w"], ["n", "e"], ["n", "w"]]); - }, - getCreatingRange: function(localTrack) { - var ends = getTrackEnds(localTrack); - return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]); - }, - updateCoverShape: function(controller, cover, localRange, brushOption) { - updateBaseRect(controller, cover, localRange, brushOption); - }, - updateCommon, - contain: mainShapeContain - }, - polygon: { - createCover: function(controller, brushOption) { - var cover = new Group(); - cover.add(new Polyline({ - name: "main", - style: makeStyle(brushOption), - silent: true - })); - return cover; - }, - getCreatingRange: function(localTrack) { - return localTrack; - }, - endCreating: function(controller, cover) { - cover.remove(cover.childAt(0)); - cover.add(new Polygon({ - name: "main", - draggable: true, - drift: curry(driftPolygon, controller, cover), - ondragend: curry(trigger, controller, { - isEnd: true - }) - })); - }, - updateCoverShape: function(controller, cover, localRange, brushOption) { - cover.childAt(0).setShape({ - points: clipByPanel(controller, cover, localRange) - }); - }, - updateCommon, - contain: mainShapeContain - } -}; -function getLineRenderer(xyIndex) { - return { - createCover: function(controller, brushOption) { - return createBaseRectCover({ - toRectRange: function(range) { - var rectRange = [range, [0, 100]]; - xyIndex && rectRange.reverse(); - return rectRange; - }, - fromRectRange: function(rectRange) { - return rectRange[xyIndex]; - } - }, controller, brushOption, [[["w"], ["e"]], [["n"], ["s"]]][xyIndex]); - }, - getCreatingRange: function(localTrack) { - var ends = getTrackEnds(localTrack); - var min2 = mathMin(ends[0][xyIndex], ends[1][xyIndex]); - var max2 = mathMax(ends[0][xyIndex], ends[1][xyIndex]); - return [min2, max2]; - }, - updateCoverShape: function(controller, cover, localRange, brushOption) { - var otherExtent; - var panel = getPanelByCover(controller, cover); - if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) { - otherExtent = panel.getLinearBrushOtherExtent(xyIndex); - } else { - var zr = controller._zr; - otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]]; - } - var rectRange = [localRange, otherExtent]; - xyIndex && rectRange.reverse(); - updateBaseRect(controller, cover, rectRange, brushOption); - }, - updateCommon, - contain: mainShapeContain - }; -} -const BrushController$1 = BrushController; -function makeRectPanelClipPath(rect) { - rect = normalizeRect(rect); - return function(localPoints) { - return clipPointsByRect(localPoints, rect); - }; -} -function makeLinearBrushOtherExtent(rect, specifiedXYIndex) { - rect = normalizeRect(rect); - return function(xyIndex) { - var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex; - var brushWidth = idx ? rect.width : rect.height; - var base = idx ? rect.x : rect.y; - return [base, base + (brushWidth || 0)]; - }; -} -function makeRectIsTargetByCursor(rect, api, targetModel) { - var boundingRect = normalizeRect(rect); - return function(e, localCursorPoint) { - return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel); - }; -} -function normalizeRect(rect) { - return BoundingRect.create(rect); -} -var elementList = ["axisLine", "axisTickLabel", "axisName"]; -var ParallelAxisView = ( - /** @class */ - function(_super) { - __extends(ParallelAxisView2, _super); - function ParallelAxisView2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = ParallelAxisView2.type; - return _this; - } - ParallelAxisView2.prototype.init = function(ecModel, api) { - _super.prototype.init.apply(this, arguments); - (this._brushController = new BrushController$1(api.getZr())).on("brush", bind(this._onBrush, this)); - }; - ParallelAxisView2.prototype.render = function(axisModel, ecModel, api, payload) { - if (fromAxisAreaSelect(axisModel, ecModel, payload)) { - return; - } - this.axisModel = axisModel; - this.api = api; - this.group.removeAll(); - var oldAxisGroup = this._axisGroup; - this._axisGroup = new Group(); - this.group.add(this._axisGroup); - if (!axisModel.get("show")) { - return; - } - var coordSysModel = getCoordSysModel(axisModel, ecModel); - var coordSys = coordSysModel.coordinateSystem; - var areaSelectStyle = axisModel.getAreaSelectStyle(); - var areaWidth = areaSelectStyle.width; - var dim = axisModel.axis.dim; - var axisLayout = coordSys.getAxisLayout(dim); - var builderOpt = extend({ - strokeContainThreshold: areaWidth - }, axisLayout); - var axisBuilder = new AxisBuilder$1(axisModel, builderOpt); - each$2(elementList, axisBuilder.add, axisBuilder); - this._axisGroup.add(axisBuilder.getGroup()); - this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api); - groupTransition(oldAxisGroup, this._axisGroup, axisModel); - }; - ParallelAxisView2.prototype._refreshBrushController = function(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) { - var extent = axisModel.axis.getExtent(); - var extentLen = extent[1] - extent[0]; - var extra = Math.min(30, Math.abs(extentLen) * 0.1); - var rect = BoundingRect.create({ - x: extent[0], - y: -areaWidth / 2, - width: extentLen, - height: areaWidth - }); - rect.x -= extra; - rect.width += 2 * extra; - this._brushController.mount({ - enableGlobalPan: true, - rotation: builderOpt.rotation, - x: builderOpt.position[0], - y: builderOpt.position[1] - }).setPanels([{ - panelId: "pl", - clipPath: makeRectPanelClipPath(rect), - isTargetByCursor: makeRectIsTargetByCursor(rect, api, coordSysModel), - getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect, 0) - }]).enableBrush({ - brushType: "lineX", - brushStyle: areaSelectStyle, - removeOnClick: true - }).updateCovers(getCoverInfoList(axisModel)); - }; - ParallelAxisView2.prototype._onBrush = function(eventParam) { - var coverInfoList = eventParam.areas; - var axisModel = this.axisModel; - var axis = axisModel.axis; - var intervals = map(coverInfoList, function(coverInfo) { - return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)]; - }); - if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) { - this.api.dispatchAction({ - type: "axisAreaSelect", - parallelAxisId: axisModel.id, - intervals - }); - } - }; - ParallelAxisView2.prototype.dispose = function() { - this._brushController.dispose(); - }; - ParallelAxisView2.type = "parallelAxis"; - return ParallelAxisView2; - }(ComponentView) -); -function fromAxisAreaSelect(axisModel, ecModel, payload) { - return payload && payload.type === "axisAreaSelect" && ecModel.findComponents({ - mainType: "parallelAxis", - query: payload - })[0] === axisModel; -} -function getCoverInfoList(axisModel) { - var axis = axisModel.axis; - return map(axisModel.activeIntervals, function(interval) { - return { - brushType: "lineX", - panelId: "pl", - range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)] - }; - }); -} -function getCoordSysModel(axisModel, ecModel) { - return ecModel.getComponent("parallel", axisModel.get("parallelIndex")); -} -const ParallelAxisView$1 = ParallelAxisView; -var actionInfo = { - type: "axisAreaSelect", - event: "axisAreaSelected" - // update: 'updateVisual' -}; -function installParallelActions(registers) { - registers.registerAction(actionInfo, function(payload, ecModel) { - ecModel.eachComponent({ - mainType: "parallelAxis", - query: payload - }, function(parallelAxisModel) { - parallelAxisModel.axis.model.setActiveIntervals(payload.intervals); - }); - }); - registers.registerAction("parallelAxisExpand", function(payload, ecModel) { - ecModel.eachComponent({ - mainType: "parallel", - query: payload - }, function(parallelModel) { - parallelModel.setAxisExpand(payload); - }); - }); -} -var defaultAxisOption = { - type: "value", - areaSelectStyle: { - width: 20, - borderWidth: 1, - borderColor: "rgba(160,197,232)", - color: "rgba(160,197,232)", - opacity: 0.3 - }, - realtime: true, - z: 10 -}; -function install(registers) { - registers.registerComponentView(ParallelView$1); - registers.registerComponentModel(ParallelModel$1); - registers.registerCoordinateSystem("parallel", parallelCoordSysCreator$1); - registers.registerPreprocessor(parallelPreprocessor); - registers.registerComponentModel(ParallelAxisModel$1); - registers.registerComponentView(ParallelAxisView$1); - axisModelCreator(registers, "parallel", ParallelAxisModel$1, defaultAxisOption); - installParallelActions(registers); -} -function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) { - return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== "tspan" && (elType === "text" || hasOwn(style, "text"))); -} -function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) { - var srcStyle = hostStyle; - var textConfig; - var textContent; - var textContentStyle; - if (elType === "text") { - textContentStyle = srcStyle; - } else { - textContentStyle = {}; - hasOwn(srcStyle, "text") && (textContentStyle.text = srcStyle.text); - hasOwn(srcStyle, "rich") && (textContentStyle.rich = srcStyle.rich); - hasOwn(srcStyle, "textFill") && (textContentStyle.fill = srcStyle.textFill); - hasOwn(srcStyle, "textStroke") && (textContentStyle.stroke = srcStyle.textStroke); - hasOwn(srcStyle, "fontFamily") && (textContentStyle.fontFamily = srcStyle.fontFamily); - hasOwn(srcStyle, "fontSize") && (textContentStyle.fontSize = srcStyle.fontSize); - hasOwn(srcStyle, "fontStyle") && (textContentStyle.fontStyle = srcStyle.fontStyle); - hasOwn(srcStyle, "fontWeight") && (textContentStyle.fontWeight = srcStyle.fontWeight); - textContent = { - type: "text", - style: textContentStyle, - // ec4 does not support rectText trigger. - // And when text position is different in normal and emphasis - // => hover text trigger emphasis; - // => text position changed, leave mouse pointer immediately; - // That might cause incorrect state. - silent: true - }; - textConfig = {}; - var hasOwnPos = hasOwn(srcStyle, "textPosition"); - if (isNormal) { - textConfig.position = hasOwnPos ? srcStyle.textPosition : "inside"; - } else { - hasOwnPos && (textConfig.position = srcStyle.textPosition); - } - hasOwn(srcStyle, "textPosition") && (textConfig.position = srcStyle.textPosition); - hasOwn(srcStyle, "textOffset") && (textConfig.offset = srcStyle.textOffset); - hasOwn(srcStyle, "textRotation") && (textConfig.rotation = srcStyle.textRotation); - hasOwn(srcStyle, "textDistance") && (textConfig.distance = srcStyle.textDistance); - } - convertEC4CompatibleRichItem(textContentStyle, hostStyle); - each$2(textContentStyle.rich, function(richItem) { - convertEC4CompatibleRichItem(richItem, richItem); - }); - return { - textConfig, - textContent - }; -} -function convertEC4CompatibleRichItem(out, richItem) { - if (!richItem) { - return; - } - richItem.font = richItem.textFont || richItem.font; - hasOwn(richItem, "textStrokeWidth") && (out.lineWidth = richItem.textStrokeWidth); - hasOwn(richItem, "textAlign") && (out.align = richItem.textAlign); - hasOwn(richItem, "textVerticalAlign") && (out.verticalAlign = richItem.textVerticalAlign); - hasOwn(richItem, "textLineHeight") && (out.lineHeight = richItem.textLineHeight); - hasOwn(richItem, "textWidth") && (out.width = richItem.textWidth); - hasOwn(richItem, "textHeight") && (out.height = richItem.textHeight); - hasOwn(richItem, "textBackgroundColor") && (out.backgroundColor = richItem.textBackgroundColor); - hasOwn(richItem, "textPadding") && (out.padding = richItem.textPadding); - hasOwn(richItem, "textBorderColor") && (out.borderColor = richItem.textBorderColor); - hasOwn(richItem, "textBorderWidth") && (out.borderWidth = richItem.textBorderWidth); - hasOwn(richItem, "textBorderRadius") && (out.borderRadius = richItem.textBorderRadius); - hasOwn(richItem, "textBoxShadowColor") && (out.shadowColor = richItem.textBoxShadowColor); - hasOwn(richItem, "textBoxShadowBlur") && (out.shadowBlur = richItem.textBoxShadowBlur); - hasOwn(richItem, "textBoxShadowOffsetX") && (out.shadowOffsetX = richItem.textBoxShadowOffsetX); - hasOwn(richItem, "textBoxShadowOffsetY") && (out.shadowOffsetY = richItem.textBoxShadowOffsetY); -} -function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) { - var out = itemStl; - out.textPosition = out.textPosition || txCfg.position || "inside"; - txCfg.offset != null && (out.textOffset = txCfg.offset); - txCfg.rotation != null && (out.textRotation = txCfg.rotation); - txCfg.distance != null && (out.textDistance = txCfg.distance); - var isInside = out.textPosition.indexOf("inside") >= 0; - var hostFill = itemStl.fill || "#000"; - convertToEC4RichItem(out, txStl); - var textFillNotSet = out.textFill == null; - if (isInside) { - if (textFillNotSet) { - out.textFill = txCfg.insideFill || "#fff"; - !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke); - !out.textStroke && (out.textStroke = hostFill); - out.textStrokeWidth == null && (out.textStrokeWidth = 2); - } - } else { - if (textFillNotSet) { - out.textFill = itemStl.fill || txCfg.outsideFill || "#000"; - } - !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke); - } - out.text = txStl.text; - out.rich = txStl.rich; - each$2(txStl.rich, function(richItem) { - convertToEC4RichItem(richItem, richItem); - }); - return out; -} -function convertToEC4RichItem(out, richItem) { - if (!richItem) { - return; - } - hasOwn(richItem, "fill") && (out.textFill = richItem.fill); - hasOwn(richItem, "stroke") && (out.textStroke = richItem.fill); - hasOwn(richItem, "lineWidth") && (out.textStrokeWidth = richItem.lineWidth); - hasOwn(richItem, "font") && (out.font = richItem.font); - hasOwn(richItem, "fontStyle") && (out.fontStyle = richItem.fontStyle); - hasOwn(richItem, "fontWeight") && (out.fontWeight = richItem.fontWeight); - hasOwn(richItem, "fontSize") && (out.fontSize = richItem.fontSize); - hasOwn(richItem, "fontFamily") && (out.fontFamily = richItem.fontFamily); - hasOwn(richItem, "align") && (out.textAlign = richItem.align); - hasOwn(richItem, "verticalAlign") && (out.textVerticalAlign = richItem.verticalAlign); - hasOwn(richItem, "lineHeight") && (out.textLineHeight = richItem.lineHeight); - hasOwn(richItem, "width") && (out.textWidth = richItem.width); - hasOwn(richItem, "height") && (out.textHeight = richItem.height); - hasOwn(richItem, "backgroundColor") && (out.textBackgroundColor = richItem.backgroundColor); - hasOwn(richItem, "padding") && (out.textPadding = richItem.padding); - hasOwn(richItem, "borderColor") && (out.textBorderColor = richItem.borderColor); - hasOwn(richItem, "borderWidth") && (out.textBorderWidth = richItem.borderWidth); - hasOwn(richItem, "borderRadius") && (out.textBorderRadius = richItem.borderRadius); - hasOwn(richItem, "shadowColor") && (out.textBoxShadowColor = richItem.shadowColor); - hasOwn(richItem, "shadowBlur") && (out.textBoxShadowBlur = richItem.shadowBlur); - hasOwn(richItem, "shadowOffsetX") && (out.textBoxShadowOffsetX = richItem.shadowOffsetX); - hasOwn(richItem, "shadowOffsetY") && (out.textBoxShadowOffsetY = richItem.shadowOffsetY); - hasOwn(richItem, "textShadowColor") && (out.textShadowColor = richItem.textShadowColor); - hasOwn(richItem, "textShadowBlur") && (out.textShadowBlur = richItem.textShadowBlur); - hasOwn(richItem, "textShadowOffsetX") && (out.textShadowOffsetX = richItem.textShadowOffsetX); - hasOwn(richItem, "textShadowOffsetY") && (out.textShadowOffsetY = richItem.textShadowOffsetY); -} -var LEGACY_TRANSFORM_PROPS_MAP = { - position: ["x", "y"], - scale: ["scaleX", "scaleY"], - origin: ["originX", "originY"] -}; -var LEGACY_TRANSFORM_PROPS = keys(LEGACY_TRANSFORM_PROPS_MAP); -reduce(TRANSFORMABLE_PROPS, function(obj, key) { - obj[key] = 1; - return obj; -}, {}); -TRANSFORMABLE_PROPS.join(", "); -var ELEMENT_ANIMATABLE_PROPS = ["", "style", "shape", "extra"]; -var transitionInnerStore = makeInner(); -function getElementAnimationConfig(animationType, el, elOption, parentModel, dataIndex) { - var animationProp = animationType + "Animation"; - var config = getAnimationConfig(animationType, parentModel, dataIndex) || {}; - var userDuring = transitionInnerStore(el).userDuring; - if (config.duration > 0) { - config.during = userDuring ? bind(duringCall, { - el, - userDuring - }) : null; - config.setToFinal = true; - config.scope = animationType; - } - extend(config, elOption[animationProp]); - return config; -} -function applyUpdateTransition(el, elOption, animatableModel, opts) { - opts = opts || {}; - var dataIndex = opts.dataIndex, isInit = opts.isInit, clearStyle = opts.clearStyle; - var hasAnimation = animatableModel.isAnimationEnabled(); - var store = transitionInnerStore(el); - var styleOpt = elOption.style; - store.userDuring = elOption.during; - var transFromProps = {}; - var propsToSet = {}; - prepareTransformAllPropsFinal(el, elOption, propsToSet); - prepareShapeOrExtraAllPropsFinal("shape", elOption, propsToSet); - prepareShapeOrExtraAllPropsFinal("extra", elOption, propsToSet); - if (!isInit && hasAnimation) { - prepareTransformTransitionFrom(el, elOption, transFromProps); - prepareShapeOrExtraTransitionFrom("shape", el, elOption, transFromProps); - prepareShapeOrExtraTransitionFrom("extra", el, elOption, transFromProps); - prepareStyleTransitionFrom(el, elOption, styleOpt, transFromProps); - } - propsToSet.style = styleOpt; - applyPropsDirectly(el, propsToSet, clearStyle); - applyMiscProps(el, elOption); - if (hasAnimation) { - if (isInit) { - var enterFromProps_1 = {}; - each$2(ELEMENT_ANIMATABLE_PROPS, function(propName) { - var prop = propName ? elOption[propName] : elOption; - if (prop && prop.enterFrom) { - if (propName) { - enterFromProps_1[propName] = enterFromProps_1[propName] || {}; - } - extend(propName ? enterFromProps_1[propName] : enterFromProps_1, prop.enterFrom); - } - }); - var config = getElementAnimationConfig("enter", el, elOption, animatableModel, dataIndex); - if (config.duration > 0) { - el.animateFrom(enterFromProps_1, config); - } - } else { - applyPropsTransition(el, elOption, dataIndex || 0, animatableModel, transFromProps); - } - } - updateLeaveTo(el, elOption); - styleOpt ? el.dirty() : el.markRedraw(); -} -function updateLeaveTo(el, elOption) { - var leaveToProps = transitionInnerStore(el).leaveToProps; - for (var i = 0; i < ELEMENT_ANIMATABLE_PROPS.length; i++) { - var propName = ELEMENT_ANIMATABLE_PROPS[i]; - var prop = propName ? elOption[propName] : elOption; - if (prop && prop.leaveTo) { - if (!leaveToProps) { - leaveToProps = transitionInnerStore(el).leaveToProps = {}; - } - if (propName) { - leaveToProps[propName] = leaveToProps[propName] || {}; - } - extend(propName ? leaveToProps[propName] : leaveToProps, prop.leaveTo); - } - } -} -function applyLeaveTransition(el, elOption, animatableModel, onRemove) { - if (el) { - var parent_1 = el.parent; - var leaveToProps = transitionInnerStore(el).leaveToProps; - if (leaveToProps) { - var config = getElementAnimationConfig("update", el, elOption, animatableModel, 0); - config.done = function() { - parent_1.remove(el); - onRemove && onRemove(); - }; - el.animateTo(leaveToProps, config); - } else { - parent_1.remove(el); - onRemove && onRemove(); - } - } -} -function isTransitionAll(transition) { - return transition === "all"; -} -function applyPropsDirectly(el, allPropsFinal, clearStyle) { - var styleOpt = allPropsFinal.style; - if (!el.isGroup && styleOpt) { - if (clearStyle) { - el.useStyle({}); - var animators = el.animators; - for (var i = 0; i < animators.length; i++) { - var animator = animators[i]; - if (animator.targetName === "style") { - animator.changeTarget(el.style); - } - } - } - el.setStyle(styleOpt); - } - if (allPropsFinal) { - allPropsFinal.style = null; - allPropsFinal && el.attr(allPropsFinal); - allPropsFinal.style = styleOpt; - } -} -function applyPropsTransition(el, elOption, dataIndex, model, transFromProps) { - if (transFromProps) { - var config = getElementAnimationConfig("update", el, elOption, model, dataIndex); - if (config.duration > 0) { - el.animateFrom(transFromProps, config); - } - } -} -function applyMiscProps(el, elOption) { - hasOwn(elOption, "silent") && (el.silent = elOption.silent); - hasOwn(elOption, "ignore") && (el.ignore = elOption.ignore); - if (el instanceof Displayable) { - hasOwn(elOption, "invisible") && (el.invisible = elOption.invisible); - } - if (el instanceof Path) { - hasOwn(elOption, "autoBatch") && (el.autoBatch = elOption.autoBatch); - } -} -var tmpDuringScope = {}; -var transitionDuringAPI = { - // Usually other props do not need to be changed in animation during. - setTransform: function(key, val) { - tmpDuringScope.el[key] = val; - return this; - }, - getTransform: function(key) { - return tmpDuringScope.el[key]; - }, - setShape: function(key, val) { - var el = tmpDuringScope.el; - var shape = el.shape || (el.shape = {}); - shape[key] = val; - el.dirtyShape && el.dirtyShape(); - return this; - }, - getShape: function(key) { - var shape = tmpDuringScope.el.shape; - if (shape) { - return shape[key]; - } - }, - setStyle: function(key, val) { - var el = tmpDuringScope.el; - var style = el.style; - if (style) { - style[key] = val; - el.dirtyStyle && el.dirtyStyle(); - } - return this; - }, - getStyle: function(key) { - var style = tmpDuringScope.el.style; - if (style) { - return style[key]; - } - }, - setExtra: function(key, val) { - var extra = tmpDuringScope.el.extra || (tmpDuringScope.el.extra = {}); - extra[key] = val; - return this; - }, - getExtra: function(key) { - var extra = tmpDuringScope.el.extra; - if (extra) { - return extra[key]; - } - } -}; -function duringCall() { - var scope = this; - var el = scope.el; - if (!el) { - return; - } - var latestUserDuring = transitionInnerStore(el).userDuring; - var scopeUserDuring = scope.userDuring; - if (latestUserDuring !== scopeUserDuring) { - scope.el = scope.userDuring = null; - return; - } - tmpDuringScope.el = el; - scopeUserDuring(transitionDuringAPI); -} -function prepareShapeOrExtraTransitionFrom(mainAttr, fromEl, elOption, transFromProps) { - var attrOpt = elOption[mainAttr]; - if (!attrOpt) { - return; - } - var elPropsInAttr = fromEl[mainAttr]; - var transFromPropsInAttr; - if (elPropsInAttr) { - var transition = elOption.transition; - var attrTransition = attrOpt.transition; - if (attrTransition) { - !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {}); - if (isTransitionAll(attrTransition)) { - extend(transFromPropsInAttr, elPropsInAttr); - } else { - var transitionKeys = normalizeToArray(attrTransition); - for (var i = 0; i < transitionKeys.length; i++) { - var key = transitionKeys[i]; - var elVal = elPropsInAttr[key]; - transFromPropsInAttr[key] = elVal; - } - } - } else if (isTransitionAll(transition) || indexOf(transition, mainAttr) >= 0) { - !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {}); - var elPropsInAttrKeys = keys(elPropsInAttr); - for (var i = 0; i < elPropsInAttrKeys.length; i++) { - var key = elPropsInAttrKeys[i]; - var elVal = elPropsInAttr[key]; - if (isNonStyleTransitionEnabled(attrOpt[key], elVal)) { - transFromPropsInAttr[key] = elVal; - } - } - } - } -} -function prepareShapeOrExtraAllPropsFinal(mainAttr, elOption, allProps) { - var attrOpt = elOption[mainAttr]; - if (!attrOpt) { - return; - } - var allPropsInAttr = allProps[mainAttr] = {}; - var keysInAttr = keys(attrOpt); - for (var i = 0; i < keysInAttr.length; i++) { - var key = keysInAttr[i]; - allPropsInAttr[key] = cloneValue(attrOpt[key]); - } -} -function prepareTransformTransitionFrom(el, elOption, transFromProps) { - var transition = elOption.transition; - var transitionKeys = isTransitionAll(transition) ? TRANSFORMABLE_PROPS : normalizeToArray(transition || []); - for (var i = 0; i < transitionKeys.length; i++) { - var key = transitionKeys[i]; - if (key === "style" || key === "shape" || key === "extra") { - continue; - } - var elVal = el[key]; - transFromProps[key] = elVal; - } -} -function prepareTransformAllPropsFinal(el, elOption, allProps) { - for (var i = 0; i < LEGACY_TRANSFORM_PROPS.length; i++) { - var legacyName = LEGACY_TRANSFORM_PROPS[i]; - var xyName = LEGACY_TRANSFORM_PROPS_MAP[legacyName]; - var legacyArr = elOption[legacyName]; - if (legacyArr) { - allProps[xyName[0]] = legacyArr[0]; - allProps[xyName[1]] = legacyArr[1]; - } - } - for (var i = 0; i < TRANSFORMABLE_PROPS.length; i++) { - var key = TRANSFORMABLE_PROPS[i]; - if (elOption[key] != null) { - allProps[key] = elOption[key]; - } - } -} -function prepareStyleTransitionFrom(fromEl, elOption, styleOpt, transFromProps) { - if (!styleOpt) { - return; - } - var fromElStyle = fromEl.style; - var transFromStyleProps; - if (fromElStyle) { - var styleTransition = styleOpt.transition; - var elTransition = elOption.transition; - if (styleTransition && !isTransitionAll(styleTransition)) { - var transitionKeys = normalizeToArray(styleTransition); - !transFromStyleProps && (transFromStyleProps = transFromProps.style = {}); - for (var i = 0; i < transitionKeys.length; i++) { - var key = transitionKeys[i]; - var elVal = fromElStyle[key]; - transFromStyleProps[key] = elVal; - } - } else if (fromEl.getAnimationStyleProps && (isTransitionAll(elTransition) || isTransitionAll(styleTransition) || indexOf(elTransition, "style") >= 0)) { - var animationProps = fromEl.getAnimationStyleProps(); - var animationStyleProps = animationProps ? animationProps.style : null; - if (animationStyleProps) { - !transFromStyleProps && (transFromStyleProps = transFromProps.style = {}); - var styleKeys = keys(styleOpt); - for (var i = 0; i < styleKeys.length; i++) { - var key = styleKeys[i]; - if (animationStyleProps[key]) { - var elVal = fromElStyle[key]; - transFromStyleProps[key] = elVal; - } - } - } - } - } -} -function isNonStyleTransitionEnabled(optVal, elVal) { - return !isArrayLike(optVal) ? optVal != null && isFinite(optVal) : optVal !== elVal; -} -var getStateToRestore = makeInner(); -var KEYFRAME_EXCLUDE_KEYS = ["percent", "easing", "shape", "style", "extra"]; -function stopPreviousKeyframeAnimationAndRestore(el) { - el.stopAnimation("keyframe"); - el.attr(getStateToRestore(el)); -} -function applyKeyframeAnimation(el, animationOpts, animatableModel) { - if (!animatableModel.isAnimationEnabled() || !animationOpts) { - return; - } - if (isArray(animationOpts)) { - each$2(animationOpts, function(singleAnimationOpts) { - applyKeyframeAnimation(el, singleAnimationOpts, animatableModel); - }); - return; - } - var keyframes = animationOpts.keyframes; - var duration = animationOpts.duration; - if (animatableModel && duration == null) { - var config = getAnimationConfig("enter", animatableModel, 0); - duration = config && config.duration; - } - if (!keyframes || !duration) { - return; - } - var stateToRestore = getStateToRestore(el); - each$2(ELEMENT_ANIMATABLE_PROPS, function(targetPropName) { - if (targetPropName && !el[targetPropName]) { - return; - } - var animator; - keyframes.sort(function(a, b) { - return a.percent - b.percent; - }); - each$2(keyframes, function(kf) { - var animators = el.animators; - var kfValues = targetPropName ? kf[targetPropName] : kf; - if (!kfValues) { - return; - } - var propKeys = keys(kfValues); - if (!targetPropName) { - propKeys = filter(propKeys, function(key) { - return indexOf(KEYFRAME_EXCLUDE_KEYS, key) < 0; - }); - } - if (!propKeys.length) { - return; - } - if (!animator) { - animator = el.animate(targetPropName, animationOpts.loop, true); - animator.scope = "keyframe"; - } - for (var i = 0; i < animators.length; i++) { - if (animators[i] !== animator && animators[i].targetName === animator.targetName) { - animators[i].stopTracks(propKeys); - } - } - targetPropName && (stateToRestore[targetPropName] = stateToRestore[targetPropName] || {}); - var savedTarget = targetPropName ? stateToRestore[targetPropName] : stateToRestore; - each$2(propKeys, function(key) { - savedTarget[key] = ((targetPropName ? el[targetPropName] : el) || {})[key]; - }); - animator.whenWithKeys(duration * kf.percent, kfValues, propKeys, kf.easing); - }); - if (!animator) { - return; - } - animator.delay(animationOpts.delay || 0).duration(duration).start(animationOpts.easing); - }); -} -export { - AxisBuilder$1 as A, - AxisView$1 as B, - collect as C, - axisModelCreator as D, - rectCoordAxisHandleRemove as E, - rectCoordAxisBuildSplitArea as F, - updateLeaveTo as G, - isTransitionAll as H, - sliderMove as I, - makeRectPanelClipPath as J, - makeRectIsTargetByCursor as K, - LineDraw$1 as L, - MapDraw$1 as M, - makeLinearBrushOtherExtent as N, - BrushController$1 as O, - RoamController$1 as R, - SymbolDraw$1 as S, - View$1 as V, - SymbolClz as a, - getDefaultLabel as b, - install$3 as c, - install$2 as d, - geoSourceManager as e, - install$1 as f, - getDefaultInterpolatedLabel as g, - updateViewOnZoom as h, - isCoordinateSystemType as i, - updateCenterAndZoom as j, - VisualMapping$1 as k, - install as l, - Line$1 as m, - applyLeaveTransition as n, - onIrrelevantElement as o, - convertToEC4StyleForCustomSerise as p, - isEC4CompatibleStyle as q, - convertFromEC4CompatibleStyle as r, - shiftLayoutOnY as s, - stopPreviousKeyframeAnimationAndRestore as t, - updateViewOnPan as u, - applyUpdateTransition as v, - applyKeyframeAnimation as w, - getAxisInfo as x, - layout as y, - makeKey as z -}; diff --git a/templates/assets/dist/assets/en-60b41890.js b/templates/assets/dist/assets/en-60b41890.js deleted file mode 100644 index ec109988..00000000 --- a/templates/assets/dist/assets/en-60b41890.js +++ /dev/null @@ -1,189 +0,0 @@ -const home = { - feature: { - title: "Top Feature" - }, - discovery: "Discovery", - video: { - loading: "Loading video...", - loading_error: "Failed to load video.", - statu_pause: "Paused...", - statu_waiting: "Loading...", - statu_error: "Error playing video." - } -}; -const postlist = { - time: "Posted on {{ time, datetimeFormat }}", - heat: "{{ visit }} hits", - comments: "{{ comment }} comments" -}; -const post = { - time: "Posted on {{ time, datetimeFormat }}", - edit_time: "Last updated on {{ editTime, datetimeFormat }}", - prev: "Previous Post", - next: "Next Post", - visits: "{{ visit }} Views", - reward: "$", - license: "Attribution-NonCommercial-ShareAlike 4.0 International", - copyright_template_html: { - info: "# For commercial use, please contact the author for permission. For non-commercial use, please indicate the source.
    ", - license: "# License: $t(post.license)
    ", - author: "# Author: {{ postAuthor }}
    ", - url: "# Link(URL): {{ postUrl }}
    ", - source: "# Source: {{ siteName }}
    " - }, - word_count_toast: { - content: "This post has a total of {{ postWordCount }} words, and is expected to take {{ timeString }} to read.{{ remind }}", - remind: "This post is of average length, and can be read with peace of mind.", - remind_normal: "This post is of average length, and can be read with peace of mind.", - remind_medium: "This post is very long, it is recommended to read it in paragraphs.", - remind_difficulty: "The content of this post is very outdated and may no longer apply!" - }, - edit_time_toast: { - content: "The last time this post was edited was {{ sinceLastTime }}.{{ remind }}", - remind: "This post was recently updated, so feel free to read it with confidence!", - remind_normal: "This post was recently updated, so feel free to read it with confidence!", - remind_medium: "This post has not been updated for a long time, so it may no longer apply.", - remind_difficulty: "The content of this post is very outdated and may no longer apply!" - } -}; -const page = { - next: "Next Page", - theend: "No more post(s)", - archives: { - title: "Post Archive" - }, - categories: { - title: "Post Category", - item_title: "Category: {{ title }}", - radar_title: "$t(page.categories.title) Radar Chart", - radar_series_title: "$t(page.categories.title) Quantity" - }, - photos: { - title: "Images", - all: "All" - }, - links: { - title: "Links" - }, - moments: { - title: "Log", - loadmore: "Load more...", - empty: "This guy is so lazy ╮(╯▽╰)╭ Noting here!!!", - time: " {{ time, datetimeFormat }}" - }, - search: { - title: 'Search results for " {{ title }} "', - sresult: "Search result: " - }, - tags: { - title: "Tags", - item: { - title: "Tag: {{ title }}" - } - }, - none: { - title: "There is nothing here!", - search: "Didn't find what you want, look at the other ones.", - notfound: "We didn't seem to find what you want. Maybe you can search for it." - } -}; -const comment = { - number: "{{ comment }} comment(s)", - number_one: "{{ comment }} comment", - number_other: "{{ comment }} comments", - name: "Comments |" -}; -const notfound = { - title: "Page Not Found - {{ title }}", - golast: "return to previous page", - gohome: "return to home page", - search: "Don't worry, search in site?", - search_2: "Don't worry, search in site?", - searchinput: "Search..." -}; -const user = { - description: "My favorite thing is to leave this blank :)", - login: "login", - has_logged: "current logged in", - info: "user info", - logout: "logout" -}; -const icon_alt = { - wechat: "Wechat", - sina: "Sina Weibo", - qq: "Tencent QQ", - qzone: "QZone", - github: "Github", - lofter: "Lofter", - bili: "Bilibili", - cloudmusic: "Netease Cloud Music", - twitter: "Twitter", - facebook: "Facebook", - googleplus: "Google+", - jianshu: "Jianshu", - zhihu: "Zhihu", - csdn: "CSDN", - telegram: "Telegram", - email: "Email", - stackoverflow: "Stack Overflow" -}; -const share = { - weibo: "Share to Sina Weibo", - qq: "Share to QQ", - wechat: { - qcode_title: "Scan QR code", - help_1: 'Click "Discover" and scan it', - help_2: "QR code can share this to Moments" - }, - douban: "Share to Douban", - qzone: "Share to QZone", - linkedin: "Share to LinkedIn" -}; -const theme = { - change_button_text: "Switch Theme | SCHEME TOOL" -}; -const common = { - days: "{{ count }} day(s)", - days_one: "{{ count }} day", - days_other: "{{ count }} days", - hours: "{{ count }} hour(s)", - hours_one: "{{ count }} hour", - hours_other: "{{ count }} hours", - minutes: "{{ count }} minute(s)", - minutes_one: "{{ count }} minute", - minutes_other: "{{ count }} minutes", - seconds: "{{ count }} second(s)", - seconds_one: "{{ count }} second", - seconds_other: "{{ count }} seconds", - events: { - copy: "Copied to clipboard successfully!" - }, - copy_code: "Copy code" -}; -const en = { - home, - postlist, - post, - page, - comment, - notfound, - user, - icon_alt, - share, - theme, - common -}; -export { - comment, - common, - en as default, - home, - icon_alt, - notfound, - page, - post, - postlist, - share, - theme, - user -}; diff --git a/templates/assets/dist/assets/en-d12c2ca6.js b/templates/assets/dist/assets/en-d12c2ca6.js new file mode 100644 index 00000000..d291405e --- /dev/null +++ b/templates/assets/dist/assets/en-d12c2ca6.js @@ -0,0 +1 @@ +const e={feature:{title:"Top Feature"},discovery:"Discovery",video:{loading:"Loading video...",loading_error:"Failed to load video.",statu_pause:"Paused...",statu_waiting:"Loading...",statu_error:"Error playing video."}},t={time:"Posted on {{ time, datetimeFormat }}",heat:"{{ visit }} hits",comments:"{{ comment }} comments"},o={time:"Posted on {{ time, datetimeFormat }}",edit_time:"Last updated on {{ editTime, datetimeFormat }}",prev:"Previous Post",next:"Next Post",visits:"{{ visit }} Views",reward:"$",license:"Attribution-NonCommercial-ShareAlike 4.0 International",copyright_template_html:{info:"# For commercial use, please contact the author for permission. For non-commercial use, please indicate the source.
    ",license:"# License: $t(post.license)
    ",author:"# Author: {{ postAuthor }}
    ",url:"# Link(URL): {{ postUrl }}
    ",source:"# Source: {{ siteName }}
    "},word_count_toast:{content:"This post has a total of {{ postWordCount }} words, and is expected to take {{ timeString }} to read.{{ remind }}",remind:"This post is of average length, and can be read with peace of mind.",remind_normal:"This post is of average length, and can be read with peace of mind.",remind_medium:"This post is very long, it is recommended to read it in paragraphs.",remind_difficulty:"The content of this post is very outdated and may no longer apply!"},edit_time_toast:{content:"The last time this post was edited was {{ sinceLastTime }}.{{ remind }}",remind:"This post was recently updated, so feel free to read it with confidence!",remind_normal:"This post was recently updated, so feel free to read it with confidence!",remind_medium:"This post has not been updated for a long time, so it may no longer apply.",remind_difficulty:"The content of this post is very outdated and may no longer apply!"}},i={next:"Next Page",theend:"No more post(s)",archives:{title:"Post Archive"},categories:{title:"Post Category",item_title:"Category: {{ title }}",radar_title:"$t(page.categories.title) Radar Chart",radar_series_title:"$t(page.categories.title) Quantity"},photos:{title:"Images",all:"All"},links:{title:"Links"},moments:{title:"Log",loadmore:"Load more...",empty:"This guy is so lazy ╮(╯▽╰)╭ Noting here!!!",time:" {{ time, datetimeFormat }}"},search:{title:'Search results for " {{ title }} "',sresult:"Search result: "},tags:{title:"Tags",item:{title:"Tag: {{ title }}"}},none:{title:"There is nothing here!",search:"Didn't find what you want, look at the other ones.",notfound:"We didn't seem to find what you want. Maybe you can search for it."}},n={number:"{{ comment }} comment(s)",number_one:"{{ comment }} comment",number_other:"{{ comment }} comments",name:"Comments |"},s={title:"Page Not Found - {{ title }}",golast:"return to previous page",gohome:"return to home page",search:"Don't worry, search in site?",search_2:"Don't worry, search in site?",searchinput:"Search..."},a={description:"My favorite thing is to leave this blank :)",login:"login",has_logged:"current logged in",info:"user info",logout:"logout"},r={wechat:"Wechat",sina:"Sina Weibo",qq:"Tencent QQ",qzone:"QZone",github:"Github",lofter:"Lofter",bili:"Bilibili",cloudmusic:"Netease Cloud Music",twitter:"Twitter",facebook:"Facebook",googleplus:"Google+",jianshu:"Jianshu",zhihu:"Zhihu",csdn:"CSDN",telegram:"Telegram",email:"Email",stackoverflow:"Stack Overflow"},c={weibo:"Share to Sina Weibo",qq:"Share to QQ",wechat:{qcode_title:"Scan QR code",help_1:'Click "Discover" and scan it',help_2:"QR code can share this to Moments"},douban:"Share to Douban",qzone:"Share to QZone",linkedin:"Share to LinkedIn"},d={change_button_text:"Switch Theme | SCHEME TOOL"},m={days:"{{ count }} day(s)",days_one:"{{ count }} day",days_other:"{{ count }} days",hours:"{{ count }} hour(s)",hours_one:"{{ count }} hour",hours_other:"{{ count }} hours",minutes:"{{ count }} minute(s)",minutes_one:"{{ count }} minute",minutes_other:"{{ count }} minutes",seconds:"{{ count }} second(s)",seconds_one:"{{ count }} second",seconds_other:"{{ count }} seconds",events:{copy:"Copied to clipboard successfully!"},copy_code:"Copy code"},l={home:e,postlist:t,post:o,page:i,comment:n,notfound:s,user:a,icon_alt:r,share:c,theme:d,common:m};export{n as comment,m as common,l as default,e as home,r as icon_alt,s as notfound,i as page,o as post,t as postlist,c as share,d as theme,a as user}; diff --git a/templates/assets/dist/assets/graphic-083f2b2f.js b/templates/assets/dist/assets/graphic-083f2b2f.js new file mode 100644 index 00000000..fa2ea043 --- /dev/null +++ b/templates/assets/dist/assets/graphic-083f2b2f.js @@ -0,0 +1,21 @@ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */var De=function(r,t){return De=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,i){e.__proto__=i}||function(e,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(e[a]=i[a])},De(r,t)};function pt(r,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");De(r,t);function e(){this.constructor=r}r.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}var an=function(){function r(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return r}(),nn=function(){function r(){this.browser=new an,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow=typeof window<"u"}return r}(),Dt=new nn;typeof wx=="object"&&typeof wx.getSystemInfoSync=="function"?(Dt.wxa=!0,Dt.touchEventsSupported=!0):typeof document>"u"&&typeof self<"u"?Dt.worker=!0:typeof navigator>"u"?(Dt.node=!0,Dt.svgSupported=!0):on(navigator.userAgent,Dt);function on(r,t){var e=t.browser,i=r.match(/Firefox\/([\d.]+)/),a=r.match(/MSIE\s([\d.]+)/)||r.match(/Trident\/.+?rv:(([\d.]+))/),n=r.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(r);i&&(e.firefox=!0,e.version=i[1]),a&&(e.ie=!0,e.version=a[1]),n&&(e.edge=!0,e.version=n[1],e.newEdge=+n[1].split(".")[0]>18),o&&(e.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!e.ie&&!e.edge,t.pointerEventsSupported="onpointerdown"in window&&(e.edge||e.ie&&+e.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(e.ie&&"transition"in s||e.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||e.ie&&+e.version>=9}const ie=Dt;var Ke=12,sn="sans-serif",Bt=Ke+"px "+sn,fn=20,hn=100,un="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function ln(r){var t={};if(typeof JSON>"u")return t;for(var e=0;e=0)s=o*e.length;else for(var f=0;f>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[f]+":0",a[h]+":0",i[1-f]+":auto",a[1-h]+":auto",""].join("!important;"),r.appendChild(o),e.push(o)}return e}function eo(r,t,e){for(var i=e?"invTrans":"trans",a=t[i],n=t.srcCoords,o=[],s=[],f=!0,h=0;h<4;h++){var u=r[h].getBoundingClientRect(),l=2*h,v=u.left,c=u.top;o.push(v,c),f=f&&n&&v===n[l]&&c===n[l+1],s.push(r[h].offsetLeft,r[h].offsetTop)}return f&&a?a:(t.srcCoords=o,t[i]=e?gi(s,o):gi(o,s))}function io(r){return r.nodeName.toUpperCase()==="CANVAS"}var ao=/([&<>"'])/g,no={"&":"&","<":"<",">":">",'"':""","'":"'"};function hf(r){return r==null?"":(r+"").replace(ao,function(t,e){return no[e]})}function ar(){return[1,0,0,1,0,0]}function ma(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=1,r[4]=0,r[5]=0,r}function fi(r,t){return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r[4]=t[4],r[5]=t[5],r}function Ur(r,t,e){var i=t[0]*e[0]+t[2]*e[1],a=t[1]*e[0]+t[3]*e[1],n=t[0]*e[2]+t[2]*e[3],o=t[1]*e[2]+t[3]*e[3],s=t[0]*e[4]+t[2]*e[5]+t[4],f=t[1]*e[4]+t[3]*e[5]+t[5];return r[0]=i,r[1]=a,r[2]=n,r[3]=o,r[4]=s,r[5]=f,r}function Ie(r,t,e){return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r[4]=t[4]+e[0],r[5]=t[5]+e[1],r}function wa(r,t,e){var i=t[0],a=t[2],n=t[4],o=t[1],s=t[3],f=t[5],h=Math.sin(e),u=Math.cos(e);return r[0]=i*u+o*h,r[1]=-i*h+o*u,r[2]=a*u+s*h,r[3]=-a*h+u*s,r[4]=u*n+h*f,r[5]=u*f-h*n,r}function Ta(r,t,e){var i=e[0],a=e[1];return r[0]=t[0]*i,r[1]=t[1]*a,r[2]=t[2]*i,r[3]=t[3]*a,r[4]=t[4]*i,r[5]=t[5]*a,r}function ba(r,t){var e=t[0],i=t[2],a=t[4],n=t[1],o=t[3],s=t[5],f=e*o-n*i;return f?(f=1/f,r[0]=o*f,r[1]=-n*f,r[2]=-i*f,r[3]=e*f,r[4]=(i*s-o*a)*f,r[5]=(n*a-e*s)*f,r):null}function oo(r){var t=ar();return fi(t,r),t}const uf=Object.freeze(Object.defineProperty({__proto__:null,clone:oo,copy:fi,create:ar,identity:ma,invert:ba,mul:Ur,rotate:wa,scale:Ta,translate:Ie},Symbol.toStringTag,{value:"Module"}));var so=function(){function r(t,e){this.x=t||0,this.y=e||0}return r.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},r.prototype.clone=function(){return new r(this.x,this.y)},r.prototype.set=function(t,e){return this.x=t,this.y=e,this},r.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},r.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},r.prototype.scale=function(t){this.x*=t,this.y*=t},r.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},r.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},r.prototype.dot=function(t){return this.x*t.x+this.y*t.y},r.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},r.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},r.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},r.prototype.distance=function(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)},r.prototype.distanceSquare=function(t){var e=this.x-t.x,i=this.y-t.y;return e*e+i*i},r.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},r.prototype.transform=function(t){if(t){var e=this.x,i=this.y;return this.x=t[0]*e+t[2]*i+t[4],this.y=t[1]*e+t[3]*i+t[5],this}},r.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},r.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},r.set=function(t,e,i){t.x=e,t.y=i},r.copy=function(t,e){t.x=e.x,t.y=e.y},r.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},r.lenSquare=function(t){return t.x*t.x+t.y*t.y},r.dot=function(t,e){return t.x*e.x+t.y*e.y},r.add=function(t,e,i){t.x=e.x+i.x,t.y=e.y+i.y},r.sub=function(t,e,i){t.x=e.x-i.x,t.y=e.y-i.y},r.scale=function(t,e,i){t.x=e.x*i,t.y=e.y*i},r.scaleAndAdd=function(t,e,i,a){t.x=e.x+i.x*a,t.y=e.y+i.y*a},r.lerp=function(t,e,i,a){var n=1-a;t.x=n*e.x+a*i.x,t.y=n*e.y+a*i.y},r}();const I=so;var Fr=Math.min,Or=Math.max,gt=new I,yt=new I,mt=new I,wt=new I,fr=new I,hr=new I,fo=function(){function r(t,e,i,a){i<0&&(t=t+i,i=-i),a<0&&(e=e+a,a=-a),this.x=t,this.y=e,this.width=i,this.height=a}return r.prototype.union=function(t){var e=Fr(t.x,this.x),i=Fr(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Or(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Or(t.y+t.height,this.y+this.height)-i:this.height=t.height,this.x=e,this.y=i},r.prototype.applyTransform=function(t){r.applyTransform(this,this,t)},r.prototype.calculateTransform=function(t){var e=this,i=t.width/e.width,a=t.height/e.height,n=ar();return Ie(n,n,[-e.x,-e.y]),Ta(n,n,[i,a]),Ie(n,n,[t.x,t.y]),n},r.prototype.intersect=function(t,e){if(!t)return!1;t instanceof r||(t=r.create(t));var i=this,a=i.x,n=i.x+i.width,o=i.y,s=i.y+i.height,f=t.x,h=t.x+t.width,u=t.y,l=t.y+t.height,v=!(np&&(p=w,gp&&(p=T,_=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},r.prototype.clone=function(){return new r(this.x,this.y,this.width,this.height)},r.prototype.copy=function(t){r.copy(this,t)},r.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},r.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},r.prototype.isZero=function(){return this.width===0||this.height===0},r.create=function(t){return new r(t.x,t.y,t.width,t.height)},r.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},r.applyTransform=function(t,e,i){if(!i){t!==e&&r.copy(t,e);return}if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var a=i[0],n=i[3],o=i[4],s=i[5];t.x=e.x*a+o,t.y=e.y*n+s,t.width=e.width*a,t.height=e.height*n,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}gt.x=mt.x=e.x,gt.y=wt.y=e.y,yt.x=wt.x=e.x+e.width,yt.y=mt.y=e.y+e.height,gt.transform(i),wt.transform(i),yt.transform(i),mt.transform(i),t.x=Fr(gt.x,yt.x,mt.x,wt.x),t.y=Fr(gt.y,yt.y,mt.y,wt.y);var f=Or(gt.x,yt.x,mt.x,wt.x),h=Or(gt.y,yt.y,mt.y,wt.y);t.width=f-t.x,t.height=h-t.y},r}();const X=fo;var nt=1,cr=2,Qt=4,Pa;Pa=ie.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(r){return setTimeout(r,16)};const lf=Pa;var Zr={linear:function(r){return r},quadraticIn:function(r){return r*r},quadraticOut:function(r){return r*(2-r)},quadraticInOut:function(r){return(r*=2)<1?.5*r*r:-.5*(--r*(r-2)-1)},cubicIn:function(r){return r*r*r},cubicOut:function(r){return--r*r*r+1},cubicInOut:function(r){return(r*=2)<1?.5*r*r*r:.5*((r-=2)*r*r+2)},quarticIn:function(r){return r*r*r*r},quarticOut:function(r){return 1- --r*r*r*r},quarticInOut:function(r){return(r*=2)<1?.5*r*r*r*r:-.5*((r-=2)*r*r*r-2)},quinticIn:function(r){return r*r*r*r*r},quinticOut:function(r){return--r*r*r*r*r+1},quinticInOut:function(r){return(r*=2)<1?.5*r*r*r*r*r:.5*((r-=2)*r*r*r*r+2)},sinusoidalIn:function(r){return 1-Math.cos(r*Math.PI/2)},sinusoidalOut:function(r){return Math.sin(r*Math.PI/2)},sinusoidalInOut:function(r){return .5*(1-Math.cos(Math.PI*r))},exponentialIn:function(r){return r===0?0:Math.pow(1024,r-1)},exponentialOut:function(r){return r===1?1:1-Math.pow(2,-10*r)},exponentialInOut:function(r){return r===0?0:r===1?1:(r*=2)<1?.5*Math.pow(1024,r-1):.5*(-Math.pow(2,-10*(r-1))+2)},circularIn:function(r){return 1-Math.sqrt(1-r*r)},circularOut:function(r){return Math.sqrt(1- --r*r)},circularInOut:function(r){return(r*=2)<1?-.5*(Math.sqrt(1-r*r)-1):.5*(Math.sqrt(1-(r-=2)*r)+1)},elasticIn:function(r){var t,e=.1,i=.4;return r===0?0:r===1?1:(!e||e<1?(e=1,t=i/4):t=i*Math.asin(1/e)/(2*Math.PI),-(e*Math.pow(2,10*(r-=1))*Math.sin((r-t)*(2*Math.PI)/i)))},elasticOut:function(r){var t,e=.1,i=.4;return r===0?0:r===1?1:(!e||e<1?(e=1,t=i/4):t=i*Math.asin(1/e)/(2*Math.PI),e*Math.pow(2,-10*r)*Math.sin((r-t)*(2*Math.PI)/i)+1)},elasticInOut:function(r){var t,e=.1,i=.4;return r===0?0:r===1?1:(!e||e<1?(e=1,t=i/4):t=i*Math.asin(1/e)/(2*Math.PI),(r*=2)<1?-.5*(e*Math.pow(2,10*(r-=1))*Math.sin((r-t)*(2*Math.PI)/i)):e*Math.pow(2,-10*(r-=1))*Math.sin((r-t)*(2*Math.PI)/i)*.5+1)},backIn:function(r){var t=1.70158;return r*r*((t+1)*r-t)},backOut:function(r){var t=1.70158;return--r*r*((t+1)*r+t)+1},backInOut:function(r){var t=2.5949095;return(r*=2)<1?.5*(r*r*((t+1)*r-t)):.5*((r-=2)*r*((t+1)*r+t)+2)},bounceIn:function(r){return 1-Zr.bounceOut(1-r)},bounceOut:function(r){return r<1/2.75?7.5625*r*r:r<2/2.75?7.5625*(r-=1.5/2.75)*r+.75:r<2.5/2.75?7.5625*(r-=2.25/2.75)*r+.9375:7.5625*(r-=2.625/2.75)*r+.984375},bounceInOut:function(r){return r<.5?Zr.bounceIn(r*2)*.5:Zr.bounceOut(r*2-1)*.5+.5}};const Ca=Zr;var Ar=Math.pow,ct=Math.sqrt,jr=1e-8,Sa=1e-4,wi=ct(3),Er=1/3,et=Wt(),K=Wt(),er=Wt();function lt(r){return r>-jr&&rjr||r<-jr}function B(r,t,e,i,a){var n=1-a;return n*n*(n*r+3*a*t)+a*a*(a*i+3*n*e)}function vf(r,t,e,i,a){var n=1-a;return 3*(((t-r)*n+2*(e-t)*a)*n+(i-e)*a*a)}function La(r,t,e,i,a,n){var o=i+3*(t-e)-r,s=3*(e-t*2+r),f=3*(t-r),h=r-a,u=s*s-3*o*f,l=s*f-9*o*h,v=f*f-3*s*h,c=0;if(lt(u)&<(l))if(lt(s))n[0]=0;else{var p=-f/s;p>=0&&p<=1&&(n[c++]=p)}else{var g=l*l-4*u*v;if(lt(g)){var d=l/u,p=-s/o+d,_=-d/2;p>=0&&p<=1&&(n[c++]=p),_>=0&&_<=1&&(n[c++]=_)}else if(g>0){var y=ct(g),w=u*s+1.5*o*(-l+y),T=u*s+1.5*o*(-l-y);w<0?w=-Ar(-w,Er):w=Ar(w,Er),T<0?T=-Ar(-T,Er):T=Ar(T,Er);var p=(-s-(w+T))/(3*o);p>=0&&p<=1&&(n[c++]=p)}else{var b=(2*u*s-3*o*l)/(2*ct(u*u*u)),m=Math.acos(b)/3,S=ct(u),C=Math.cos(m),p=(-s-2*S*C)/(3*o),_=(-s+S*(C+wi*Math.sin(m)))/(3*o),x=(-s+S*(C-wi*Math.sin(m)))/(3*o);p>=0&&p<=1&&(n[c++]=p),_>=0&&_<=1&&(n[c++]=_),x>=0&&x<=1&&(n[c++]=x)}}return c}function Ra(r,t,e,i,a){var n=6*e-12*t+6*r,o=9*t+3*i-3*r-9*e,s=3*t-3*r,f=0;if(lt(o)){if(Ma(n)){var h=-s/n;h>=0&&h<=1&&(a[f++]=h)}}else{var u=n*n-4*o*s;if(lt(u))a[0]=-n/(2*o);else if(u>0){var l=ct(u),h=(-n+l)/(2*o),v=(-n-l)/(2*o);h>=0&&h<=1&&(a[f++]=h),v>=0&&v<=1&&(a[f++]=v)}}return f}function Ti(r,t,e,i,a,n){var o=(t-r)*a+r,s=(e-t)*a+t,f=(i-e)*a+e,h=(s-o)*a+o,u=(f-s)*a+s,l=(u-h)*a+h;n[0]=r,n[1]=o,n[2]=h,n[3]=l,n[4]=l,n[5]=u,n[6]=f,n[7]=i}function ho(r,t,e,i,a,n,o,s,f,h,u){var l,v=.005,c=1/0,p,g,d,_;et[0]=f,et[1]=h;for(var y=0;y<1;y+=.05)K[0]=B(r,e,a,o,y),K[1]=B(t,i,n,s,y),d=At(et,K),d=0&&d=0&&h<=1&&(a[f++]=h)}}else{var u=o*o-4*n*s;if(lt(u)){var h=-o/(2*n);h>=0&&h<=1&&(a[f++]=h)}else if(u>0){var l=ct(u),h=(-o+l)/(2*n),v=(-o-l)/(2*n);h>=0&&h<=1&&(a[f++]=h),v>=0&&v<=1&&(a[f++]=v)}}return f}function xa(r,t,e){var i=r+e-2*t;return i===0?.5:(r-t)/i}function bi(r,t,e,i,a){var n=(t-r)*i+r,o=(e-t)*i+t,s=(o-n)*i+n;a[0]=r,a[1]=n,a[2]=s,a[3]=s,a[4]=o,a[5]=e}function vo(r,t,e,i,a,n,o,s,f){var h,u=.005,l=1/0;et[0]=o,et[1]=s;for(var v=0;v<1;v+=.05){K[0]=N(r,e,a,v),K[1]=N(t,i,n,v);var c=At(et,K);c=0&&c=1?1:La(0,i,n,1,f,s)&&B(0,a,o,1,s[0])}}}var _o=function(){function r(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||zr,this.ondestroy=t.ondestroy||zr,this.onrestart=t.onrestart||zr,t.easing&&this.setEasing(t.easing)}return r.prototype.step=function(t,e){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=e;return}var i=this._life,a=t-this._startTime-this._pausedTime,n=a/i;n<0&&(n=0),n=Math.min(n,1);var o=this.easingFunc,s=o?o(n):n;if(this.onframe(s),n===1)if(this.loop){var f=a%i;this._startTime=t-f,this._pausedTime=0,this.onrestart()}else return!0;return!1},r.prototype.pause=function(){this._paused=!0},r.prototype.resume=function(){this._paused=!1},r.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Lr(t)?t:Ca[t]||Da(t)},r}();const go=_o;var Fa=function(){function r(t){this.value=t}return r}(),yo=function(){function r(){this._len=0}return r.prototype.insert=function(t){var e=new Fa(t);return this.insertEntry(e),e},r.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},r.prototype.remove=function(t){var e=t.prev,i=t.next;e?e.next=i:this.head=i,i?i.prev=e:this.tail=e,t.next=t.prev=null,this._len--},r.prototype.len=function(){return this._len},r.prototype.clear=function(){this.head=this.tail=null,this._len=0},r}(),mo=function(){function r(t){this._list=new yo,this._maxSize=10,this._map={},this._maxSize=t}return r.prototype.put=function(t,e){var i=this._list,a=this._map,n=null;if(a[t]==null){var o=i.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var f=i.head;i.remove(f),delete a[f.key],n=f.value,this._lastRemovedEntry=f}s?s.value=e:s=new Fa(e),s.key=t,i.insertEntry(s),a[t]=s}return n},r.prototype.get=function(t){var e=this._map[t],i=this._list;if(e!=null)return e!==i.tail&&(i.remove(e),i.insertEntry(e)),e.value},r.prototype.clear=function(){this._list.clear(),this._map={}},r.prototype.len=function(){return this._list.len()},r}();const hi=mo;var Pi={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Q(r){return r=Math.round(r),r<0?0:r>255?255:r}function wo(r){return r=Math.round(r),r<0?0:r>360?360:r}function Tr(r){return r<0?0:r>1?1:r}function he(r){var t=r;return t.length&&t.charAt(t.length-1)==="%"?Q(parseFloat(t)/100*255):Q(parseInt(t,10))}function Et(r){var t=r;return t.length&&t.charAt(t.length-1)==="%"?Tr(parseFloat(t)/100):Tr(parseFloat(t))}function ue(r,t,e){return e<0?e+=1:e>1&&(e-=1),e*6<1?r+(t-r)*e*6:e*2<1?t:e*3<2?r+(t-r)*(2/3-e)*6:r}function vt(r,t,e){return r+(t-r)*e}function Z(r,t,e,i,a){return r[0]=t,r[1]=e,r[2]=i,r[3]=a,r}function Be(r,t){return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r}var Oa=new hi(20),Ir=null;function Ut(r,t){Ir&&Be(Ir,t),Ir=Oa.put(r,Ir||t.slice())}function z(r,t){if(r){t=t||[];var e=Oa.get(r);if(e)return Be(t,e);r=r+"";var i=r.replace(/ /g,"").toLowerCase();if(i in Pi)return Be(t,Pi[i]),Ut(r,t),t;var a=i.length;if(i.charAt(0)==="#"){if(a===4||a===5){var n=parseInt(i.slice(1,4),16);if(!(n>=0&&n<=4095)){Z(t,0,0,0,1);return}return Z(t,(n&3840)>>4|(n&3840)>>8,n&240|(n&240)>>4,n&15|(n&15)<<4,a===5?parseInt(i.slice(4),16)/15:1),Ut(r,t),t}else if(a===7||a===9){var n=parseInt(i.slice(1,7),16);if(!(n>=0&&n<=16777215)){Z(t,0,0,0,1);return}return Z(t,(n&16711680)>>16,(n&65280)>>8,n&255,a===9?parseInt(i.slice(7),16)/255:1),Ut(r,t),t}return}var o=i.indexOf("("),s=i.indexOf(")");if(o!==-1&&s+1===a){var f=i.substr(0,o),h=i.substr(o+1,s-(o+1)).split(","),u=1;switch(f){case"rgba":if(h.length!==4)return h.length===3?Z(t,+h[0],+h[1],+h[2],1):Z(t,0,0,0,1);u=Et(h.pop());case"rgb":if(h.length>=3)return Z(t,he(h[0]),he(h[1]),he(h[2]),h.length===3?u:Et(h[3])),Ut(r,t),t;Z(t,0,0,0,1);return;case"hsla":if(h.length!==4){Z(t,0,0,0,1);return}return h[3]=Et(h[3]),He(h,t),Ut(r,t),t;case"hsl":if(h.length!==3){Z(t,0,0,0,1);return}return He(h,t),Ut(r,t),t;default:return}}Z(t,0,0,0,1)}}function He(r,t){var e=(parseFloat(r[0])%360+360)%360/360,i=Et(r[1]),a=Et(r[2]),n=a<=.5?a*(i+1):a+i-a*i,o=a*2-n;return t=t||[],Z(t,Q(ue(o,n,e+1/3)*255),Q(ue(o,n,e)*255),Q(ue(o,n,e-1/3)*255),1),r.length===4&&(t[3]=r[3]),t}function To(r){if(r){var t=r[0]/255,e=r[1]/255,i=r[2]/255,a=Math.min(t,e,i),n=Math.max(t,e,i),o=n-a,s=(n+a)/2,f,h;if(o===0)f=0,h=0;else{s<.5?h=o/(n+a):h=o/(2-n-a);var u=((n-t)/6+o/2)/o,l=((n-e)/6+o/2)/o,v=((n-i)/6+o/2)/o;t===n?f=v-l:e===n?f=1/3+u-v:i===n&&(f=2/3+l-u),f<0&&(f+=1),f>1&&(f-=1)}var c=[f*360,h,s];return r[3]!=null&&c.push(r[3]),c}}function bo(r,t){var e=z(r);if(e){for(var i=0;i<3;i++)t<0?e[i]=e[i]*(1-t)|0:e[i]=(255-e[i])*t+e[i]|0,e[i]>255?e[i]=255:e[i]<0&&(e[i]=0);return Nt(e,e.length===4?"rgba":"rgb")}}function Po(r){var t=z(r);if(t)return((1<<24)+(t[0]<<16)+(t[1]<<8)+ +t[2]).toString(16).slice(1)}function Aa(r,t,e){if(!(!(t&&t.length)||!(r>=0&&r<=1))){e=e||[];var i=r*(t.length-1),a=Math.floor(i),n=Math.ceil(i),o=t[a],s=t[n],f=i-a;return e[0]=Q(vt(o[0],s[0],f)),e[1]=Q(vt(o[1],s[1],f)),e[2]=Q(vt(o[2],s[2],f)),e[3]=Tr(vt(o[3],s[3],f)),e}}var Co=Aa;function Ea(r,t,e){if(!(!(t&&t.length)||!(r>=0&&r<=1))){var i=r*(t.length-1),a=Math.floor(i),n=Math.ceil(i),o=z(t[a]),s=z(t[n]),f=i-a,h=Nt([Q(vt(o[0],s[0],f)),Q(vt(o[1],s[1],f)),Q(vt(o[2],s[2],f)),Tr(vt(o[3],s[3],f))],"rgba");return e?{color:h,leftIndex:a,rightIndex:n,value:i}:h}}var So=Ea;function Mo(r,t,e,i){var a=z(r);if(r)return a=To(a),t!=null&&(a[0]=wo(t)),e!=null&&(a[1]=Et(e)),i!=null&&(a[2]=Et(i)),Nt(He(a),"rgba")}function Lo(r,t){var e=z(r);if(e&&t!=null)return e[3]=Tr(t),Nt(e,"rgba")}function Nt(r,t){if(!(!r||!r.length)){var e=r[0]+","+r[1]+","+r[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(e+=","+r[3]),t+"("+e+")"}}function We(r,t){var e=z(r);return e?(.299*e[0]+.587*e[1]+.114*e[2])*e[3]/255+(1-e[3])*t:0}function Ro(){return Nt([Math.round(Math.random()*255),Math.round(Math.random()*255),Math.round(Math.random()*255)],"rgb")}const pf=Object.freeze(Object.defineProperty({__proto__:null,fastLerp:Aa,fastMapToColor:Co,lerp:Ea,lift:bo,lum:We,mapToColor:So,modifyAlpha:Lo,modifyHSL:Mo,parse:z,random:Ro,stringify:Nt,toHex:Po},Symbol.toStringTag,{value:"Module"}));var te=Math.round;function df(r){var t;if(!r||r==="transparent")r="none";else if(typeof r=="string"&&r.indexOf("rgba")>-1){var e=z(r);e&&(r="rgb("+e[0]+","+e[1]+","+e[2]+")",t=e[3])}return{color:r,opacity:t??1}}var Ci=1e-4;function _f(r){return r-Ci}function Br(r){return te(r*1e3)/1e3}function Si(r){return te(r*1e4)/1e4}function gf(r){return"matrix("+Br(r[0])+","+Br(r[1])+","+Br(r[2])+","+Br(r[3])+","+Si(r[4])+","+Si(r[5])+")"}var yf={left:"start",right:"end",center:"middle",middle:"middle"};function mf(r,t,e){return e==="top"?r+=t/2:e==="bottom"&&(r-=t/2),r}function wf(r){return r&&(r.shadowBlur||r.shadowOffsetX||r.shadowOffsetY)}function Tf(r){var t=r.style,e=r.getGlobalScale();return[t.shadowColor,(t.shadowBlur||0).toFixed(2),(t.shadowOffsetX||0).toFixed(2),(t.shadowOffsetY||0).toFixed(2),e[0],e[1]].join(",")}function xo(r){return r&&!!r.image}function Do(r){return r&&!!r.svgElement}function bf(r){return xo(r)||Do(r)}function Fo(r){return r.type==="linear"}function Oo(r){return r.type==="radial"}function Pf(r){return r&&(r.type==="linear"||r.type==="radial")}function Cf(r){return"url(#"+r+")"}function Sf(r){var t=r.getGlobalScale(),e=Math.max(t[0],t[1]);return Math.max(Math.ceil(Math.log(e)/Math.log(10)),1)}function Mf(r){var t=r.x||0,e=r.y||0,i=(r.rotation||0)*yr,a=W(r.scaleX,1),n=W(r.scaleY,1),o=r.skewX||0,s=r.skewY||0,f=[];return(t||e)&&f.push("translate("+t+"px,"+e+"px)"),i&&f.push("rotate("+i+")"),(a!==1||n!==1)&&f.push("scale("+a+","+n+")"),(o||s)&&f.push("skew("+te(o*yr)+"deg, "+te(s*yr)+"deg)"),f.join(" ")}var Lf=function(){return ie.hasGlobalWindow&&Lr(window.btoa)?function(r){return window.btoa(unescape(encodeURIComponent(r)))}:typeof Buffer<"u"?function(r){return Buffer.from(r).toString("base64")}:function(r){return null}}(),Ne=Array.prototype.slice;function at(r,t,e){return(t-r)*e+r}function le(r,t,e,i){for(var a=t.length,n=0;ni?t:r,n=Math.min(e,i),o=a[n-1]||{color:[0,0,0,0],offset:0},s=n;so;if(s)i.length=o;else for(var f=n;f=1},r.prototype.getAdditiveTrack=function(){return this._additiveTrack},r.prototype.addKeyframe=function(t,e,i){this._needsSort=!0;var a=this.keyframes,n=a.length,o=!1,s=Li,f=e;if(k(e)){var h=Bo(e);s=h,(h===1&&!_r(e[0])||h===2&&!_r(e[0][0]))&&(o=!0)}else if(_r(e)&&!va(e))s=Wr;else if(kr(e))if(!isNaN(+e))s=Wr;else{var u=z(e);u&&(f=u,s=pr)}else if(ei(e)){var l=O({},f);l.colorStops=mr(e.colorStops,function(c){return{offset:c.offset,color:z(c.color)}}),Fo(e)?s=Ye:Oo(e)&&(s=$e),f=l}n===0?this.valType=s:(s!==this.valType||s===Li)&&(o=!0),this.discrete=this.discrete||o;var v={time:t,value:f,rawValue:e,percent:0};return i&&(v.easing=i,v.easingFunc=Lr(i)?i:Ca[i]||Da(i)),a.push(v),v},r.prototype.prepare=function(t,e){var i=this.keyframes;this._needsSort&&i.sort(function(g,d){return g.time-d.time});for(var a=this.valType,n=i.length,o=i[n-1],s=this.discrete,f=Nr(a),h=Ri(a),u=0;u=0&&!(o[u].percent<=e);u--);u=v(u,s-2)}else{for(u=l;ue);u++);u=v(u-1,s-2)}p=o[u+1],c=o[u]}if(c&&p){this._lastFr=u,this._lastFrP=e;var d=p.percent-c.percent,_=d===0?1:v((e-c.percent)/d,1);p.easingFunc&&(_=p.easingFunc(_));var y=i?this._additiveValue:h?ur:t[f];if((Nr(n)||h)&&!y&&(y=this._additiveValue=[]),this.discrete)t[f]=_<1?c.rawValue:p.rawValue;else if(Nr(n))n===Qr?le(y,c[a],p[a],_):Ao(y,c[a],p[a],_);else if(Ri(n)){var w=c[a],T=p[a],b=n===Ye;t[f]={type:b?"linear":"radial",x:at(w.x,T.x,_),y:at(w.y,T.y,_),colorStops:mr(w.colorStops,function(S,C){var x=T.colorStops[C];return{offset:at(S.offset,x.offset,_),color:Kr(le([],S.color,x.color,_))}}),global:T.global},b?(t[f].x2=at(w.x2,T.x2,_),t[f].y2=at(w.y2,T.y2,_)):t[f].r=at(w.r,T.r,_)}else if(h)le(y,c[a],p[a],_),i||(t[f]=Kr(y));else{var m=at(c[a],p[a],_);i?this._additiveValue=m:t[f]=m}i&&this._addToTarget(t)}}},r.prototype._addToTarget=function(t){var e=this.valType,i=this.propName,a=this._additiveValue;e===Wr?t[i]=t[i]+a:e===pr?(z(t[i],ur),Hr(ur,ur,a,1),t[i]=Kr(ur)):e===Qr?Hr(t[i],t[i],a,1):e===Ia&&Mi(t[i],t[i],a,1)},r}(),Wo=function(){function r(t,e,i,a){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&a){Je("Can' use additive animation on looped animation.");return}this._additiveAnimators=a,this._allowDiscrete=i}return r.prototype.getMaxTime=function(){return this._maxTime},r.prototype.getDelay=function(){return this._delay},r.prototype.getLoop=function(){return this._loop},r.prototype.getTarget=function(){return this._target},r.prototype.changeTarget=function(t){this._target=t},r.prototype.when=function(t,e,i){return this.whenWithKeys(t,e,G(e),i)},r.prototype.whenWithKeys=function(t,e,i,a){for(var n=this._tracks,o=0;o0&&f.addKeyframe(0,Vr(h),a),this._trackKeys.push(s)}f.addKeyframe(t,Vr(e[s]),a)}return this._maxTime=Math.max(this._maxTime,t),this},r.prototype.pause=function(){this._clip.pause(),this._paused=!0},r.prototype.resume=function(){this._clip.resume(),this._paused=!1},r.prototype.isPaused=function(){return!!this._paused},r.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},r.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var e=t.length,i=0;i0)){this._started=1;for(var e=this,i=[],a=this._maxTime||0,n=0;n1){var s=o.pop();n.addKeyframe(s.time,t[a]),n.prepare(this._maxTime,n.getAdditiveTrack())}}}},r}();const Ba=Wo;var Ha=1;ie.hasGlobalWindow&&(Ha=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var xi=Ha,No=.4,qe="#333",Ge="#ccc",Yo="#eee",Di=ma,Fi=5e-5;function Tt(r){return r>Fi||r<-Fi}var bt=[],Zt=[],ve=ar(),ce=Math.abs,$o=function(){function r(){}return r.prototype.getLocalTransform=function(t){return r.getLocalTransform(this,t)},r.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},r.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},r.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},r.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},r.prototype.needLocalTransform=function(){return Tt(this.rotation)||Tt(this.x)||Tt(this.y)||Tt(this.scaleX-1)||Tt(this.scaleY-1)||Tt(this.skewX)||Tt(this.skewY)},r.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,e=this.needLocalTransform(),i=this.transform;if(!(e||t)){i&&Di(i);return}i=i||ar(),e?this.getLocalTransform(i):Di(i),t&&(e?Ur(i,t,i):fi(i,t)),this.transform=i,this._resolveGlobalScaleRatio(i)},r.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(e!=null&&e!==1){this.getGlobalScale(bt);var i=bt[0]<0?-1:1,a=bt[1]<0?-1:1,n=((bt[0]-i)*e+i)/bt[0]||0,o=((bt[1]-a)*e+a)/bt[1]||0;t[0]*=n,t[1]*=n,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||ar(),ba(this.invTransform,t)},r.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},r.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],i=t[2]*t[2]+t[3]*t[3],a=Math.atan2(t[1],t[0]),n=Math.PI/2+a-Math.atan2(t[3],t[2]);i=Math.sqrt(i)*Math.cos(n),e=Math.sqrt(e),this.skewX=n,this.skewY=0,this.rotation=-a,this.x=+t[4],this.y=+t[5],this.scaleX=e,this.scaleY=i,this.originX=0,this.originY=0}},r.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(Ur(Zt,t.invTransform,e),e=Zt);var i=this.originX,a=this.originY;(i||a)&&(ve[4]=i,ve[5]=a,Ur(Zt,e,ve),Zt[4]-=i,Zt[5]-=a,e=Zt),this.setLocalTransform(e)}},r.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},r.prototype.transformCoordToLocal=function(t,e){var i=[t,e],a=this.invTransform;return a&&Ae(i,i,a),i},r.prototype.transformCoordToGlobal=function(t,e){var i=[t,e],a=this.transform;return a&&Ae(i,i,a),i},r.prototype.getLineScale=function(){var t=this.transform;return t&&ce(t[0]-1)>1e-10&&ce(t[3]-1)>1e-10?Math.sqrt(ce(t[0]*t[3]-t[2]*t[1])):1},r.prototype.copyTransform=function(t){qo(this,t)},r.getLocalTransform=function(t,e){e=e||[];var i=t.originX||0,a=t.originY||0,n=t.scaleX,o=t.scaleY,s=t.anchorX,f=t.anchorY,h=t.rotation||0,u=t.x,l=t.y,v=t.skewX?Math.tan(t.skewX):0,c=t.skewY?Math.tan(-t.skewY):0;if(i||a||s||f){var p=i+s,g=a+f;e[4]=-p*n-v*g*o,e[5]=-g*o-c*p*n}else e[4]=e[5]=0;return e[0]=n,e[3]=o,e[1]=c*n,e[2]=v*o,h&&wa(e,e,h),e[4]+=i+u,e[5]+=a+l,e},r.initDefaultProps=function(){var t=r.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),r}(),br=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function qo(r,t){for(var e=0;e=0?parseFloat(r)/100*t:parseFloat(r):r}function Xo(r,t,e){var i=t.position||"inside",a=t.distance!=null?t.distance:5,n=e.height,o=e.width,s=n/2,f=e.x,h=e.y,u="left",l="top";if(i instanceof Array)f+=Pr(i[0],e.width),h+=Pr(i[1],e.height),u=null,l=null;else switch(i){case"left":f-=a,h+=s,u="right",l="middle";break;case"right":f+=a+o,h+=s,l="middle";break;case"top":f+=o/2,h-=a,u="center",l="bottom";break;case"bottom":f+=o/2,h+=n+a,u="center";break;case"inside":f+=o/2,h+=s,u="center",l="middle";break;case"insideLeft":f+=a,h+=s,l="middle";break;case"insideRight":f+=o-a,h+=s,u="right",l="middle";break;case"insideTop":f+=o/2,h+=a,u="center";break;case"insideBottom":f+=o/2,h+=n-a,u="center",l="bottom";break;case"insideTopLeft":f+=a,h+=a;break;case"insideTopRight":f+=o-a,h+=a,u="right";break;case"insideBottomLeft":f+=a,h+=n-a,l="bottom";break;case"insideBottomRight":f+=o-a,h+=n-a,u="right",l="bottom";break}return r=r||{},r.x=f,r.y=h,r.align=u,r.verticalAlign=l,r}var pe="__zr_normal__",de=br.concat(["ignore"]),zo=Mr(br,function(r,t){return r[t]=!0,r},{ignore:!1}),Vt={},Uo=new X(0,0,0,0),li=function(){function r(t){this.id=ua(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return r.prototype._init=function(t){this.attr(t)},r.prototype.drift=function(t,e,i){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0;break}var a=this.transform;a||(a=this.transform=[1,0,0,1,0,0]),a[4]+=t,a[5]+=e,this.decomposeTransform(),this.markRedraw()},r.prototype.beforeUpdate=function(){},r.prototype.afterUpdate=function(){},r.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},r.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var i=this.textConfig,a=i.local,n=e.innerTransformable,o=void 0,s=void 0,f=!1;n.parent=a?this:null;var h=!1;if(n.copyTransform(e),i.position!=null){var u=Uo;i.layoutRect?u.copy(i.layoutRect):u.copy(this.getBoundingRect()),a||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Vt,i,u):Xo(Vt,i,u),n.x=Vt.x,n.y=Vt.y,o=Vt.align,s=Vt.verticalAlign;var l=i.origin;if(l&&i.rotation!=null){var v=void 0,c=void 0;l==="center"?(v=u.width*.5,c=u.height*.5):(v=Pr(l[0],u.width),c=Pr(l[1],u.height)),h=!0,n.originX=-n.x+v+(a?0:u.x),n.originY=-n.y+c+(a?0:u.y)}}i.rotation!=null&&(n.rotation=i.rotation);var p=i.offset;p&&(n.x+=p[0],n.y+=p[1],h||(n.originX=-p[0],n.originY=-p[1]));var g=i.inside==null?typeof i.position=="string"&&i.position.indexOf("inside")>=0:i.inside,d=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),_=void 0,y=void 0,w=void 0;g&&this.canBeInsideText()?(_=i.insideFill,y=i.insideStroke,(_==null||_==="auto")&&(_=this.getInsideTextFill()),(y==null||y==="auto")&&(y=this.getInsideTextStroke(_),w=!0)):(_=i.outsideFill,y=i.outsideStroke,(_==null||_==="auto")&&(_=this.getOutsideFill()),(y==null||y==="auto")&&(y=this.getOutsideStroke(_),w=!0)),_=_||"#000",(_!==d.fill||y!==d.stroke||w!==d.autoStroke||o!==d.align||s!==d.verticalAlign)&&(f=!0,d.fill=_,d.stroke=y,d.autoStroke=w,d.align=o,d.verticalAlign=s,e.setDefaultTextStyle(d)),e.__dirty|=nt,f&&e.dirtyStyle(!0)}},r.prototype.canBeInsideText=function(){return!0},r.prototype.getInsideTextFill=function(){return"#fff"},r.prototype.getInsideTextStroke=function(t){return"#000"},r.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Ge:qe},r.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),i=typeof e=="string"&&z(e);i||(i=[255,255,255,1]);for(var a=i[3],n=this.__zr.isDarkMode(),o=0;o<3;o++)i[o]=i[o]*a+(n?0:255)*(1-a);return i[3]=1,Nt(i,"rgba")},r.prototype.traverse=function(t,e){},r.prototype.attrKV=function(t,e){t==="textConfig"?this.setTextConfig(e):t==="textContent"?this.setTextContent(e):t==="clipPath"?this.setClipPath(e):t==="extra"?(this.extra=this.extra||{},O(this.extra,e)):this[t]=e},r.prototype.hide=function(){this.ignore=!0,this.markRedraw()},r.prototype.show=function(){this.ignore=!1,this.markRedraw()},r.prototype.attr=function(t,e){if(typeof t=="string")this.attrKV(t,e);else if(ut(t))for(var i=t,a=G(i),n=0;n0},r.prototype.getState=function(t){return this.states[t]},r.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},r.prototype.clearStates=function(t){this.useState(pe,!1,t)},r.prototype.useState=function(t,e,i,a){var n=t===pe,o=this.hasState();if(!(!o&&n)){var s=this.currentStates,f=this.stateTransition;if(!(Ft(s,t)>=0&&(e||s.length===1))){var h;if(this.stateProxy&&!n&&(h=this.stateProxy(t)),h||(h=this.states&&this.states[t]),!h&&!n){Je("State "+t+" not exists.");return}n||this.saveCurrentToNormalState(h);var u=!!(h&&h.hoverLayer||a);u&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,h,this._normalState,e,!i&&!this.__inHover&&f&&f.duration>0,f);var l=this._textContent,v=this._textGuide;return l&&l.useState(t,e,i,u),v&&v.useState(t,e,i,u),n?(this.currentStates=[],this._normalState={}):e?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!u&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~nt),h}}},r.prototype.useStates=function(t,e,i){if(!t.length)this.clearStates();else{var a=[],n=this.currentStates,o=t.length,s=o===n.length;if(s){for(var f=0;f0,p);var g=this._textContent,d=this._textGuide;g&&g.useStates(t,e,v),d&&d.useStates(t,e,v),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!v&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~nt)}},r.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var i=this.currentStates.slice();i.splice(e,1),this.useStates(i)}},r.prototype.replaceState=function(t,e,i){var a=this.currentStates.slice(),n=Ft(a,t),o=Ft(a,e)>=0;n>=0?o?a.splice(n,1):a[n]=e:i&&!o&&a.push(e),this.useStates(a)},r.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},r.prototype._mergeStates=function(t){for(var e={},i,a=0;a=0&&n.splice(o,1)}),this.animators.push(t),i&&i.animation.addAnimator(t),i&&i.wakeUp()},r.prototype.updateDuringAnimation=function(t){this.markRedraw()},r.prototype.stopAnimation=function(t,e){for(var i=this.animators,a=i.length,n=[],o=0;o0&&e.during&&n[0].during(function(p,g){e.during(g)});for(var v=0;v0||a.force&&!o.length){var C=void 0,x=void 0,R=void 0;if(s){x={},v&&(C={});for(var T=0;T=o;f++)s-=o;var h=U(e,t);return h>s&&(e="",h=0),s=r-h,a.ellipsis=e,a.ellipsisWidth=h,a.contentWidth=s,a.containerWidth=r,a}function qa(r,t){var e=t.containerWidth,i=t.font,a=t.contentWidth;if(!e)return"";var n=U(r,i);if(n<=e)return r;for(var o=0;;o++){if(n<=a||o>=t.maxIterations){r+=t.ellipsis;break}var s=o===0?ts(r,a,t.ascCharWidth,t.cnCharWidth):n>0?Math.floor(r.length*a/n):0;r=r.substr(0,s),n=U(r,i)}return r===""&&(r=t.placeholder),r}function ts(r,t,e,i){for(var a=0,n=0,o=r.length;nc&&h){var p=Math.floor(c/s);l=l.slice(0,p)}if(r&&n&&u!=null)for(var g=$a(u,a,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),d=0;ds&&me(e,r.substring(s,h),t,o),me(e,f[2],t,o,f[1]),s=ye.lastIndex}sa){b>0?(y.tokens=y.tokens.slice(0,b),d(y,T,w),e.lines=e.lines.slice(0,_+1)):e.lines=e.lines.slice(0,_);break t}var L=S.width,E=L==null||L==="auto";if(typeof L=="string"&&L.charAt(L.length-1)==="%")m.percentWidth=L,u.push(m),m.contentWidth=U(m.text,R);else{if(E){var D=S.backgroundColor,A=D&&D.image;A&&(A=Jo(A),ne(A)&&(m.width=Math.max(m.width,A.width*P/A.height)))}var M=p&&i!=null?i-T:null;M!=null&&M0&&p+i.accumWidth>i.width&&(u=t.split(` +`),h=!0),i.accumWidth=p}else{var g=Ga(t,f,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+c,l=g.linesWidths,u=g.lines}}else u=t.split(` +`);for(var d=0;d=32&&t<=591||t>=880&&t<=4351||t>=4608&&t<=5119||t>=7680&&t<=8303}var os=Mr(",&?/;] ".split(""),function(r,t){return r[t]=!0,r},{});function ss(r){return ns(r)?!!os[r]:!0}function Ga(r,t,e,i,a){for(var n=[],o=[],s="",f="",h=0,u=0,l=0;le:a+u+c>e){u?(s||f)&&(p?(s||(s=f,f="",h=0,u=h),n.push(s),o.push(u-h),f+=v,h+=c,s="",u=h):(f&&(s+=f,f="",h=0),n.push(s),o.push(u),s=v,u=c)):p?(n.push(f),o.push(h),f=v,h=c):(n.push(v),o.push(c));continue}u+=c,p?(f+=v,h+=c):(f&&(s+=f,f="",h=0),s+=v)}return!n.length&&!s&&(s=r,f="",h=0),f&&(s+=f),s&&(n.push(s),o.push(u)),n.length===1&&(u+=a),{accumWidth:u,lines:n,linesWidths:o}}var ze="__zr_style_"+Math.round(Math.random()*10),It={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},oe={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};It[ze]=!0;var Bi=["z","z2","invisible"],fs=["invisible"],hs=function(r){pt(t,r);function t(e){return r.call(this,e)||this}return t.prototype._init=function(e){for(var i=G(e),a=0;a1e-4){s[0]=r-e,s[1]=t-i,f[0]=r+e,f[1]=t+i;return}if(Yr[0]=Pe(a)*e+r,Yr[1]=be(a)*i+t,$r[0]=Pe(n)*e+r,$r[1]=be(n)*i+t,h(s,Yr,$r),u(f,Yr,$r),a=a%Pt,a<0&&(a=a+Pt),n=n%Pt,n<0&&(n=n+Pt),a>n&&!o?n+=Pt:aa&&(qr[0]=Pe(c)*e+r,qr[1]=be(c)*i+t,h(s,qr,s),u(f,qr,f))}var F={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ct=[],St=[],j=[],st=[],tt=[],rt=[],Ce=Math.min,Se=Math.max,Mt=Math.cos,Lt=Math.sin,it=Math.abs,Ue=Math.PI,ht=Ue*2,Me=typeof Float32Array<"u",lr=[];function Le(r){var t=Math.round(r/Ue*1e8)/1e8;return t%2*Ue}function ps(r,t){var e=Le(r[0]);e<0&&(e+=ht);var i=e-r[0],a=r[1];a+=i,!t&&a-e>=ht?a=e+ht:t&&e-a>=ht?a=e-ht:!t&&e>a?a=e+(ht-Le(e-a)):t&&e0&&(this._ux=it(i/xi/t)||0,this._uy=it(i/xi/e)||0)},r.prototype.setDPR=function(t){this.dpr=t},r.prototype.setContext=function(t){this._ctx=t},r.prototype.getContext=function(){return this._ctx},r.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},r.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},r.prototype.moveTo=function(t,e){return this._drawPendingPt(),this.addData(F.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},r.prototype.lineTo=function(t,e){var i=it(t-this._xi),a=it(e-this._yi),n=i>this._ux||a>this._uy;if(this.addData(F.L,t,e),this._ctx&&n&&this._ctx.lineTo(t,e),n)this._xi=t,this._yi=e,this._pendingPtDist=0;else{var o=i*i+a*a;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=e,this._pendingPtDist=o)}return this},r.prototype.bezierCurveTo=function(t,e,i,a,n,o){return this._drawPendingPt(),this.addData(F.C,t,e,i,a,n,o),this._ctx&&this._ctx.bezierCurveTo(t,e,i,a,n,o),this._xi=n,this._yi=o,this},r.prototype.quadraticCurveTo=function(t,e,i,a){return this._drawPendingPt(),this.addData(F.Q,t,e,i,a),this._ctx&&this._ctx.quadraticCurveTo(t,e,i,a),this._xi=i,this._yi=a,this},r.prototype.arc=function(t,e,i,a,n,o){this._drawPendingPt(),lr[0]=a,lr[1]=n,ps(lr,o),a=lr[0],n=lr[1];var s=n-a;return this.addData(F.A,t,e,i,i,a,s,0,o?0:1),this._ctx&&this._ctx.arc(t,e,i,a,n,o),this._xi=Mt(n)*i+t,this._yi=Lt(n)*i+e,this},r.prototype.arcTo=function(t,e,i,a,n){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,e,i,a,n),this},r.prototype.rect=function(t,e,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,e,i,a),this.addData(F.R,t,e,i,a),this},r.prototype.closePath=function(){this._drawPendingPt(),this.addData(F.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&t.closePath(),this._xi=e,this._yi=i,this},r.prototype.fill=function(t){t&&t.fill(),this.toStatic()},r.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},r.prototype.len=function(){return this._len},r.prototype.setData=function(t){var e=t.length;!(this.data&&this.data.length===e)&&Me&&(this.data=new Float32Array(e));for(var i=0;iu.length&&(this._expandData(),u=this.data);for(var l=0;l0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},r.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e11&&(this.data=new Float32Array(t)))}},r.prototype.getBoundingRect=function(){j[0]=j[1]=tt[0]=tt[1]=Number.MAX_VALUE,st[0]=st[1]=rt[0]=rt[1]=-Number.MAX_VALUE;var t=this.data,e=0,i=0,a=0,n=0,o;for(o=0;oi||it(w)>a||v===e-1)&&(g=Math.sqrt(y*y+w*w),n=d,o=_);break}case F.C:{var T=t[v++],b=t[v++],d=t[v++],_=t[v++],m=t[v++],S=t[v++];g=uo(n,o,T,b,d,_,m,S,10),n=m,o=S;break}case F.Q:{var T=t[v++],b=t[v++],d=t[v++],_=t[v++];g=co(n,o,T,b,d,_,10),n=d,o=_;break}case F.A:var C=t[v++],x=t[v++],R=t[v++],P=t[v++],L=t[v++],E=t[v++],D=E+L;v+=1,t[v++],p&&(s=Mt(L)*R+C,f=Lt(L)*P+x),g=Se(R,P)*Ce(ht,Math.abs(E)),n=Mt(D)*R+C,o=Lt(D)*P+x;break;case F.R:{s=n=t[v++],f=o=t[v++];var A=t[v++],M=t[v++];g=A*2+M*2;break}case F.Z:{var y=s-n,w=f-o;g=Math.sqrt(y*y+w*w),n=s,o=f;break}}g>=0&&(h[l++]=g,u+=g)}return this._pathLen=u,u},r.prototype.rebuildPath=function(t,e){var i=this.data,a=this._ux,n=this._uy,o=this._len,s,f,h,u,l,v,c=e<1,p,g,d=0,_=0,y,w=0,T,b;if(!(c&&(this._pathSegLen||this._calculateLength(),p=this._pathSegLen,g=this._pathLen,y=e*g,!y)))t:for(var m=0;m0&&(t.lineTo(T,b),w=0),S){case F.M:s=h=i[m++],f=u=i[m++],t.moveTo(h,u);break;case F.L:{l=i[m++],v=i[m++];var x=it(l-h),R=it(v-u);if(x>a||R>n){if(c){var P=p[_++];if(d+P>y){var L=(y-d)/P;t.lineTo(h*(1-L)+l*L,u*(1-L)+v*L);break t}d+=P}t.lineTo(l,v),h=l,u=v,w=0}else{var E=x*x+R*R;E>w&&(T=l,b=v,w=E)}break}case F.C:{var D=i[m++],A=i[m++],M=i[m++],ot=i[m++],Yt=i[m++],$t=i[m++];if(c){var P=p[_++];if(d+P>y){var L=(y-d)/P;Ti(h,D,M,Yt,L,Ct),Ti(u,A,ot,$t,L,St),t.bezierCurveTo(Ct[1],St[1],Ct[2],St[2],Ct[3],St[3]);break t}d+=P}t.bezierCurveTo(D,A,M,ot,Yt,$t),h=Yt,u=$t;break}case F.Q:{var D=i[m++],A=i[m++],M=i[m++],ot=i[m++];if(c){var P=p[_++];if(d+P>y){var L=(y-d)/P;bi(h,D,M,L,Ct),bi(u,A,ot,L,St),t.quadraticCurveTo(Ct[1],St[1],Ct[2],St[2]);break t}d+=P}t.quadraticCurveTo(D,A,M,ot),h=M,u=ot;break}case F.A:var _t=i[m++],xr=i[m++],qt=i[m++],Gt=i[m++],Xt=i[m++],ci=i[m++],tn=i[m++],pi=!i[m++],rn=qt>Gt?qt:Gt,en=it(qt-Gt)>.001,or=Xt+ci,di=!1;if(c){var P=p[_++];d+P>y&&(or=Xt+ci*(y-d)/P,di=!0),d+=P}if(en&&t.ellipse?t.ellipse(_t,xr,qt,Gt,tn,Xt,or,pi):t.arc(_t,xr,rn,Xt,or,pi),di)break t;C&&(s=Mt(Xt)*qt+_t,f=Lt(Xt)*Gt+xr),h=Mt(or)*qt+_t,u=Lt(or)*Gt+xr;break;case F.R:s=h=i[m],f=u=i[m+1],l=i[m++],v=i[m++];var zt=i[m++],sr=i[m++];if(c){var P=p[_++];if(d+P>y){var J=y-d;t.moveTo(l,v),t.lineTo(l+Ce(J,zt),v),J-=zt,J>0&&t.lineTo(l+zt,v+Ce(J,sr)),J-=sr,J>0&&t.lineTo(l+Se(zt-J,0),v+sr),J-=zt,J>0&&t.lineTo(l,v+Se(sr-J,0));break t}d+=P}t.rect(l,v,zt,sr);break;case F.Z:if(c){var P=p[_++];if(d+P>y){var L=(y-d)/P;t.lineTo(h*(1-L)+s*L,u*(1-L)+f*L);break t}d+=P}t.closePath(),h=s,u=f}}},r.prototype.clone=function(){var t=new r,e=this.data;return t.data=e.slice?e.slice():Array.prototype.slice.call(e),t._len=this._len,t},r.CMD=F,r.initDefaultProps=function(){var t=r.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),r}();const vi=ds;function Kt(r,t,e,i,a,n,o){if(a===0)return!1;var s=a,f=0,h=r;if(o>t+s&&o>i+s||or+s&&n>e+s||nt+l&&u>i+l&&u>n+l&&u>s+l||ur+l&&h>e+l&&h>a+l&&h>o+l||ht+h&&f>i+h&&f>n+h||fr+h&&s>e+h&&s>a+h||se||u+ha&&(a+=vr);var v=Math.atan2(f,s);return v<0&&(v+=vr),v>=i&&v<=a||v+vr>=i&&v+vr<=a}function Rt(r,t,e,i,a,n){if(n>t&&n>i||na?s:0}var ft=vi.CMD,xt=Math.PI*2,ms=1e-4;function ws(r,t){return Math.abs(r-t)t&&h>i&&h>n&&h>s||h1&&Ts(),c=B(t,i,n,s,V[0]),v>1&&(p=B(t,i,n,s,V[1]))),v===2?dt&&s>i&&s>n||s=0&&h<=1){for(var u=0,l=N(t,i,n,h),v=0;ve||s<-e)return 0;var f=Math.sqrt(e*e-s*s);H[0]=-f,H[1]=f;var h=Math.abs(i-a);if(h<1e-4)return 0;if(h>=xt-1e-4){i=0,a=xt;var u=n?1:-1;return o>=H[0]+r&&o<=H[1]+r?u:0}if(i>a){var l=i;i=a,a=l}i<0&&(i+=xt,a+=xt);for(var v=0,c=0;c<2;c++){var p=H[c];if(p+r>o){var g=Math.atan2(s,p),u=n?1:-1;g<0&&(g=xt+g),(g>=i&&g<=a||g+xt>=i&&g+xt<=a)&&(g>Math.PI/2&&g1&&(e||(s+=Rt(f,h,u,l,i,a))),d&&(f=n[p],h=n[p+1],u=f,l=h),g){case ft.M:u=n[p++],l=n[p++],f=u,h=l;break;case ft.L:if(e){if(Kt(f,h,n[p],n[p+1],t,i,a))return!0}else s+=Rt(f,h,n[p],n[p+1],i,a)||0;f=n[p++],h=n[p++];break;case ft.C:if(e){if(_s(f,h,n[p++],n[p++],n[p++],n[p++],n[p],n[p+1],t,i,a))return!0}else s+=bs(f,h,n[p++],n[p++],n[p++],n[p++],n[p],n[p+1],i,a)||0;f=n[p++],h=n[p++];break;case ft.Q:if(e){if(gs(f,h,n[p++],n[p++],n[p],n[p+1],t,i,a))return!0}else s+=Ps(f,h,n[p++],n[p++],n[p],n[p+1],i,a)||0;f=n[p++],h=n[p++];break;case ft.A:var _=n[p++],y=n[p++],w=n[p++],T=n[p++],b=n[p++],m=n[p++];p+=1;var S=!!(1-n[p++]);v=Math.cos(b)*w+_,c=Math.sin(b)*T+y,d?(u=v,l=c):s+=Rt(f,h,v,c,i,a);var C=(i-_)*T/w+_;if(e){if(ys(_,y,T,b,b+m,S,t,C,a))return!0}else s+=Cs(_,y,T,b,b+m,S,C,a);f=Math.cos(b+m)*w+_,h=Math.sin(b+m)*T+y;break;case ft.R:u=f=n[p++],l=h=n[p++];var x=n[p++],R=n[p++];if(v=u+x,c=l+R,e){if(Kt(u,l,v,l,t,i,a)||Kt(v,l,v,c,t,i,a)||Kt(v,c,u,c,t,i,a)||Kt(u,c,u,l,t,i,a))return!0}else s+=Rt(v,l,v,c,i,a),s+=Rt(u,c,u,l,i,a);break;case ft.Z:if(e){if(Kt(f,h,u,l,t,i,a))return!0}else s+=Rt(f,h,u,l,i,a);f=u,h=l;break}}return!e&&!ws(h,l)&&(s+=Rt(f,h,u,l,i,a)||0),s!==0}function Ss(r,t,e){return Xa(r,0,!1,t,e)}function Ms(r,t,e,i){return Xa(r,t,!0,e,i)}var za=dt({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},It),Ls={style:dt({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},oe.style)},Re=br.concat(["invisible","culling","z","z2","zlevel","parent"]),Rs=function(r){pt(t,r);function t(e){return r.call(this,e)||this}return t.prototype.update=function(){var e=this;r.prototype.update.call(this);var i=this.style;if(i.decal){var a=this._decalEl=this._decalEl||new t;a.buildPath===t.prototype.buildPath&&(a.buildPath=function(f){e.buildPath(f,e.shape)}),a.silent=!0;var n=a.style;for(var o in i)n[o]!==i[o]&&(n[o]=i[o]);n.fill=i.fill?i.decal:null,n.decal=null,n.shadowColor=null,i.strokeFirst&&(n.stroke=null);for(var s=0;s.5?qe:i>.2?Yo:Ge}else if(e)return Ge}return qe},t.prototype.getInsideTextStroke=function(e){var i=this.style.fill;if(kr(i)){var a=this.__zr,n=!!(a&&a.isDarkMode()),o=We(e,0)0))},t.prototype.hasFill=function(){var e=this.style,i=e.fill;return i!=null&&i!=="none"},t.prototype.getBoundingRect=function(){var e=this._rect,i=this.style,a=!e;if(a){var n=!1;this.path||(n=!0,this.createPathProxy());var o=this.path;(n||this.__dirty&Qt)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),e=o.getBoundingRect()}if(this._rect=e,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=e.clone());if(this.__dirty||a){s.copy(e);var f=i.strokeNoScale?this.getLineScale():1,h=i.lineWidth;if(!this.hasFill()){var u=this.strokeContainThreshold;h=Math.max(h,u??4)}f>1e-10&&(s.width+=h/f,s.height+=h/f,s.x-=h/f/2,s.y-=h/f/2)}return s}return e},t.prototype.contain=function(e,i){var a=this.transformCoordToLocal(e,i),n=this.getBoundingRect(),o=this.style;if(e=a[0],i=a[1],n.contain(e,i)){var s=this.path;if(this.hasStroke()){var f=o.lineWidth,h=o.strokeNoScale?this.getLineScale():1;if(h>1e-10&&(this.hasFill()||(f=Math.max(f,this.strokeContainThreshold)),Ms(s,f/h,e,i)))return!0}if(this.hasFill())return Ss(s,e,i)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Qt,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(e){return this.animate("shape",e)},t.prototype.updateDuringAnimation=function(e){e==="style"?this.dirtyStyle():e==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(e,i){e==="shape"?this.setShape(i):r.prototype.attrKV.call(this,e,i)},t.prototype.setShape=function(e,i){var a=this.shape;return a||(a=this.shape={}),typeof e=="string"?a[e]=i:O(a,e),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Qt)},t.prototype.createStyle=function(e){return Rr(za,e)},t.prototype._innerSaveToNormal=function(e){r.prototype._innerSaveToNormal.call(this,e);var i=this._normalState;e.shape&&!i.shape&&(i.shape=O({},this.shape))},t.prototype._applyStateObj=function(e,i,a,n,o,s){r.prototype._applyStateObj.call(this,e,i,a,n,o,s);var f=!(i&&n),h;if(i&&i.shape?o?n?h=i.shape:(h=O({},a.shape),O(h,i.shape)):(h=O({},n?this.shape:a.shape),O(h,i.shape)):f&&(h=a.shape),h)if(o){this.shape=O({},this.shape);for(var u={},l=G(h),v=0;v0},t.prototype.hasFill=function(){var e=this.style,i=e.fill;return i!=null&&i!=="none"},t.prototype.createStyle=function(e){return Rr(xs,e)},t.prototype.setBoundingRect=function(e){this._rect=e},t.prototype.getBoundingRect=function(){var e=this.style;if(!this._rect){var i=e.text;i!=null?i+="":i="";var a=Go(i,e.font,e.textAlign,e.textBaseline);if(a.x+=e.x||0,a.y+=e.y||0,this.hasStroke()){var n=e.lineWidth;a.x-=n/2,a.y-=n/2,a.width+=n,a.height+=n}this._rect=a}return this._rect},t.initDefaultProps=function(){var e=t.prototype;e.dirtyRectTolerance=10}(),t}(se);Ua.prototype.type="tspan";const Ze=Ua;var Ds=dt({x:0,y:0},It),Fs={style:dt({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},oe.style)};function Os(r){return!!(r&&typeof r!="string"&&r.width&&r.height)}var Za=function(r){pt(t,r);function t(){return r!==null&&r.apply(this,arguments)||this}return t.prototype.createStyle=function(e){return Rr(Ds,e)},t.prototype._getSize=function(e){var i=this.style,a=i[e];if(a!=null)return a;var n=Os(i.image)?i.image:this.__image;if(!n)return 0;var o=e==="width"?"height":"width",s=i[o];return s==null?n[e]:n[e]/n[o]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return Fs},t.prototype.getBoundingRect=function(){var e=this.style;return this._rect||(this._rect=new X(e.x||0,e.y||0,this.getWidth(),this.getHeight())),this._rect},t}(se);Za.prototype.type="image";const Va=Za;function As(r,t){var e=t.x,i=t.y,a=t.width,n=t.height,o=t.r,s,f,h,u;a<0&&(e=e+a,a=-a),n<0&&(i=i+n,n=-n),typeof o=="number"?s=f=h=u=o:o instanceof Array?o.length===1?s=f=h=u=o[0]:o.length===2?(s=h=o[0],f=u=o[1]):o.length===3?(s=o[0],f=u=o[1],h=o[2]):(s=o[0],f=o[1],h=o[2],u=o[3]):s=f=h=u=0;var l;s+f>a&&(l=s+f,s*=a/l,f*=a/l),h+u>a&&(l=h+u,h*=a/l,u*=a/l),f+h>n&&(l=f+h,f*=n/l,h*=n/l),s+u>n&&(l=s+u,s*=n/l,u*=n/l),r.moveTo(e+s,i),r.lineTo(e+a-f,i),f!==0&&r.arc(e+a-f,i+f,f,-Math.PI/2,0),r.lineTo(e+a,i+n-h),h!==0&&r.arc(e+a-h,i+n-h,h,0,Math.PI/2),r.lineTo(e+u,i+n),u!==0&&r.arc(e+u,i+n-u,u,Math.PI/2,Math.PI),r.lineTo(e,i+s),s!==0&&r.arc(e+s,i+s,s,Math.PI,Math.PI*1.5)}var jt=Math.round;function xf(r,t,e){if(t){var i=t.x1,a=t.x2,n=t.y1,o=t.y2;r.x1=i,r.x2=a,r.y1=n,r.y2=o;var s=e&&e.lineWidth;return s&&(jt(i*2)===jt(a*2)&&(r.x1=r.x2=tr(i,s,!0)),jt(n*2)===jt(o*2)&&(r.y1=r.y2=tr(n,s,!0))),r}}function Es(r,t,e){if(t){var i=t.x,a=t.y,n=t.width,o=t.height;r.x=i,r.y=a,r.width=n,r.height=o;var s=e&&e.lineWidth;return s&&(r.x=tr(i,s,!0),r.y=tr(a,s,!0),r.width=Math.max(tr(i+n,s,!1)-r.x,n===0?0:1),r.height=Math.max(tr(a+o,s,!1)-r.y,o===0?0:1)),r}}function tr(r,t,e){if(!t)return r;var i=jt(r*2);return(i+jt(t))%2===0?i/2:(i+(e?1:-1))/2}var Is=function(){function r(){this.x=0,this.y=0,this.width=0,this.height=0}return r}(),Bs={},Ka=function(r){pt(t,r);function t(e){return r.call(this,e)||this}return t.prototype.getDefaultShape=function(){return new Is},t.prototype.buildPath=function(e,i){var a,n,o,s;if(this.subPixelOptimize){var f=Es(Bs,i,this.style);a=f.x,n=f.y,o=f.width,s=f.height,f.r=i.r,i=f}else a=i.x,n=i.y,o=i.width,s=i.height;i.r?As(e,i):e.rect(a,n,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(Cr);Ka.prototype.type="rect";const Hs=Ka;var $i={fill:"#000"},qi=2,Ws={style:dt({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},oe.style)},Qa=function(r){pt(t,r);function t(e){var i=r.call(this)||this;return i.type="text",i._children=[],i._defaultStyle=$i,i.attr(e),i}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){r.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var e=0;e0,L=e.width!=null&&(e.overflow==="truncate"||e.overflow==="break"||e.overflow==="breakAll"),E=o.calculatedLineHeight,D=0;D=0&&(D=m[E],D.align==="right");)this._placeToken(D,e,C,_,L,"right",w),x-=D.width,L-=D.width,E--;for(P+=(n-(P-d)-(y-L)-x)/2;R<=E;)D=m[R],this._placeToken(D,e,C,_,P+D.width/2,"center",w),P+=D.width,R++;_+=C}},t.prototype._placeToken=function(e,i,a,n,o,s,f){var h=i.rich[e.styleName]||{};h.text=e.text;var u=e.verticalAlign,l=n+a/2;u==="top"?l=n+e.height/2:u==="bottom"&&(l=n+a-e.height/2);var v=!e.isLineHolder&&xe(h);v&&this._renderBackground(h,i,s==="right"?o-e.width:s==="center"?o-e.width/2:o,l-e.height/2,e.width,e.height);var c=!!h.backgroundColor,p=e.textPadding;p&&(o=Vi(o,s,p),l-=e.height/2-p[0]-e.innerHeight/2);var g=this._getOrCreateChild(Ze),d=g.createStyle();g.useStyle(d);var _=this._defaultStyle,y=!1,w=0,T=Zi("fill"in h?h.fill:"fill"in i?i.fill:(y=!0,_.fill)),b=Ui("stroke"in h?h.stroke:"stroke"in i?i.stroke:!c&&!f&&(!_.autoStroke||y)?(w=qi,_.stroke):null),m=h.textShadowBlur>0||i.textShadowBlur>0;d.text=e.text,d.x=o,d.y=l,m&&(d.shadowBlur=h.textShadowBlur||i.textShadowBlur||0,d.shadowColor=h.textShadowColor||i.textShadowColor||"transparent",d.shadowOffsetX=h.textShadowOffsetX||i.textShadowOffsetX||0,d.shadowOffsetY=h.textShadowOffsetY||i.textShadowOffsetY||0),d.textAlign=s,d.textBaseline="middle",d.font=e.font||Bt,d.opacity=gr(h.opacity,i.opacity,1),Xi(d,h),b&&(d.lineWidth=gr(h.lineWidth,i.lineWidth,w),d.lineDash=W(h.lineDash,i.lineDash),d.lineDashOffset=i.lineDashOffset||0,d.stroke=b),T&&(d.fill=T);var S=e.contentWidth,C=e.contentHeight;g.setBoundingRect(new X(dr(d.x,S,d.textAlign),kt(d.y,C,d.textBaseline),S,C))},t.prototype._renderBackground=function(e,i,a,n,o,s){var f=e.backgroundColor,h=e.borderWidth,u=e.borderColor,l=f&&f.image,v=f&&!l,c=e.borderRadius,p=this,g,d;if(v||e.lineHeight||h&&u){g=this._getOrCreateChild(Hs),g.useStyle(g.createStyle()),g.style.fill=null;var _=g.shape;_.x=a,_.y=n,_.width=o,_.height=s,_.r=c,g.dirtyShape()}if(v){var y=g.style;y.fill=f||null,y.fillOpacity=W(e.fillOpacity,1)}else if(l){d=this._getOrCreateChild(Va),d.onload=function(){p.dirtyStyle()};var w=d.style;w.image=f.image,w.x=a,w.y=n,w.width=o,w.height=s}if(h&&u){var y=g.style;y.lineWidth=h,y.stroke=u,y.strokeOpacity=W(e.strokeOpacity,1),y.lineDash=e.borderDash,y.lineDashOffset=e.borderDashOffset||0,g.strokeContainThreshold=0,g.hasFill()&&g.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var T=(g||d).style;T.shadowBlur=e.shadowBlur||0,T.shadowColor=e.shadowColor||"transparent",T.shadowOffsetX=e.shadowOffsetX||0,T.shadowOffsetY=e.shadowOffsetY||0,T.opacity=gr(e.opacity,i.opacity,1)},t.makeFont=function(e){var i="";return qs(e)&&(i=[e.fontStyle,e.fontWeight,$s(e.fontSize),e.fontFamily||"sans-serif"].join(" ")),i&&Jt(i)||e.textFont||e.font},t}(se),Ns={left:!0,right:1,center:1},Ys={top:1,bottom:1,middle:1},Gi=["fontStyle","fontWeight","fontSize","fontFamily"];function $s(r){return typeof r=="string"&&(r.indexOf("px")!==-1||r.indexOf("rem")!==-1||r.indexOf("em")!==-1)?r:isNaN(+r)?Ke+"px":r+"px"}function Xi(r,t){for(var e=0;e=0&&Ot(f)?f:.5;var h=r.createRadialGradient(o,s,0,o,s,f);return h}function Qi(r,t,e){for(var i=t.type==="radial"?Us(r,t,e):zs(r,t,e),a=t.colorStops,n=0;n0)?null:r==="dashed"?[4*t,2*t]:r==="dotted"?[t]:_r(r)?[r]:wr(r)?r:null}function ka(r){var t=r.style,e=t.lineDash&&t.lineWidth>0&&Vs(t.lineDash,t.lineWidth),i=t.lineDashOffset;if(e){var a=t.strokeNoScale&&r.getLineScale?r.getLineScale():1;a&&a!==1&&(e=mr(e,function(n){return n/a}),i/=a)}return[e,i]}var Ks=new vi(!0);function re(r){var t=r.stroke;return!(t==null||t==="none"||!(r.lineWidth>0))}function ki(r){return typeof r=="string"&&r!=="none"}function ee(r){var t=r.fill;return t!=null&&t!=="none"}function Ji(r,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var e=r.globalAlpha;r.globalAlpha=t.fillOpacity*t.opacity,r.fill(),r.globalAlpha=e}else r.fill()}function ji(r,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var e=r.globalAlpha;r.globalAlpha=t.strokeOpacity*t.opacity,r.stroke(),r.globalAlpha=e}else r.stroke()}function ta(r,t,e){var i=Ya(t.image,t.__image,e);if(ne(i)){var a=r.createPattern(i,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&a&&a.setTransform){var n=new DOMMatrix;n.translateSelf(t.x||0,t.y||0),n.rotateSelf(0,0,(t.rotation||0)*yr),n.scaleSelf(t.scaleX||1,t.scaleY||1),a.setTransform(n)}return a}}function Qs(r,t,e,i){var a,n=re(e),o=ee(e),s=e.strokePercent,f=s<1,h=!t.path;(!t.silent||f)&&h&&t.createPathProxy();var u=t.path||Ks,l=t.__dirty;if(!i){var v=e.fill,c=e.stroke,p=o&&!!v.colorStops,g=n&&!!c.colorStops,d=o&&!!v.image,_=n&&!!c.image,y=void 0,w=void 0,T=void 0,b=void 0,m=void 0;(p||g)&&(m=t.getBoundingRect()),p&&(y=l?Qi(r,v,m):t.__canvasFillGradient,t.__canvasFillGradient=y),g&&(w=l?Qi(r,c,m):t.__canvasStrokeGradient,t.__canvasStrokeGradient=w),d&&(T=l||!t.__canvasFillPattern?ta(r,v,t):t.__canvasFillPattern,t.__canvasFillPattern=T),_&&(b=l||!t.__canvasStrokePattern?ta(r,c,t):t.__canvasStrokePattern,t.__canvasStrokePattern=T),p?r.fillStyle=y:d&&(T?r.fillStyle=T:o=!1),g?r.strokeStyle=w:_&&(b?r.strokeStyle=b:n=!1)}var S=t.getGlobalScale();u.setScale(S[0],S[1],t.segmentIgnoreThreshold);var C,x;r.setLineDash&&e.lineDash&&(a=ka(t),C=a[0],x=a[1]);var R=!0;(h||l&Qt)&&(u.setDPR(r.dpr),f?u.setContext(null):(u.setContext(r),R=!1),u.reset(),t.buildPath(u,t.shape,i),u.toStatic(),t.pathUpdated()),R&&u.rebuildPath(r,f?s:1),C&&(r.setLineDash(C),r.lineDashOffset=x),i||(e.strokeFirst?(n&&ji(r,e),o&&Ji(r,e)):(o&&Ji(r,e),n&&ji(r,e))),C&&r.setLineDash([])}function ks(r,t,e){var i=t.__image=Ya(e.image,t.__image,t,t.onload);if(!(!i||!ne(i))){var a=e.x||0,n=e.y||0,o=t.getWidth(),s=t.getHeight(),f=i.width/i.height;if(o==null&&s!=null?o=s*f:s==null&&o!=null?s=o/f:o==null&&s==null&&(o=i.width,s=i.height),e.sWidth&&e.sHeight){var h=e.sx||0,u=e.sy||0;r.drawImage(i,h,u,e.sWidth,e.sHeight,a,n,o,s)}else if(e.sx&&e.sy){var h=e.sx,u=e.sy,l=o-h,v=s-u;r.drawImage(i,h,u,l,v,a,n,o,s)}else r.drawImage(i,a,n,o,s)}}function Js(r,t,e){var i,a=e.text;if(a!=null&&(a+=""),a){r.font=e.font||Bt,r.textAlign=e.textAlign,r.textBaseline=e.textBaseline;var n=void 0,o=void 0;r.setLineDash&&e.lineDash&&(i=ka(t),n=i[0],o=i[1]),n&&(r.setLineDash(n),r.lineDashOffset=o),e.strokeFirst?(re(e)&&r.strokeText(a,e.x,e.y),ee(e)&&r.fillText(a,e.x,e.y)):(ee(e)&&r.fillText(a,e.x,e.y),re(e)&&r.strokeText(a,e.x,e.y)),n&&r.setLineDash([])}}var ra=["shadowBlur","shadowOffsetX","shadowOffsetY"],ea=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function Ja(r,t,e,i,a){var n=!1;if(!i&&(e=e||{},t===e))return!1;if(i||t.opacity!==e.opacity){q(r,a),n=!0;var o=Math.max(Math.min(t.opacity,1),0);r.globalAlpha=isNaN(o)?It.opacity:o}(i||t.blend!==e.blend)&&(n||(q(r,a),n=!0),r.globalCompositeOperation=t.blend||It.blend);for(var s=0;s 18; - } - if (weChat) { - browser.weChat = true; - } - env2.svgSupported = typeof SVGRect !== "undefined"; - env2.touchEventsSupported = "ontouchstart" in window && !browser.ie && !browser.edge; - env2.pointerEventsSupported = "onpointerdown" in window && (browser.edge || browser.ie && +browser.version >= 11); - env2.domSupported = typeof document !== "undefined"; - var style = document.documentElement.style; - env2.transform3dSupported = (browser.ie && "transition" in style || browser.edge || "WebKitCSSMatrix" in window && "m11" in new WebKitCSSMatrix() || "MozPerspective" in style) && !("OTransition" in style); - env2.transformSupported = env2.transform3dSupported || browser.ie && +browser.version >= 9; -} -const env$1 = env; -var DEFAULT_FONT_SIZE = 12; -var DEFAULT_FONT_FAMILY = "sans-serif"; -var DEFAULT_FONT = DEFAULT_FONT_SIZE + "px " + DEFAULT_FONT_FAMILY; -var OFFSET = 20; -var SCALE = 100; -var defaultWidthMapStr = "007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N"; -function getTextWidthMap(mapStr) { - var map2 = {}; - if (typeof JSON === "undefined") { - return map2; - } - for (var i = 0; i < mapStr.length; i++) { - var char = String.fromCharCode(i + 32); - var size = (mapStr.charCodeAt(i) - OFFSET) / SCALE; - map2[char] = size; - } - return map2; -} -var DEFAULT_TEXT_WIDTH_MAP = getTextWidthMap(defaultWidthMapStr); -var platformApi = { - createCanvas: function() { - return typeof document !== "undefined" && document.createElement("canvas"); - }, - measureText: function() { - var _ctx; - var _cachedFont; - return function(text, font) { - if (!_ctx) { - var canvas = platformApi.createCanvas(); - _ctx = canvas && canvas.getContext("2d"); - } - if (_ctx) { - if (_cachedFont !== font) { - _cachedFont = _ctx.font = font || DEFAULT_FONT; - } - return _ctx.measureText(text); - } else { - text = text || ""; - font = font || DEFAULT_FONT; - var res = /(\d+)px/.exec(font); - var fontSize = res && +res[1] || DEFAULT_FONT_SIZE; - var width = 0; - if (font.indexOf("mono") >= 0) { - width = fontSize * text.length; - } else { - for (var i = 0; i < text.length; i++) { - var preCalcWidth = DEFAULT_TEXT_WIDTH_MAP[text[i]]; - width += preCalcWidth == null ? fontSize : preCalcWidth * fontSize; - } - } - return { width }; - } - }; - }(), - loadImage: function(src, onload, onerror) { - var image = new Image(); - image.onload = onload; - image.onerror = onerror; - image.src = src; - return image; - } -}; -function setPlatformAPI(newPlatformApis) { - for (var key in platformApi) { - if (newPlatformApis[key]) { - platformApi[key] = newPlatformApis[key]; - } - } -} -var BUILTIN_OBJECT = reduce([ - "Function", - "RegExp", - "Date", - "Error", - "CanvasGradient", - "CanvasPattern", - "Image", - "Canvas" -], function(obj, val) { - obj["[object " + val + "]"] = true; - return obj; -}, {}); -var TYPED_ARRAY = reduce([ - "Int8", - "Uint8", - "Uint8Clamped", - "Int16", - "Uint16", - "Int32", - "Uint32", - "Float32", - "Float64" -], function(obj, val) { - obj["[object " + val + "Array]"] = true; - return obj; -}, {}); -var objToString = Object.prototype.toString; -var arrayProto = Array.prototype; -var nativeForEach = arrayProto.forEach; -var nativeFilter = arrayProto.filter; -var nativeSlice = arrayProto.slice; -var nativeMap = arrayProto.map; -var ctorFunction = function() { -}.constructor; -var protoFunction = ctorFunction ? ctorFunction.prototype : null; -var protoKey = "__proto__"; -var idStart = 2311; -function guid() { - return idStart++; -} -function logError() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - if (typeof console !== "undefined") { - console.error.apply(console, args); - } -} -function clone$2(source) { - if (source == null || typeof source !== "object") { - return source; - } - var result = source; - var typeStr = objToString.call(source); - if (typeStr === "[object Array]") { - if (!isPrimitive(source)) { - result = []; - for (var i = 0, len2 = source.length; i < len2; i++) { - result[i] = clone$2(source[i]); - } - } - } else if (TYPED_ARRAY[typeStr]) { - if (!isPrimitive(source)) { - var Ctor = source.constructor; - if (Ctor.from) { - result = Ctor.from(source); - } else { - result = new Ctor(source.length); - for (var i = 0, len2 = source.length; i < len2; i++) { - result[i] = source[i]; - } - } - } - } else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) { - result = {}; - for (var key in source) { - if (source.hasOwnProperty(key) && key !== protoKey) { - result[key] = clone$2(source[key]); - } - } - } - return result; -} -function merge(target, source, overwrite) { - if (!isObject(source) || !isObject(target)) { - return overwrite ? clone$2(source) : target; - } - for (var key in source) { - if (source.hasOwnProperty(key) && key !== protoKey) { - var targetProp = target[key]; - var sourceProp = source[key]; - if (isObject(sourceProp) && isObject(targetProp) && !isArray(sourceProp) && !isArray(targetProp) && !isDom(sourceProp) && !isDom(targetProp) && !isBuiltInObject(sourceProp) && !isBuiltInObject(targetProp) && !isPrimitive(sourceProp) && !isPrimitive(targetProp)) { - merge(targetProp, sourceProp, overwrite); - } else if (overwrite || !(key in target)) { - target[key] = clone$2(source[key]); - } - } - } - return target; -} -function mergeAll(targetAndSources, overwrite) { - var result = targetAndSources[0]; - for (var i = 1, len2 = targetAndSources.length; i < len2; i++) { - result = merge(result, targetAndSources[i], overwrite); - } - return result; -} -function extend(target, source) { - if (Object.assign) { - Object.assign(target, source); - } else { - for (var key in source) { - if (source.hasOwnProperty(key) && key !== protoKey) { - target[key] = source[key]; - } - } - } - return target; -} -function defaults(target, source, overlay) { - var keysArr = keys(source); - for (var i = 0; i < keysArr.length; i++) { - var key = keysArr[i]; - if (overlay ? source[key] != null : target[key] == null) { - target[key] = source[key]; - } - } - return target; -} -var createCanvas = platformApi.createCanvas; -function indexOf(array, value) { - if (array) { - if (array.indexOf) { - return array.indexOf(value); - } - for (var i = 0, len2 = array.length; i < len2; i++) { - if (array[i] === value) { - return i; - } - } - } - return -1; -} -function inherits(clazz, baseClazz) { - var clazzPrototype = clazz.prototype; - function F() { - } - F.prototype = baseClazz.prototype; - clazz.prototype = new F(); - for (var prop in clazzPrototype) { - if (clazzPrototype.hasOwnProperty(prop)) { - clazz.prototype[prop] = clazzPrototype[prop]; - } - } - clazz.prototype.constructor = clazz; - clazz.superClass = baseClazz; -} -function mixin(target, source, override) { - target = "prototype" in target ? target.prototype : target; - source = "prototype" in source ? source.prototype : source; - if (Object.getOwnPropertyNames) { - var keyList = Object.getOwnPropertyNames(source); - for (var i = 0; i < keyList.length; i++) { - var key = keyList[i]; - if (key !== "constructor") { - if (override ? source[key] != null : target[key] == null) { - target[key] = source[key]; - } - } - } - } else { - defaults(target, source, override); - } -} -function isArrayLike(data) { - if (!data) { - return false; - } - if (typeof data === "string") { - return false; - } - return typeof data.length === "number"; -} -function each(arr, cb, context) { - if (!(arr && cb)) { - return; - } - if (arr.forEach && arr.forEach === nativeForEach) { - arr.forEach(cb, context); - } else if (arr.length === +arr.length) { - for (var i = 0, len2 = arr.length; i < len2; i++) { - cb.call(context, arr[i], i, arr); - } - } else { - for (var key in arr) { - if (arr.hasOwnProperty(key)) { - cb.call(context, arr[key], key, arr); - } - } - } -} -function map(arr, cb, context) { - if (!arr) { - return []; - } - if (!cb) { - return slice(arr); - } - if (arr.map && arr.map === nativeMap) { - return arr.map(cb, context); - } else { - var result = []; - for (var i = 0, len2 = arr.length; i < len2; i++) { - result.push(cb.call(context, arr[i], i, arr)); - } - return result; - } -} -function reduce(arr, cb, memo, context) { - if (!(arr && cb)) { - return; - } - for (var i = 0, len2 = arr.length; i < len2; i++) { - memo = cb.call(context, memo, arr[i], i, arr); - } - return memo; -} -function filter(arr, cb, context) { - if (!arr) { - return []; - } - if (!cb) { - return slice(arr); - } - if (arr.filter && arr.filter === nativeFilter) { - return arr.filter(cb, context); - } else { - var result = []; - for (var i = 0, len2 = arr.length; i < len2; i++) { - if (cb.call(context, arr[i], i, arr)) { - result.push(arr[i]); - } - } - return result; - } -} -function find(arr, cb, context) { - if (!(arr && cb)) { - return; - } - for (var i = 0, len2 = arr.length; i < len2; i++) { - if (cb.call(context, arr[i], i, arr)) { - return arr[i]; - } - } -} -function keys(obj) { - if (!obj) { - return []; - } - if (Object.keys) { - return Object.keys(obj); - } - var keyList = []; - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - keyList.push(key); - } - } - return keyList; -} -function bindPolyfill(func, context) { - var args = []; - for (var _i = 2; _i < arguments.length; _i++) { - args[_i - 2] = arguments[_i]; - } - return function() { - return func.apply(context, args.concat(nativeSlice.call(arguments))); - }; -} -var bind = protoFunction && isFunction(protoFunction.bind) ? protoFunction.call.bind(protoFunction.bind) : bindPolyfill; -function curry(func) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - return function() { - return func.apply(this, args.concat(nativeSlice.call(arguments))); - }; -} -function isArray(value) { - if (Array.isArray) { - return Array.isArray(value); - } - return objToString.call(value) === "[object Array]"; -} -function isFunction(value) { - return typeof value === "function"; -} -function isString(value) { - return typeof value === "string"; -} -function isStringSafe(value) { - return objToString.call(value) === "[object String]"; -} -function isNumber(value) { - return typeof value === "number"; -} -function isObject(value) { - var type = typeof value; - return type === "function" || !!value && type === "object"; -} -function isBuiltInObject(value) { - return !!BUILTIN_OBJECT[objToString.call(value)]; -} -function isTypedArray(value) { - return !!TYPED_ARRAY[objToString.call(value)]; -} -function isDom(value) { - return typeof value === "object" && typeof value.nodeType === "number" && typeof value.ownerDocument === "object"; -} -function isGradientObject(value) { - return value.colorStops != null; -} -function isImagePatternObject(value) { - return value.image != null; -} -function isRegExp(value) { - return objToString.call(value) === "[object RegExp]"; -} -function eqNaN(value) { - return value !== value; -} -function retrieve() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - for (var i = 0, len2 = args.length; i < len2; i++) { - if (args[i] != null) { - return args[i]; - } - } -} -function retrieve2(value0, value1) { - return value0 != null ? value0 : value1; -} -function retrieve3(value0, value1, value2) { - return value0 != null ? value0 : value1 != null ? value1 : value2; -} -function slice(arr) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - return nativeSlice.apply(arr, args); -} -function normalizeCssArray(val) { - if (typeof val === "number") { - return [val, val, val, val]; - } - var len2 = val.length; - if (len2 === 2) { - return [val[0], val[1], val[0], val[1]]; - } else if (len2 === 3) { - return [val[0], val[1], val[2], val[1]]; - } - return val; -} -function assert(condition, message) { - if (!condition) { - throw new Error(message); - } -} -function trim(str) { - if (str == null) { - return null; - } else if (typeof str.trim === "function") { - return str.trim(); - } else { - return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""); - } -} -var primitiveKey = "__ec_primitive__"; -function setAsPrimitive(obj) { - obj[primitiveKey] = true; -} -function isPrimitive(obj) { - return obj[primitiveKey]; -} -var MapPolyfill = function() { - function MapPolyfill2() { - this.data = {}; - } - MapPolyfill2.prototype["delete"] = function(key) { - var existed = this.has(key); - if (existed) { - delete this.data[key]; - } - return existed; - }; - MapPolyfill2.prototype.has = function(key) { - return this.data.hasOwnProperty(key); - }; - MapPolyfill2.prototype.get = function(key) { - return this.data[key]; - }; - MapPolyfill2.prototype.set = function(key, value) { - this.data[key] = value; - return this; - }; - MapPolyfill2.prototype.keys = function() { - return keys(this.data); - }; - MapPolyfill2.prototype.forEach = function(callback) { - var data = this.data; - for (var key in data) { - if (data.hasOwnProperty(key)) { - callback(data[key], key); - } - } - }; - return MapPolyfill2; -}(); -var isNativeMapSupported = typeof Map === "function"; -function maybeNativeMap() { - return isNativeMapSupported ? /* @__PURE__ */ new Map() : new MapPolyfill(); -} -var HashMap = function() { - function HashMap2(obj) { - var isArr = isArray(obj); - this.data = maybeNativeMap(); - var thisMap = this; - obj instanceof HashMap2 ? obj.each(visit) : obj && each(obj, visit); - function visit(value, key) { - isArr ? thisMap.set(value, key) : thisMap.set(key, value); - } - } - HashMap2.prototype.hasKey = function(key) { - return this.data.has(key); - }; - HashMap2.prototype.get = function(key) { - return this.data.get(key); - }; - HashMap2.prototype.set = function(key, value) { - this.data.set(key, value); - return value; - }; - HashMap2.prototype.each = function(cb, context) { - this.data.forEach(function(value, key) { - cb.call(context, value, key); - }); - }; - HashMap2.prototype.keys = function() { - var keys2 = this.data.keys(); - return isNativeMapSupported ? Array.from(keys2) : keys2; - }; - HashMap2.prototype.removeKey = function(key) { - this.data["delete"](key); - }; - return HashMap2; -}(); -function createHashMap(obj) { - return new HashMap(obj); -} -function concatArray(a, b) { - var newArray = new a.constructor(a.length + b.length); - for (var i = 0; i < a.length; i++) { - newArray[i] = a[i]; - } - var offset = a.length; - for (var i = 0; i < b.length; i++) { - newArray[i + offset] = b[i]; - } - return newArray; -} -function createObject(proto, properties) { - var obj; - if (Object.create) { - obj = Object.create(proto); - } else { - var StyleCtor = function() { - }; - StyleCtor.prototype = proto; - obj = new StyleCtor(); - } - if (properties) { - extend(obj, properties); - } - return obj; -} -function disableUserSelect(dom) { - var domStyle = dom.style; - domStyle.webkitUserSelect = "none"; - domStyle.userSelect = "none"; - domStyle.webkitTapHighlightColor = "rgba(0,0,0,0)"; - domStyle["-webkit-touch-callout"] = "none"; -} -function hasOwn(own, prop) { - return own.hasOwnProperty(prop); -} -function noop() { -} -var RADIAN_TO_DEGREE = 180 / Math.PI; -const util = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - HashMap, - RADIAN_TO_DEGREE, - assert, - bind, - clone: clone$2, - concatArray, - createCanvas, - createHashMap, - createObject, - curry, - defaults, - disableUserSelect, - each, - eqNaN, - extend, - filter, - find, - guid, - hasOwn, - indexOf, - inherits, - isArray, - isArrayLike, - isBuiltInObject, - isDom, - isFunction, - isGradientObject, - isImagePatternObject, - isNumber, - isObject, - isPrimitive, - isRegExp, - isString, - isStringSafe, - isTypedArray, - keys, - logError, - map, - merge, - mergeAll, - mixin, - noop, - normalizeCssArray, - reduce, - retrieve, - retrieve2, - retrieve3, - setAsPrimitive, - slice, - trim -}, Symbol.toStringTag, { value: "Module" })); -function create$1(x, y) { - if (x == null) { - x = 0; - } - if (y == null) { - y = 0; - } - return [x, y]; -} -function copy$1(out, v) { - out[0] = v[0]; - out[1] = v[1]; - return out; -} -function clone$1(v) { - return [v[0], v[1]]; -} -function set(out, a, b) { - out[0] = a; - out[1] = b; - return out; -} -function add(out, v1, v2) { - out[0] = v1[0] + v2[0]; - out[1] = v1[1] + v2[1]; - return out; -} -function scaleAndAdd(out, v1, v2, a) { - out[0] = v1[0] + v2[0] * a; - out[1] = v1[1] + v2[1] * a; - return out; -} -function sub(out, v1, v2) { - out[0] = v1[0] - v2[0]; - out[1] = v1[1] - v2[1]; - return out; -} -function len(v) { - return Math.sqrt(lenSquare(v)); -} -var length = len; -function lenSquare(v) { - return v[0] * v[0] + v[1] * v[1]; -} -var lengthSquare = lenSquare; -function mul$1(out, v1, v2) { - out[0] = v1[0] * v2[0]; - out[1] = v1[1] * v2[1]; - return out; -} -function div(out, v1, v2) { - out[0] = v1[0] / v2[0]; - out[1] = v1[1] / v2[1]; - return out; -} -function dot(v1, v2) { - return v1[0] * v2[0] + v1[1] * v2[1]; -} -function scale$1(out, v, s) { - out[0] = v[0] * s; - out[1] = v[1] * s; - return out; -} -function normalize(out, v) { - var d = len(v); - if (d === 0) { - out[0] = 0; - out[1] = 0; - } else { - out[0] = v[0] / d; - out[1] = v[1] / d; - } - return out; -} -function distance(v1, v2) { - return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1])); -} -var dist = distance; -function distanceSquare(v1, v2) { - return (v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]); -} -var distSquare = distanceSquare; -function negate(out, v) { - out[0] = -v[0]; - out[1] = -v[1]; - return out; -} -function lerp$1(out, v1, v2, t) { - out[0] = v1[0] + t * (v2[0] - v1[0]); - out[1] = v1[1] + t * (v2[1] - v1[1]); - return out; -} -function applyTransform(out, v, m) { - var x = v[0]; - var y = v[1]; - out[0] = m[0] * x + m[2] * y + m[4]; - out[1] = m[1] * x + m[3] * y + m[5]; - return out; -} -function min$1(out, v1, v2) { - out[0] = Math.min(v1[0], v2[0]); - out[1] = Math.min(v1[1], v2[1]); - return out; -} -function max$1(out, v1, v2) { - out[0] = Math.max(v1[0], v2[0]); - out[1] = Math.max(v1[1], v2[1]); - return out; -} -const vector = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - add, - applyTransform, - clone: clone$1, - copy: copy$1, - create: create$1, - dist, - distSquare, - distance, - distanceSquare, - div, - dot, - len, - lenSquare, - length, - lengthSquare, - lerp: lerp$1, - max: max$1, - min: min$1, - mul: mul$1, - negate, - normalize, - scale: scale$1, - scaleAndAdd, - set, - sub -}, Symbol.toStringTag, { value: "Module" })); -var Eventful = function() { - function Eventful2(eventProcessors) { - if (eventProcessors) { - this._$eventProcessor = eventProcessors; - } - } - Eventful2.prototype.on = function(event, query, handler, context) { - if (!this._$handlers) { - this._$handlers = {}; - } - var _h = this._$handlers; - if (typeof query === "function") { - context = handler; - handler = query; - query = null; - } - if (!handler || !event) { - return this; - } - var eventProcessor = this._$eventProcessor; - if (query != null && eventProcessor && eventProcessor.normalizeQuery) { - query = eventProcessor.normalizeQuery(query); - } - if (!_h[event]) { - _h[event] = []; - } - for (var i = 0; i < _h[event].length; i++) { - if (_h[event][i].h === handler) { - return this; - } - } - var wrap = { - h: handler, - query, - ctx: context || this, - callAtLast: handler.zrEventfulCallAtLast - }; - var lastIndex = _h[event].length - 1; - var lastWrap = _h[event][lastIndex]; - lastWrap && lastWrap.callAtLast ? _h[event].splice(lastIndex, 0, wrap) : _h[event].push(wrap); - return this; - }; - Eventful2.prototype.isSilent = function(eventName) { - var _h = this._$handlers; - return !_h || !_h[eventName] || !_h[eventName].length; - }; - Eventful2.prototype.off = function(eventType, handler) { - var _h = this._$handlers; - if (!_h) { - return this; - } - if (!eventType) { - this._$handlers = {}; - return this; - } - if (handler) { - if (_h[eventType]) { - var newList = []; - for (var i = 0, l = _h[eventType].length; i < l; i++) { - if (_h[eventType][i].h !== handler) { - newList.push(_h[eventType][i]); - } - } - _h[eventType] = newList; - } - if (_h[eventType] && _h[eventType].length === 0) { - delete _h[eventType]; - } - } else { - delete _h[eventType]; - } - return this; - }; - Eventful2.prototype.trigger = function(eventType) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - if (!this._$handlers) { - return this; - } - var _h = this._$handlers[eventType]; - var eventProcessor = this._$eventProcessor; - if (_h) { - var argLen = args.length; - var len2 = _h.length; - for (var i = 0; i < len2; i++) { - var hItem = _h[i]; - if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(eventType, hItem.query)) { - continue; - } - switch (argLen) { - case 0: - hItem.h.call(hItem.ctx); - break; - case 1: - hItem.h.call(hItem.ctx, args[0]); - break; - case 2: - hItem.h.call(hItem.ctx, args[0], args[1]); - break; - default: - hItem.h.apply(hItem.ctx, args); - break; - } - } - } - eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(eventType); - return this; - }; - Eventful2.prototype.triggerWithContext = function(type) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - if (!this._$handlers) { - return this; - } - var _h = this._$handlers[type]; - var eventProcessor = this._$eventProcessor; - if (_h) { - var argLen = args.length; - var ctx = args[argLen - 1]; - var len2 = _h.length; - for (var i = 0; i < len2; i++) { - var hItem = _h[i]; - if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) { - continue; - } - switch (argLen) { - case 0: - hItem.h.call(ctx); - break; - case 1: - hItem.h.call(ctx, args[0]); - break; - case 2: - hItem.h.call(ctx, args[0], args[1]); - break; - default: - hItem.h.apply(ctx, args.slice(1, argLen - 1)); - break; - } - } - } - eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type); - return this; - }; - return Eventful2; -}(); -const Eventful$1 = Eventful; -var LN2 = Math.log(2); -function determinant(rows, rank, rowStart, rowMask, colMask, detCache) { - var cacheKey = rowMask + "-" + colMask; - var fullRank = rows.length; - if (detCache.hasOwnProperty(cacheKey)) { - return detCache[cacheKey]; - } - if (rank === 1) { - var colStart = Math.round(Math.log((1 << fullRank) - 1 & ~colMask) / LN2); - return rows[rowStart][colStart]; - } - var subRowMask = rowMask | 1 << rowStart; - var subRowStart = rowStart + 1; - while (rowMask & 1 << subRowStart) { - subRowStart++; - } - var sum = 0; - for (var j = 0, colLocalIdx = 0; j < fullRank; j++) { - var colTag = 1 << j; - if (!(colTag & colMask)) { - sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j] * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache); - colLocalIdx++; - } - } - detCache[cacheKey] = sum; - return sum; -} -function buildTransformer(src, dest) { - var mA = [ - [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]], - [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]], - [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]], - [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]], - [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]], - [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]], - [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]], - [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]] - ]; - var detCache = {}; - var det = determinant(mA, 8, 0, 0, 0, detCache); - if (det === 0) { - return; - } - var vh = []; - for (var i = 0; i < 8; i++) { - for (var j = 0; j < 8; j++) { - vh[j] == null && (vh[j] = 0); - vh[j] += ((i + j) % 2 ? -1 : 1) * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache) / det * dest[i]; - } - } - return function(out, srcPointX, srcPointY) { - var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1; - out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk; - out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk; - }; -} -var EVENT_SAVED_PROP = "___zrEVENTSAVED"; -var _calcOut = []; -function transformLocalCoord(out, elFrom, elTarget, inX, inY) { - return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true) && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]); -} -function transformCoordWithViewport(out, el, inX, inY, inverse) { - if (el.getBoundingClientRect && env$1.domSupported && !isCanvasEl(el)) { - var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {}); - var markers = prepareCoordMarkers(el, saved); - var transformer = preparePointerTransformer(markers, saved, inverse); - if (transformer) { - transformer(out, inX, inY); - return true; - } - } - return false; -} -function prepareCoordMarkers(el, saved) { - var markers = saved.markers; - if (markers) { - return markers; - } - markers = saved.markers = []; - var propLR = ["left", "right"]; - var propTB = ["top", "bottom"]; - for (var i = 0; i < 4; i++) { - var marker = document.createElement("div"); - var stl = marker.style; - var idxLR = i % 2; - var idxTB = (i >> 1) % 2; - stl.cssText = [ - "position: absolute", - "visibility: hidden", - "padding: 0", - "margin: 0", - "border-width: 0", - "user-select: none", - "width:0", - "height:0", - propLR[idxLR] + ":0", - propTB[idxTB] + ":0", - propLR[1 - idxLR] + ":auto", - propTB[1 - idxTB] + ":auto", - "" - ].join("!important;"); - el.appendChild(marker); - markers.push(marker); - } - return markers; -} -function preparePointerTransformer(markers, saved, inverse) { - var transformerName = inverse ? "invTrans" : "trans"; - var transformer = saved[transformerName]; - var oldSrcCoords = saved.srcCoords; - var srcCoords = []; - var destCoords = []; - var oldCoordTheSame = true; - for (var i = 0; i < 4; i++) { - var rect = markers[i].getBoundingClientRect(); - var ii = 2 * i; - var x = rect.left; - var y = rect.top; - srcCoords.push(x, y); - oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1]; - destCoords.push(markers[i].offsetLeft, markers[i].offsetTop); - } - return oldCoordTheSame && transformer ? transformer : (saved.srcCoords = srcCoords, saved[transformerName] = inverse ? buildTransformer(destCoords, srcCoords) : buildTransformer(srcCoords, destCoords)); -} -function isCanvasEl(el) { - return el.nodeName.toUpperCase() === "CANVAS"; -} -var replaceReg = /([&<>"'])/g; -var replaceMap = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'" -}; -function encodeHTML(source) { - return source == null ? "" : (source + "").replace(replaceReg, function(str, c) { - return replaceMap[c]; - }); -} -function create() { - return [1, 0, 0, 1, 0, 0]; -} -function identity(out) { - out[0] = 1; - out[1] = 0; - out[2] = 0; - out[3] = 1; - out[4] = 0; - out[5] = 0; - return out; -} -function copy(out, m) { - out[0] = m[0]; - out[1] = m[1]; - out[2] = m[2]; - out[3] = m[3]; - out[4] = m[4]; - out[5] = m[5]; - return out; -} -function mul(out, m1, m2) { - var out0 = m1[0] * m2[0] + m1[2] * m2[1]; - var out1 = m1[1] * m2[0] + m1[3] * m2[1]; - var out2 = m1[0] * m2[2] + m1[2] * m2[3]; - var out3 = m1[1] * m2[2] + m1[3] * m2[3]; - var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4]; - var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5]; - out[0] = out0; - out[1] = out1; - out[2] = out2; - out[3] = out3; - out[4] = out4; - out[5] = out5; - return out; -} -function translate(out, a, v) { - out[0] = a[0]; - out[1] = a[1]; - out[2] = a[2]; - out[3] = a[3]; - out[4] = a[4] + v[0]; - out[5] = a[5] + v[1]; - return out; -} -function rotate(out, a, rad) { - var aa = a[0]; - var ac = a[2]; - var atx = a[4]; - var ab = a[1]; - var ad = a[3]; - var aty = a[5]; - var st = Math.sin(rad); - var ct = Math.cos(rad); - out[0] = aa * ct + ab * st; - out[1] = -aa * st + ab * ct; - out[2] = ac * ct + ad * st; - out[3] = -ac * st + ct * ad; - out[4] = ct * atx + st * aty; - out[5] = ct * aty - st * atx; - return out; -} -function scale(out, a, v) { - var vx = v[0]; - var vy = v[1]; - out[0] = a[0] * vx; - out[1] = a[1] * vy; - out[2] = a[2] * vx; - out[3] = a[3] * vy; - out[4] = a[4] * vx; - out[5] = a[5] * vy; - return out; -} -function invert(out, a) { - var aa = a[0]; - var ac = a[2]; - var atx = a[4]; - var ab = a[1]; - var ad = a[3]; - var aty = a[5]; - var det = aa * ad - ab * ac; - if (!det) { - return null; - } - det = 1 / det; - out[0] = ad * det; - out[1] = -ab * det; - out[2] = -ac * det; - out[3] = aa * det; - out[4] = (ac * aty - ad * atx) * det; - out[5] = (ab * atx - aa * aty) * det; - return out; -} -function clone(a) { - var b = create(); - copy(b, a); - return b; -} -const matrix = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - clone, - copy, - create, - identity, - invert, - mul, - rotate, - scale, - translate -}, Symbol.toStringTag, { value: "Module" })); -var Point = function() { - function Point2(x, y) { - this.x = x || 0; - this.y = y || 0; - } - Point2.prototype.copy = function(other) { - this.x = other.x; - this.y = other.y; - return this; - }; - Point2.prototype.clone = function() { - return new Point2(this.x, this.y); - }; - Point2.prototype.set = function(x, y) { - this.x = x; - this.y = y; - return this; - }; - Point2.prototype.equal = function(other) { - return other.x === this.x && other.y === this.y; - }; - Point2.prototype.add = function(other) { - this.x += other.x; - this.y += other.y; - return this; - }; - Point2.prototype.scale = function(scalar) { - this.x *= scalar; - this.y *= scalar; - }; - Point2.prototype.scaleAndAdd = function(other, scalar) { - this.x += other.x * scalar; - this.y += other.y * scalar; - }; - Point2.prototype.sub = function(other) { - this.x -= other.x; - this.y -= other.y; - return this; - }; - Point2.prototype.dot = function(other) { - return this.x * other.x + this.y * other.y; - }; - Point2.prototype.len = function() { - return Math.sqrt(this.x * this.x + this.y * this.y); - }; - Point2.prototype.lenSquare = function() { - return this.x * this.x + this.y * this.y; - }; - Point2.prototype.normalize = function() { - var len2 = this.len(); - this.x /= len2; - this.y /= len2; - return this; - }; - Point2.prototype.distance = function(other) { - var dx = this.x - other.x; - var dy = this.y - other.y; - return Math.sqrt(dx * dx + dy * dy); - }; - Point2.prototype.distanceSquare = function(other) { - var dx = this.x - other.x; - var dy = this.y - other.y; - return dx * dx + dy * dy; - }; - Point2.prototype.negate = function() { - this.x = -this.x; - this.y = -this.y; - return this; - }; - Point2.prototype.transform = function(m) { - if (!m) { - return; - } - var x = this.x; - var y = this.y; - this.x = m[0] * x + m[2] * y + m[4]; - this.y = m[1] * x + m[3] * y + m[5]; - return this; - }; - Point2.prototype.toArray = function(out) { - out[0] = this.x; - out[1] = this.y; - return out; - }; - Point2.prototype.fromArray = function(input) { - this.x = input[0]; - this.y = input[1]; - }; - Point2.set = function(p, x, y) { - p.x = x; - p.y = y; - }; - Point2.copy = function(p, p2) { - p.x = p2.x; - p.y = p2.y; - }; - Point2.len = function(p) { - return Math.sqrt(p.x * p.x + p.y * p.y); - }; - Point2.lenSquare = function(p) { - return p.x * p.x + p.y * p.y; - }; - Point2.dot = function(p0, p1) { - return p0.x * p1.x + p0.y * p1.y; - }; - Point2.add = function(out, p0, p1) { - out.x = p0.x + p1.x; - out.y = p0.y + p1.y; - }; - Point2.sub = function(out, p0, p1) { - out.x = p0.x - p1.x; - out.y = p0.y - p1.y; - }; - Point2.scale = function(out, p0, scalar) { - out.x = p0.x * scalar; - out.y = p0.y * scalar; - }; - Point2.scaleAndAdd = function(out, p0, p1, scalar) { - out.x = p0.x + p1.x * scalar; - out.y = p0.y + p1.y * scalar; - }; - Point2.lerp = function(out, p0, p1, t) { - var onet = 1 - t; - out.x = onet * p0.x + t * p1.x; - out.y = onet * p0.y + t * p1.y; - }; - return Point2; -}(); -const Point$1 = Point; -var mathMin$2 = Math.min; -var mathMax$2 = Math.max; -var lt = new Point$1(); -var rb = new Point$1(); -var lb = new Point$1(); -var rt = new Point$1(); -var minTv = new Point$1(); -var maxTv = new Point$1(); -var BoundingRect = function() { - function BoundingRect2(x, y, width, height) { - if (width < 0) { - x = x + width; - width = -width; - } - if (height < 0) { - y = y + height; - height = -height; - } - this.x = x; - this.y = y; - this.width = width; - this.height = height; - } - BoundingRect2.prototype.union = function(other) { - var x = mathMin$2(other.x, this.x); - var y = mathMin$2(other.y, this.y); - if (isFinite(this.x) && isFinite(this.width)) { - this.width = mathMax$2(other.x + other.width, this.x + this.width) - x; - } else { - this.width = other.width; - } - if (isFinite(this.y) && isFinite(this.height)) { - this.height = mathMax$2(other.y + other.height, this.y + this.height) - y; - } else { - this.height = other.height; - } - this.x = x; - this.y = y; - }; - BoundingRect2.prototype.applyTransform = function(m) { - BoundingRect2.applyTransform(this, this, m); - }; - BoundingRect2.prototype.calculateTransform = function(b) { - var a = this; - var sx = b.width / a.width; - var sy = b.height / a.height; - var m = create(); - translate(m, m, [-a.x, -a.y]); - scale(m, m, [sx, sy]); - translate(m, m, [b.x, b.y]); - return m; - }; - BoundingRect2.prototype.intersect = function(b, mtv) { - if (!b) { - return false; - } - if (!(b instanceof BoundingRect2)) { - b = BoundingRect2.create(b); - } - var a = this; - var ax0 = a.x; - var ax1 = a.x + a.width; - var ay0 = a.y; - var ay1 = a.y + a.height; - var bx0 = b.x; - var bx1 = b.x + b.width; - var by0 = b.y; - var by1 = b.y + b.height; - var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0); - if (mtv) { - var dMin = Infinity; - var dMax = 0; - var d0 = Math.abs(ax1 - bx0); - var d1 = Math.abs(bx1 - ax0); - var d2 = Math.abs(ay1 - by0); - var d3 = Math.abs(by1 - ay0); - var dx = Math.min(d0, d1); - var dy = Math.min(d2, d3); - if (ax1 < bx0 || bx1 < ax0) { - if (dx > dMax) { - dMax = dx; - if (d0 < d1) { - Point$1.set(maxTv, -d0, 0); - } else { - Point$1.set(maxTv, d1, 0); - } - } - } else { - if (dx < dMin) { - dMin = dx; - if (d0 < d1) { - Point$1.set(minTv, d0, 0); - } else { - Point$1.set(minTv, -d1, 0); - } - } - } - if (ay1 < by0 || by1 < ay0) { - if (dy > dMax) { - dMax = dy; - if (d2 < d3) { - Point$1.set(maxTv, 0, -d2); - } else { - Point$1.set(maxTv, 0, d3); - } - } - } else { - if (dx < dMin) { - dMin = dx; - if (d2 < d3) { - Point$1.set(minTv, 0, d2); - } else { - Point$1.set(minTv, 0, -d3); - } - } - } - } - if (mtv) { - Point$1.copy(mtv, overlap ? minTv : maxTv); - } - return overlap; - }; - BoundingRect2.prototype.contain = function(x, y) { - var rect = this; - return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height; - }; - BoundingRect2.prototype.clone = function() { - return new BoundingRect2(this.x, this.y, this.width, this.height); - }; - BoundingRect2.prototype.copy = function(other) { - BoundingRect2.copy(this, other); - }; - BoundingRect2.prototype.plain = function() { - return { - x: this.x, - y: this.y, - width: this.width, - height: this.height - }; - }; - BoundingRect2.prototype.isFinite = function() { - return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height); - }; - BoundingRect2.prototype.isZero = function() { - return this.width === 0 || this.height === 0; - }; - BoundingRect2.create = function(rect) { - return new BoundingRect2(rect.x, rect.y, rect.width, rect.height); - }; - BoundingRect2.copy = function(target, source) { - target.x = source.x; - target.y = source.y; - target.width = source.width; - target.height = source.height; - }; - BoundingRect2.applyTransform = function(target, source, m) { - if (!m) { - if (target !== source) { - BoundingRect2.copy(target, source); - } - return; - } - if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) { - var sx = m[0]; - var sy = m[3]; - var tx = m[4]; - var ty = m[5]; - target.x = source.x * sx + tx; - target.y = source.y * sy + ty; - target.width = source.width * sx; - target.height = source.height * sy; - if (target.width < 0) { - target.x += target.width; - target.width = -target.width; - } - if (target.height < 0) { - target.y += target.height; - target.height = -target.height; - } - return; - } - lt.x = lb.x = source.x; - lt.y = rt.y = source.y; - rb.x = rt.x = source.x + source.width; - rb.y = lb.y = source.y + source.height; - lt.transform(m); - rt.transform(m); - rb.transform(m); - lb.transform(m); - target.x = mathMin$2(lt.x, rb.x, lb.x, rt.x); - target.y = mathMin$2(lt.y, rb.y, lb.y, rt.y); - var maxX = mathMax$2(lt.x, rb.x, lb.x, rt.x); - var maxY = mathMax$2(lt.y, rb.y, lb.y, rt.y); - target.width = maxX - target.x; - target.height = maxY - target.y; - }; - return BoundingRect2; -}(); -const BoundingRect$1 = BoundingRect; -var REDRAW_BIT = 1; -var STYLE_CHANGED_BIT = 2; -var SHAPE_CHANGED_BIT = 4; -var requestAnimationFrame; -requestAnimationFrame = env$1.hasGlobalWindow && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function(func) { - return setTimeout(func, 16); -}; -const requestAnimationFrame$1 = requestAnimationFrame; -var easingFuncs = { - linear: function(k) { - return k; - }, - quadraticIn: function(k) { - return k * k; - }, - quadraticOut: function(k) { - return k * (2 - k); - }, - quadraticInOut: function(k) { - if ((k *= 2) < 1) { - return 0.5 * k * k; - } - return -0.5 * (--k * (k - 2) - 1); - }, - cubicIn: function(k) { - return k * k * k; - }, - cubicOut: function(k) { - return --k * k * k + 1; - }, - cubicInOut: function(k) { - if ((k *= 2) < 1) { - return 0.5 * k * k * k; - } - return 0.5 * ((k -= 2) * k * k + 2); - }, - quarticIn: function(k) { - return k * k * k * k; - }, - quarticOut: function(k) { - return 1 - --k * k * k * k; - }, - quarticInOut: function(k) { - if ((k *= 2) < 1) { - return 0.5 * k * k * k * k; - } - return -0.5 * ((k -= 2) * k * k * k - 2); - }, - quinticIn: function(k) { - return k * k * k * k * k; - }, - quinticOut: function(k) { - return --k * k * k * k * k + 1; - }, - quinticInOut: function(k) { - if ((k *= 2) < 1) { - return 0.5 * k * k * k * k * k; - } - return 0.5 * ((k -= 2) * k * k * k * k + 2); - }, - sinusoidalIn: function(k) { - return 1 - Math.cos(k * Math.PI / 2); - }, - sinusoidalOut: function(k) { - return Math.sin(k * Math.PI / 2); - }, - sinusoidalInOut: function(k) { - return 0.5 * (1 - Math.cos(Math.PI * k)); - }, - exponentialIn: function(k) { - return k === 0 ? 0 : Math.pow(1024, k - 1); - }, - exponentialOut: function(k) { - return k === 1 ? 1 : 1 - Math.pow(2, -10 * k); - }, - exponentialInOut: function(k) { - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if ((k *= 2) < 1) { - return 0.5 * Math.pow(1024, k - 1); - } - return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2); - }, - circularIn: function(k) { - return 1 - Math.sqrt(1 - k * k); - }, - circularOut: function(k) { - return Math.sqrt(1 - --k * k); - }, - circularInOut: function(k) { - if ((k *= 2) < 1) { - return -0.5 * (Math.sqrt(1 - k * k) - 1); - } - return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1); - }, - elasticIn: function(k) { - var s; - var a = 0.1; - var p = 0.4; - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if (!a || a < 1) { - a = 1; - s = p / 4; - } else { - s = p * Math.asin(1 / a) / (2 * Math.PI); - } - return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); - }, - elasticOut: function(k) { - var s; - var a = 0.1; - var p = 0.4; - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if (!a || a < 1) { - a = 1; - s = p / 4; - } else { - s = p * Math.asin(1 / a) / (2 * Math.PI); - } - return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1; - }, - elasticInOut: function(k) { - var s; - var a = 0.1; - var p = 0.4; - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if (!a || a < 1) { - a = 1; - s = p / 4; - } else { - s = p * Math.asin(1 / a) / (2 * Math.PI); - } - if ((k *= 2) < 1) { - return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); - } - return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1; - }, - backIn: function(k) { - var s = 1.70158; - return k * k * ((s + 1) * k - s); - }, - backOut: function(k) { - var s = 1.70158; - return --k * k * ((s + 1) * k + s) + 1; - }, - backInOut: function(k) { - var s = 1.70158 * 1.525; - if ((k *= 2) < 1) { - return 0.5 * (k * k * ((s + 1) * k - s)); - } - return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2); - }, - bounceIn: function(k) { - return 1 - easingFuncs.bounceOut(1 - k); - }, - bounceOut: function(k) { - if (k < 1 / 2.75) { - return 7.5625 * k * k; - } else if (k < 2 / 2.75) { - return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75; - } else if (k < 2.5 / 2.75) { - return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375; - } else { - return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375; - } - }, - bounceInOut: function(k) { - if (k < 0.5) { - return easingFuncs.bounceIn(k * 2) * 0.5; - } - return easingFuncs.bounceOut(k * 2 - 1) * 0.5 + 0.5; - } -}; -const easingFuncs$1 = easingFuncs; -var mathPow = Math.pow; -var mathSqrt = Math.sqrt; -var EPSILON$3 = 1e-8; -var EPSILON_NUMERIC = 1e-4; -var THREE_SQRT = mathSqrt(3); -var ONE_THIRD = 1 / 3; -var _v0 = create$1(); -var _v1 = create$1(); -var _v2 = create$1(); -function isAroundZero$1(val) { - return val > -EPSILON$3 && val < EPSILON$3; -} -function isNotAroundZero$1(val) { - return val > EPSILON$3 || val < -EPSILON$3; -} -function cubicAt(p0, p1, p2, p3, t) { - var onet = 1 - t; - return onet * onet * (onet * p0 + 3 * t * p1) + t * t * (t * p3 + 3 * onet * p2); -} -function cubicDerivativeAt(p0, p1, p2, p3, t) { - var onet = 1 - t; - return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet + (p3 - p2) * t * t); -} -function cubicRootAt(p0, p1, p2, p3, val, roots2) { - var a = p3 + 3 * (p1 - p2) - p0; - var b = 3 * (p2 - p1 * 2 + p0); - var c = 3 * (p1 - p0); - var d = p0 - val; - var A = b * b - 3 * a * c; - var B = b * c - 9 * a * d; - var C = c * c - 3 * b * d; - var n = 0; - if (isAroundZero$1(A) && isAroundZero$1(B)) { - if (isAroundZero$1(b)) { - roots2[0] = 0; - } else { - var t1 = -c / b; - if (t1 >= 0 && t1 <= 1) { - roots2[n++] = t1; - } - } - } else { - var disc = B * B - 4 * A * C; - if (isAroundZero$1(disc)) { - var K = B / A; - var t1 = -b / a + K; - var t2 = -K / 2; - if (t1 >= 0 && t1 <= 1) { - roots2[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - roots2[n++] = t2; - } - } else if (disc > 0) { - var discSqrt = mathSqrt(disc); - var Y1 = A * b + 1.5 * a * (-B + discSqrt); - var Y2 = A * b + 1.5 * a * (-B - discSqrt); - if (Y1 < 0) { - Y1 = -mathPow(-Y1, ONE_THIRD); - } else { - Y1 = mathPow(Y1, ONE_THIRD); - } - if (Y2 < 0) { - Y2 = -mathPow(-Y2, ONE_THIRD); - } else { - Y2 = mathPow(Y2, ONE_THIRD); - } - var t1 = (-b - (Y1 + Y2)) / (3 * a); - if (t1 >= 0 && t1 <= 1) { - roots2[n++] = t1; - } - } else { - var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A)); - var theta = Math.acos(T) / 3; - var ASqrt = mathSqrt(A); - var tmp = Math.cos(theta); - var t1 = (-b - 2 * ASqrt * tmp) / (3 * a); - var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a); - var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a); - if (t1 >= 0 && t1 <= 1) { - roots2[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - roots2[n++] = t2; - } - if (t3 >= 0 && t3 <= 1) { - roots2[n++] = t3; - } - } - } - return n; -} -function cubicExtrema(p0, p1, p2, p3, extrema2) { - var b = 6 * p2 - 12 * p1 + 6 * p0; - var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2; - var c = 3 * p1 - 3 * p0; - var n = 0; - if (isAroundZero$1(a)) { - if (isNotAroundZero$1(b)) { - var t1 = -c / b; - if (t1 >= 0 && t1 <= 1) { - extrema2[n++] = t1; - } - } - } else { - var disc = b * b - 4 * a * c; - if (isAroundZero$1(disc)) { - extrema2[0] = -b / (2 * a); - } else if (disc > 0) { - var discSqrt = mathSqrt(disc); - var t1 = (-b + discSqrt) / (2 * a); - var t2 = (-b - discSqrt) / (2 * a); - if (t1 >= 0 && t1 <= 1) { - extrema2[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - extrema2[n++] = t2; - } - } - } - return n; -} -function cubicSubdivide(p0, p1, p2, p3, t, out) { - var p01 = (p1 - p0) * t + p0; - var p12 = (p2 - p1) * t + p1; - var p23 = (p3 - p2) * t + p2; - var p012 = (p12 - p01) * t + p01; - var p123 = (p23 - p12) * t + p12; - var p0123 = (p123 - p012) * t + p012; - out[0] = p0; - out[1] = p01; - out[2] = p012; - out[3] = p0123; - out[4] = p0123; - out[5] = p123; - out[6] = p23; - out[7] = p3; -} -function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) { - var t; - var interval = 5e-3; - var d = Infinity; - var prev; - var next; - var d1; - var d2; - _v0[0] = x; - _v0[1] = y; - for (var _t = 0; _t < 1; _t += 0.05) { - _v1[0] = cubicAt(x0, x1, x2, x3, _t); - _v1[1] = cubicAt(y0, y1, y2, y3, _t); - d1 = distSquare(_v0, _v1); - if (d1 < d) { - t = _t; - d = d1; - } - } - d = Infinity; - for (var i = 0; i < 32; i++) { - if (interval < EPSILON_NUMERIC) { - break; - } - prev = t - interval; - next = t + interval; - _v1[0] = cubicAt(x0, x1, x2, x3, prev); - _v1[1] = cubicAt(y0, y1, y2, y3, prev); - d1 = distSquare(_v1, _v0); - if (prev >= 0 && d1 < d) { - t = prev; - d = d1; - } else { - _v2[0] = cubicAt(x0, x1, x2, x3, next); - _v2[1] = cubicAt(y0, y1, y2, y3, next); - d2 = distSquare(_v2, _v0); - if (next <= 1 && d2 < d) { - t = next; - d = d2; - } else { - interval *= 0.5; - } - } - } - if (out) { - out[0] = cubicAt(x0, x1, x2, x3, t); - out[1] = cubicAt(y0, y1, y2, y3, t); - } - return mathSqrt(d); -} -function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) { - var px = x0; - var py = y0; - var d = 0; - var step = 1 / iteration; - for (var i = 1; i <= iteration; i++) { - var t = i * step; - var x = cubicAt(x0, x1, x2, x3, t); - var y = cubicAt(y0, y1, y2, y3, t); - var dx = x - px; - var dy = y - py; - d += Math.sqrt(dx * dx + dy * dy); - px = x; - py = y; - } - return d; -} -function quadraticAt(p0, p1, p2, t) { - var onet = 1 - t; - return onet * (onet * p0 + 2 * t * p1) + t * t * p2; -} -function quadraticDerivativeAt(p0, p1, p2, t) { - return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1)); -} -function quadraticRootAt(p0, p1, p2, val, roots2) { - var a = p0 - 2 * p1 + p2; - var b = 2 * (p1 - p0); - var c = p0 - val; - var n = 0; - if (isAroundZero$1(a)) { - if (isNotAroundZero$1(b)) { - var t1 = -c / b; - if (t1 >= 0 && t1 <= 1) { - roots2[n++] = t1; - } - } - } else { - var disc = b * b - 4 * a * c; - if (isAroundZero$1(disc)) { - var t1 = -b / (2 * a); - if (t1 >= 0 && t1 <= 1) { - roots2[n++] = t1; - } - } else if (disc > 0) { - var discSqrt = mathSqrt(disc); - var t1 = (-b + discSqrt) / (2 * a); - var t2 = (-b - discSqrt) / (2 * a); - if (t1 >= 0 && t1 <= 1) { - roots2[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - roots2[n++] = t2; - } - } - } - return n; -} -function quadraticExtremum(p0, p1, p2) { - var divider = p0 + p2 - 2 * p1; - if (divider === 0) { - return 0.5; - } else { - return (p0 - p1) / divider; - } -} -function quadraticSubdivide(p0, p1, p2, t, out) { - var p01 = (p1 - p0) * t + p0; - var p12 = (p2 - p1) * t + p1; - var p012 = (p12 - p01) * t + p01; - out[0] = p0; - out[1] = p01; - out[2] = p012; - out[3] = p012; - out[4] = p12; - out[5] = p2; -} -function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) { - var t; - var interval = 5e-3; - var d = Infinity; - _v0[0] = x; - _v0[1] = y; - for (var _t = 0; _t < 1; _t += 0.05) { - _v1[0] = quadraticAt(x0, x1, x2, _t); - _v1[1] = quadraticAt(y0, y1, y2, _t); - var d1 = distSquare(_v0, _v1); - if (d1 < d) { - t = _t; - d = d1; - } - } - d = Infinity; - for (var i = 0; i < 32; i++) { - if (interval < EPSILON_NUMERIC) { - break; - } - var prev = t - interval; - var next = t + interval; - _v1[0] = quadraticAt(x0, x1, x2, prev); - _v1[1] = quadraticAt(y0, y1, y2, prev); - var d1 = distSquare(_v1, _v0); - if (prev >= 0 && d1 < d) { - t = prev; - d = d1; - } else { - _v2[0] = quadraticAt(x0, x1, x2, next); - _v2[1] = quadraticAt(y0, y1, y2, next); - var d2 = distSquare(_v2, _v0); - if (next <= 1 && d2 < d) { - t = next; - d = d2; - } else { - interval *= 0.5; - } - } - } - if (out) { - out[0] = quadraticAt(x0, x1, x2, t); - out[1] = quadraticAt(y0, y1, y2, t); - } - return mathSqrt(d); -} -function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) { - var px = x0; - var py = y0; - var d = 0; - var step = 1 / iteration; - for (var i = 1; i <= iteration; i++) { - var t = i * step; - var x = quadraticAt(x0, x1, x2, t); - var y = quadraticAt(y0, y1, y2, t); - var dx = x - px; - var dy = y - py; - d += Math.sqrt(dx * dx + dy * dy); - px = x; - py = y; - } - return d; -} -var regexp = /cubic-bezier\(([0-9,\.e ]+)\)/; -function createCubicEasingFunc(cubicEasingStr) { - var cubic = cubicEasingStr && regexp.exec(cubicEasingStr); - if (cubic) { - var points = cubic[1].split(","); - var a_1 = +trim(points[0]); - var b_1 = +trim(points[1]); - var c_1 = +trim(points[2]); - var d_1 = +trim(points[3]); - if (isNaN(a_1 + b_1 + c_1 + d_1)) { - return; - } - var roots_1 = []; - return function(p) { - return p <= 0 ? 0 : p >= 1 ? 1 : cubicRootAt(0, a_1, c_1, 1, p, roots_1) && cubicAt(0, b_1, d_1, 1, roots_1[0]); - }; - } -} -var Clip = function() { - function Clip2(opts) { - this._inited = false; - this._startTime = 0; - this._pausedTime = 0; - this._paused = false; - this._life = opts.life || 1e3; - this._delay = opts.delay || 0; - this.loop = opts.loop || false; - this.onframe = opts.onframe || noop; - this.ondestroy = opts.ondestroy || noop; - this.onrestart = opts.onrestart || noop; - opts.easing && this.setEasing(opts.easing); - } - Clip2.prototype.step = function(globalTime, deltaTime) { - if (!this._inited) { - this._startTime = globalTime + this._delay; - this._inited = true; - } - if (this._paused) { - this._pausedTime += deltaTime; - return; - } - var life = this._life; - var elapsedTime = globalTime - this._startTime - this._pausedTime; - var percent = elapsedTime / life; - if (percent < 0) { - percent = 0; - } - percent = Math.min(percent, 1); - var easingFunc = this.easingFunc; - var schedule = easingFunc ? easingFunc(percent) : percent; - this.onframe(schedule); - if (percent === 1) { - if (this.loop) { - var remainder = elapsedTime % life; - this._startTime = globalTime - remainder; - this._pausedTime = 0; - this.onrestart(); - } else { - return true; - } - } - return false; - }; - Clip2.prototype.pause = function() { - this._paused = true; - }; - Clip2.prototype.resume = function() { - this._paused = false; - }; - Clip2.prototype.setEasing = function(easing) { - this.easing = easing; - this.easingFunc = isFunction(easing) ? easing : easingFuncs$1[easing] || createCubicEasingFunc(easing); - }; - return Clip2; -}(); -const Clip$1 = Clip; -var Entry = function() { - function Entry2(val) { - this.value = val; - } - return Entry2; -}(); -var LinkedList = function() { - function LinkedList2() { - this._len = 0; - } - LinkedList2.prototype.insert = function(val) { - var entry = new Entry(val); - this.insertEntry(entry); - return entry; - }; - LinkedList2.prototype.insertEntry = function(entry) { - if (!this.head) { - this.head = this.tail = entry; - } else { - this.tail.next = entry; - entry.prev = this.tail; - entry.next = null; - this.tail = entry; - } - this._len++; - }; - LinkedList2.prototype.remove = function(entry) { - var prev = entry.prev; - var next = entry.next; - if (prev) { - prev.next = next; - } else { - this.head = next; - } - if (next) { - next.prev = prev; - } else { - this.tail = prev; - } - entry.next = entry.prev = null; - this._len--; - }; - LinkedList2.prototype.len = function() { - return this._len; - }; - LinkedList2.prototype.clear = function() { - this.head = this.tail = null; - this._len = 0; - }; - return LinkedList2; -}(); -var LRU = function() { - function LRU2(maxSize) { - this._list = new LinkedList(); - this._maxSize = 10; - this._map = {}; - this._maxSize = maxSize; - } - LRU2.prototype.put = function(key, value) { - var list = this._list; - var map2 = this._map; - var removed = null; - if (map2[key] == null) { - var len2 = list.len(); - var entry = this._lastRemovedEntry; - if (len2 >= this._maxSize && len2 > 0) { - var leastUsedEntry = list.head; - list.remove(leastUsedEntry); - delete map2[leastUsedEntry.key]; - removed = leastUsedEntry.value; - this._lastRemovedEntry = leastUsedEntry; - } - if (entry) { - entry.value = value; - } else { - entry = new Entry(value); - } - entry.key = key; - list.insertEntry(entry); - map2[key] = entry; - } - return removed; - }; - LRU2.prototype.get = function(key) { - var entry = this._map[key]; - var list = this._list; - if (entry != null) { - if (entry !== list.tail) { - list.remove(entry); - list.insertEntry(entry); - } - return entry.value; - } - }; - LRU2.prototype.clear = function() { - this._list.clear(); - this._map = {}; - }; - LRU2.prototype.len = function() { - return this._list.len(); - }; - return LRU2; -}(); -const LRU$1 = LRU; -var kCSSColorTable = { - "transparent": [0, 0, 0, 0], - "aliceblue": [240, 248, 255, 1], - "antiquewhite": [250, 235, 215, 1], - "aqua": [0, 255, 255, 1], - "aquamarine": [127, 255, 212, 1], - "azure": [240, 255, 255, 1], - "beige": [245, 245, 220, 1], - "bisque": [255, 228, 196, 1], - "black": [0, 0, 0, 1], - "blanchedalmond": [255, 235, 205, 1], - "blue": [0, 0, 255, 1], - "blueviolet": [138, 43, 226, 1], - "brown": [165, 42, 42, 1], - "burlywood": [222, 184, 135, 1], - "cadetblue": [95, 158, 160, 1], - "chartreuse": [127, 255, 0, 1], - "chocolate": [210, 105, 30, 1], - "coral": [255, 127, 80, 1], - "cornflowerblue": [100, 149, 237, 1], - "cornsilk": [255, 248, 220, 1], - "crimson": [220, 20, 60, 1], - "cyan": [0, 255, 255, 1], - "darkblue": [0, 0, 139, 1], - "darkcyan": [0, 139, 139, 1], - "darkgoldenrod": [184, 134, 11, 1], - "darkgray": [169, 169, 169, 1], - "darkgreen": [0, 100, 0, 1], - "darkgrey": [169, 169, 169, 1], - "darkkhaki": [189, 183, 107, 1], - "darkmagenta": [139, 0, 139, 1], - "darkolivegreen": [85, 107, 47, 1], - "darkorange": [255, 140, 0, 1], - "darkorchid": [153, 50, 204, 1], - "darkred": [139, 0, 0, 1], - "darksalmon": [233, 150, 122, 1], - "darkseagreen": [143, 188, 143, 1], - "darkslateblue": [72, 61, 139, 1], - "darkslategray": [47, 79, 79, 1], - "darkslategrey": [47, 79, 79, 1], - "darkturquoise": [0, 206, 209, 1], - "darkviolet": [148, 0, 211, 1], - "deeppink": [255, 20, 147, 1], - "deepskyblue": [0, 191, 255, 1], - "dimgray": [105, 105, 105, 1], - "dimgrey": [105, 105, 105, 1], - "dodgerblue": [30, 144, 255, 1], - "firebrick": [178, 34, 34, 1], - "floralwhite": [255, 250, 240, 1], - "forestgreen": [34, 139, 34, 1], - "fuchsia": [255, 0, 255, 1], - "gainsboro": [220, 220, 220, 1], - "ghostwhite": [248, 248, 255, 1], - "gold": [255, 215, 0, 1], - "goldenrod": [218, 165, 32, 1], - "gray": [128, 128, 128, 1], - "green": [0, 128, 0, 1], - "greenyellow": [173, 255, 47, 1], - "grey": [128, 128, 128, 1], - "honeydew": [240, 255, 240, 1], - "hotpink": [255, 105, 180, 1], - "indianred": [205, 92, 92, 1], - "indigo": [75, 0, 130, 1], - "ivory": [255, 255, 240, 1], - "khaki": [240, 230, 140, 1], - "lavender": [230, 230, 250, 1], - "lavenderblush": [255, 240, 245, 1], - "lawngreen": [124, 252, 0, 1], - "lemonchiffon": [255, 250, 205, 1], - "lightblue": [173, 216, 230, 1], - "lightcoral": [240, 128, 128, 1], - "lightcyan": [224, 255, 255, 1], - "lightgoldenrodyellow": [250, 250, 210, 1], - "lightgray": [211, 211, 211, 1], - "lightgreen": [144, 238, 144, 1], - "lightgrey": [211, 211, 211, 1], - "lightpink": [255, 182, 193, 1], - "lightsalmon": [255, 160, 122, 1], - "lightseagreen": [32, 178, 170, 1], - "lightskyblue": [135, 206, 250, 1], - "lightslategray": [119, 136, 153, 1], - "lightslategrey": [119, 136, 153, 1], - "lightsteelblue": [176, 196, 222, 1], - "lightyellow": [255, 255, 224, 1], - "lime": [0, 255, 0, 1], - "limegreen": [50, 205, 50, 1], - "linen": [250, 240, 230, 1], - "magenta": [255, 0, 255, 1], - "maroon": [128, 0, 0, 1], - "mediumaquamarine": [102, 205, 170, 1], - "mediumblue": [0, 0, 205, 1], - "mediumorchid": [186, 85, 211, 1], - "mediumpurple": [147, 112, 219, 1], - "mediumseagreen": [60, 179, 113, 1], - "mediumslateblue": [123, 104, 238, 1], - "mediumspringgreen": [0, 250, 154, 1], - "mediumturquoise": [72, 209, 204, 1], - "mediumvioletred": [199, 21, 133, 1], - "midnightblue": [25, 25, 112, 1], - "mintcream": [245, 255, 250, 1], - "mistyrose": [255, 228, 225, 1], - "moccasin": [255, 228, 181, 1], - "navajowhite": [255, 222, 173, 1], - "navy": [0, 0, 128, 1], - "oldlace": [253, 245, 230, 1], - "olive": [128, 128, 0, 1], - "olivedrab": [107, 142, 35, 1], - "orange": [255, 165, 0, 1], - "orangered": [255, 69, 0, 1], - "orchid": [218, 112, 214, 1], - "palegoldenrod": [238, 232, 170, 1], - "palegreen": [152, 251, 152, 1], - "paleturquoise": [175, 238, 238, 1], - "palevioletred": [219, 112, 147, 1], - "papayawhip": [255, 239, 213, 1], - "peachpuff": [255, 218, 185, 1], - "peru": [205, 133, 63, 1], - "pink": [255, 192, 203, 1], - "plum": [221, 160, 221, 1], - "powderblue": [176, 224, 230, 1], - "purple": [128, 0, 128, 1], - "red": [255, 0, 0, 1], - "rosybrown": [188, 143, 143, 1], - "royalblue": [65, 105, 225, 1], - "saddlebrown": [139, 69, 19, 1], - "salmon": [250, 128, 114, 1], - "sandybrown": [244, 164, 96, 1], - "seagreen": [46, 139, 87, 1], - "seashell": [255, 245, 238, 1], - "sienna": [160, 82, 45, 1], - "silver": [192, 192, 192, 1], - "skyblue": [135, 206, 235, 1], - "slateblue": [106, 90, 205, 1], - "slategray": [112, 128, 144, 1], - "slategrey": [112, 128, 144, 1], - "snow": [255, 250, 250, 1], - "springgreen": [0, 255, 127, 1], - "steelblue": [70, 130, 180, 1], - "tan": [210, 180, 140, 1], - "teal": [0, 128, 128, 1], - "thistle": [216, 191, 216, 1], - "tomato": [255, 99, 71, 1], - "turquoise": [64, 224, 208, 1], - "violet": [238, 130, 238, 1], - "wheat": [245, 222, 179, 1], - "white": [255, 255, 255, 1], - "whitesmoke": [245, 245, 245, 1], - "yellow": [255, 255, 0, 1], - "yellowgreen": [154, 205, 50, 1] -}; -function clampCssByte(i) { - i = Math.round(i); - return i < 0 ? 0 : i > 255 ? 255 : i; -} -function clampCssAngle(i) { - i = Math.round(i); - return i < 0 ? 0 : i > 360 ? 360 : i; -} -function clampCssFloat(f) { - return f < 0 ? 0 : f > 1 ? 1 : f; -} -function parseCssInt(val) { - var str = val; - if (str.length && str.charAt(str.length - 1) === "%") { - return clampCssByte(parseFloat(str) / 100 * 255); - } - return clampCssByte(parseInt(str, 10)); -} -function parseCssFloat(val) { - var str = val; - if (str.length && str.charAt(str.length - 1) === "%") { - return clampCssFloat(parseFloat(str) / 100); - } - return clampCssFloat(parseFloat(str)); -} -function cssHueToRgb(m1, m2, h) { - if (h < 0) { - h += 1; - } else if (h > 1) { - h -= 1; - } - if (h * 6 < 1) { - return m1 + (m2 - m1) * h * 6; - } - if (h * 2 < 1) { - return m2; - } - if (h * 3 < 2) { - return m1 + (m2 - m1) * (2 / 3 - h) * 6; - } - return m1; -} -function lerpNumber(a, b, p) { - return a + (b - a) * p; -} -function setRgba(out, r, g, b, a) { - out[0] = r; - out[1] = g; - out[2] = b; - out[3] = a; - return out; -} -function copyRgba(out, a) { - out[0] = a[0]; - out[1] = a[1]; - out[2] = a[2]; - out[3] = a[3]; - return out; -} -var colorCache = new LRU$1(20); -var lastRemovedArr = null; -function putToCache(colorStr, rgbaArr) { - if (lastRemovedArr) { - copyRgba(lastRemovedArr, rgbaArr); - } - lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || rgbaArr.slice()); -} -function parse(colorStr, rgbaArr) { - if (!colorStr) { - return; - } - rgbaArr = rgbaArr || []; - var cached = colorCache.get(colorStr); - if (cached) { - return copyRgba(rgbaArr, cached); - } - colorStr = colorStr + ""; - var str = colorStr.replace(/ /g, "").toLowerCase(); - if (str in kCSSColorTable) { - copyRgba(rgbaArr, kCSSColorTable[str]); - putToCache(colorStr, rgbaArr); - return rgbaArr; - } - var strLen = str.length; - if (str.charAt(0) === "#") { - if (strLen === 4 || strLen === 5) { - var iv = parseInt(str.slice(1, 4), 16); - if (!(iv >= 0 && iv <= 4095)) { - setRgba(rgbaArr, 0, 0, 0, 1); - return; - } - setRgba(rgbaArr, (iv & 3840) >> 4 | (iv & 3840) >> 8, iv & 240 | (iv & 240) >> 4, iv & 15 | (iv & 15) << 4, strLen === 5 ? parseInt(str.slice(4), 16) / 15 : 1); - putToCache(colorStr, rgbaArr); - return rgbaArr; - } else if (strLen === 7 || strLen === 9) { - var iv = parseInt(str.slice(1, 7), 16); - if (!(iv >= 0 && iv <= 16777215)) { - setRgba(rgbaArr, 0, 0, 0, 1); - return; - } - setRgba(rgbaArr, (iv & 16711680) >> 16, (iv & 65280) >> 8, iv & 255, strLen === 9 ? parseInt(str.slice(7), 16) / 255 : 1); - putToCache(colorStr, rgbaArr); - return rgbaArr; - } - return; - } - var op = str.indexOf("("); - var ep = str.indexOf(")"); - if (op !== -1 && ep + 1 === strLen) { - var fname = str.substr(0, op); - var params = str.substr(op + 1, ep - (op + 1)).split(","); - var alpha = 1; - switch (fname) { - case "rgba": - if (params.length !== 4) { - return params.length === 3 ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1) : setRgba(rgbaArr, 0, 0, 0, 1); - } - alpha = parseCssFloat(params.pop()); - case "rgb": - if (params.length >= 3) { - setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), params.length === 3 ? alpha : parseCssFloat(params[3])); - putToCache(colorStr, rgbaArr); - return rgbaArr; - } else { - setRgba(rgbaArr, 0, 0, 0, 1); - return; - } - case "hsla": - if (params.length !== 4) { - setRgba(rgbaArr, 0, 0, 0, 1); - return; - } - params[3] = parseCssFloat(params[3]); - hsla2rgba(params, rgbaArr); - putToCache(colorStr, rgbaArr); - return rgbaArr; - case "hsl": - if (params.length !== 3) { - setRgba(rgbaArr, 0, 0, 0, 1); - return; - } - hsla2rgba(params, rgbaArr); - putToCache(colorStr, rgbaArr); - return rgbaArr; - default: - return; - } - } - setRgba(rgbaArr, 0, 0, 0, 1); - return; -} -function hsla2rgba(hsla, rgba) { - var h = (parseFloat(hsla[0]) % 360 + 360) % 360 / 360; - var s = parseCssFloat(hsla[1]); - var l = parseCssFloat(hsla[2]); - var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s; - var m1 = l * 2 - m2; - rgba = rgba || []; - setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1); - if (hsla.length === 4) { - rgba[3] = hsla[3]; - } - return rgba; -} -function rgba2hsla(rgba) { - if (!rgba) { - return; - } - var R = rgba[0] / 255; - var G = rgba[1] / 255; - var B = rgba[2] / 255; - var vMin = Math.min(R, G, B); - var vMax = Math.max(R, G, B); - var delta = vMax - vMin; - var L = (vMax + vMin) / 2; - var H; - var S; - if (delta === 0) { - H = 0; - S = 0; - } else { - if (L < 0.5) { - S = delta / (vMax + vMin); - } else { - S = delta / (2 - vMax - vMin); - } - var deltaR = ((vMax - R) / 6 + delta / 2) / delta; - var deltaG = ((vMax - G) / 6 + delta / 2) / delta; - var deltaB = ((vMax - B) / 6 + delta / 2) / delta; - if (R === vMax) { - H = deltaB - deltaG; - } else if (G === vMax) { - H = 1 / 3 + deltaR - deltaB; - } else if (B === vMax) { - H = 2 / 3 + deltaG - deltaR; - } - if (H < 0) { - H += 1; - } - if (H > 1) { - H -= 1; - } - } - var hsla = [H * 360, S, L]; - if (rgba[3] != null) { - hsla.push(rgba[3]); - } - return hsla; -} -function lift(color2, level) { - var colorArr = parse(color2); - if (colorArr) { - for (var i = 0; i < 3; i++) { - if (level < 0) { - colorArr[i] = colorArr[i] * (1 - level) | 0; - } else { - colorArr[i] = (255 - colorArr[i]) * level + colorArr[i] | 0; - } - if (colorArr[i] > 255) { - colorArr[i] = 255; - } else if (colorArr[i] < 0) { - colorArr[i] = 0; - } - } - return stringify(colorArr, colorArr.length === 4 ? "rgba" : "rgb"); - } -} -function toHex(color2) { - var colorArr = parse(color2); - if (colorArr) { - return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + +colorArr[2]).toString(16).slice(1); - } -} -function fastLerp(normalizedValue, colors, out) { - if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) { - return; - } - out = out || []; - var value = normalizedValue * (colors.length - 1); - var leftIndex = Math.floor(value); - var rightIndex = Math.ceil(value); - var leftColor = colors[leftIndex]; - var rightColor = colors[rightIndex]; - var dv = value - leftIndex; - out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)); - out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)); - out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)); - out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv)); - return out; -} -var fastMapToColor = fastLerp; -function lerp(normalizedValue, colors, fullOutput) { - if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) { - return; - } - var value = normalizedValue * (colors.length - 1); - var leftIndex = Math.floor(value); - var rightIndex = Math.ceil(value); - var leftColor = parse(colors[leftIndex]); - var rightColor = parse(colors[rightIndex]); - var dv = value - leftIndex; - var color2 = stringify([ - clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)), - clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)), - clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)), - clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv)) - ], "rgba"); - return fullOutput ? { - color: color2, - leftIndex, - rightIndex, - value - } : color2; -} -var mapToColor = lerp; -function modifyHSL(color2, h, s, l) { - var colorArr = parse(color2); - if (color2) { - colorArr = rgba2hsla(colorArr); - h != null && (colorArr[0] = clampCssAngle(h)); - s != null && (colorArr[1] = parseCssFloat(s)); - l != null && (colorArr[2] = parseCssFloat(l)); - return stringify(hsla2rgba(colorArr), "rgba"); - } -} -function modifyAlpha(color2, alpha) { - var colorArr = parse(color2); - if (colorArr && alpha != null) { - colorArr[3] = clampCssFloat(alpha); - return stringify(colorArr, "rgba"); - } -} -function stringify(arrColor, type) { - if (!arrColor || !arrColor.length) { - return; - } - var colorStr = arrColor[0] + "," + arrColor[1] + "," + arrColor[2]; - if (type === "rgba" || type === "hsva" || type === "hsla") { - colorStr += "," + arrColor[3]; - } - return type + "(" + colorStr + ")"; -} -function lum(color2, backgroundLum) { - var arr = parse(color2); - return arr ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255 + (1 - arr[3]) * backgroundLum : 0; -} -function random() { - return stringify([ - Math.round(Math.random() * 255), - Math.round(Math.random() * 255), - Math.round(Math.random() * 255) - ], "rgb"); -} -const color = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - fastLerp, - fastMapToColor, - lerp, - lift, - lum, - mapToColor, - modifyAlpha, - modifyHSL, - parse, - random, - stringify, - toHex -}, Symbol.toStringTag, { value: "Module" })); -var mathRound = Math.round; -function normalizeColor(color2) { - var opacity; - if (!color2 || color2 === "transparent") { - color2 = "none"; - } else if (typeof color2 === "string" && color2.indexOf("rgba") > -1) { - var arr = parse(color2); - if (arr) { - color2 = "rgb(" + arr[0] + "," + arr[1] + "," + arr[2] + ")"; - opacity = arr[3]; - } - } - return { - color: color2, - opacity: opacity == null ? 1 : opacity - }; -} -var EPSILON$2 = 1e-4; -function isAroundZero(transform) { - return transform < EPSILON$2 && transform > -EPSILON$2; -} -function round3(transform) { - return mathRound(transform * 1e3) / 1e3; -} -function round4(transform) { - return mathRound(transform * 1e4) / 1e4; -} -function getMatrixStr(m) { - return "matrix(" + round3(m[0]) + "," + round3(m[1]) + "," + round3(m[2]) + "," + round3(m[3]) + "," + round4(m[4]) + "," + round4(m[5]) + ")"; -} -var TEXT_ALIGN_TO_ANCHOR = { - left: "start", - right: "end", - center: "middle", - middle: "middle" -}; -function adjustTextY$1(y, lineHeight, textBaseline) { - if (textBaseline === "top") { - y += lineHeight / 2; - } else if (textBaseline === "bottom") { - y -= lineHeight / 2; - } - return y; -} -function hasShadow(style) { - return style && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY); -} -function getShadowKey(displayable) { - var style = displayable.style; - var globalScale = displayable.getGlobalScale(); - return [ - style.shadowColor, - (style.shadowBlur || 0).toFixed(2), - (style.shadowOffsetX || 0).toFixed(2), - (style.shadowOffsetY || 0).toFixed(2), - globalScale[0], - globalScale[1] - ].join(","); -} -function isImagePattern(val) { - return val && !!val.image; -} -function isSVGPattern(val) { - return val && !!val.svgElement; -} -function isPattern(val) { - return isImagePattern(val) || isSVGPattern(val); -} -function isLinearGradient(val) { - return val.type === "linear"; -} -function isRadialGradient(val) { - return val.type === "radial"; -} -function isGradient(val) { - return val && (val.type === "linear" || val.type === "radial"); -} -function getIdURL(id) { - return "url(#" + id + ")"; -} -function getPathPrecision(el) { - var scale2 = el.getGlobalScale(); - var size = Math.max(scale2[0], scale2[1]); - return Math.max(Math.ceil(Math.log(size) / Math.log(10)), 1); -} -function getSRTTransformString(transform) { - var x = transform.x || 0; - var y = transform.y || 0; - var rotation = (transform.rotation || 0) * RADIAN_TO_DEGREE; - var scaleX = retrieve2(transform.scaleX, 1); - var scaleY = retrieve2(transform.scaleY, 1); - var skewX = transform.skewX || 0; - var skewY = transform.skewY || 0; - var res = []; - if (x || y) { - res.push("translate(" + x + "px," + y + "px)"); - } - if (rotation) { - res.push("rotate(" + rotation + ")"); - } - if (scaleX !== 1 || scaleY !== 1) { - res.push("scale(" + scaleX + "," + scaleY + ")"); - } - if (skewX || skewY) { - res.push("skew(" + mathRound(skewX * RADIAN_TO_DEGREE) + "deg, " + mathRound(skewY * RADIAN_TO_DEGREE) + "deg)"); - } - return res.join(" "); -} -var encodeBase64 = function() { - if (env$1.hasGlobalWindow && isFunction(window.btoa)) { - return function(str) { - return window.btoa(unescape(encodeURIComponent(str))); - }; - } - if (typeof Buffer !== "undefined") { - return function(str) { - return Buffer.from(str).toString("base64"); - }; - } - return function(str) { - return null; - }; -}(); -var arraySlice = Array.prototype.slice; -function interpolateNumber(p0, p1, percent) { - return (p1 - p0) * percent + p0; -} -function interpolate1DArray(out, p0, p1, percent) { - var len2 = p0.length; - for (var i = 0; i < len2; i++) { - out[i] = interpolateNumber(p0[i], p1[i], percent); - } - return out; -} -function interpolate2DArray(out, p0, p1, percent) { - var len2 = p0.length; - var len22 = len2 && p0[0].length; - for (var i = 0; i < len2; i++) { - if (!out[i]) { - out[i] = []; - } - for (var j = 0; j < len22; j++) { - out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent); - } - } - return out; -} -function add1DArray(out, p0, p1, sign) { - var len2 = p0.length; - for (var i = 0; i < len2; i++) { - out[i] = p0[i] + p1[i] * sign; - } - return out; -} -function add2DArray(out, p0, p1, sign) { - var len2 = p0.length; - var len22 = len2 && p0[0].length; - for (var i = 0; i < len2; i++) { - if (!out[i]) { - out[i] = []; - } - for (var j = 0; j < len22; j++) { - out[i][j] = p0[i][j] + p1[i][j] * sign; - } - } - return out; -} -function fillColorStops(val0, val1) { - var len0 = val0.length; - var len1 = val1.length; - var shorterArr = len0 > len1 ? val1 : val0; - var shorterLen = Math.min(len0, len1); - var last = shorterArr[shorterLen - 1] || { color: [0, 0, 0, 0], offset: 0 }; - for (var i = shorterLen; i < Math.max(len0, len1); i++) { - shorterArr.push({ - offset: last.offset, - color: last.color.slice() - }); - } -} -function fillArray(val0, val1, arrDim) { - var arr0 = val0; - var arr1 = val1; - if (!arr0.push || !arr1.push) { - return; - } - var arr0Len = arr0.length; - var arr1Len = arr1.length; - if (arr0Len !== arr1Len) { - var isPreviousLarger = arr0Len > arr1Len; - if (isPreviousLarger) { - arr0.length = arr1Len; - } else { - for (var i = arr0Len; i < arr1Len; i++) { - arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i])); - } - } - } - var len2 = arr0[0] && arr0[0].length; - for (var i = 0; i < arr0.length; i++) { - if (arrDim === 1) { - if (isNaN(arr0[i])) { - arr0[i] = arr1[i]; - } - } else { - for (var j = 0; j < len2; j++) { - if (isNaN(arr0[i][j])) { - arr0[i][j] = arr1[i][j]; - } - } - } - } -} -function cloneValue(value) { - if (isArrayLike(value)) { - var len2 = value.length; - if (isArrayLike(value[0])) { - var ret = []; - for (var i = 0; i < len2; i++) { - ret.push(arraySlice.call(value[i])); - } - return ret; - } - return arraySlice.call(value); - } - return value; -} -function rgba2String(rgba) { - rgba[0] = Math.floor(rgba[0]) || 0; - rgba[1] = Math.floor(rgba[1]) || 0; - rgba[2] = Math.floor(rgba[2]) || 0; - rgba[3] = rgba[3] == null ? 1 : rgba[3]; - return "rgba(" + rgba.join(",") + ")"; -} -function guessArrayDim(value) { - return isArrayLike(value && value[0]) ? 2 : 1; -} -var VALUE_TYPE_NUMBER = 0; -var VALUE_TYPE_1D_ARRAY = 1; -var VALUE_TYPE_2D_ARRAY = 2; -var VALUE_TYPE_COLOR = 3; -var VALUE_TYPE_LINEAR_GRADIENT = 4; -var VALUE_TYPE_RADIAL_GRADIENT = 5; -var VALUE_TYPE_UNKOWN = 6; -function isGradientValueType(valType) { - return valType === VALUE_TYPE_LINEAR_GRADIENT || valType === VALUE_TYPE_RADIAL_GRADIENT; -} -function isArrayValueType(valType) { - return valType === VALUE_TYPE_1D_ARRAY || valType === VALUE_TYPE_2D_ARRAY; -} -var tmpRgba = [0, 0, 0, 0]; -var Track = function() { - function Track2(propName) { - this.keyframes = []; - this.discrete = false; - this._invalid = false; - this._needsSort = false; - this._lastFr = 0; - this._lastFrP = 0; - this.propName = propName; - } - Track2.prototype.isFinished = function() { - return this._finished; - }; - Track2.prototype.setFinished = function() { - this._finished = true; - if (this._additiveTrack) { - this._additiveTrack.setFinished(); - } - }; - Track2.prototype.needsAnimate = function() { - return this.keyframes.length >= 1; - }; - Track2.prototype.getAdditiveTrack = function() { - return this._additiveTrack; - }; - Track2.prototype.addKeyframe = function(time, rawValue, easing) { - this._needsSort = true; - var keyframes = this.keyframes; - var len2 = keyframes.length; - var discrete = false; - var valType = VALUE_TYPE_UNKOWN; - var value = rawValue; - if (isArrayLike(rawValue)) { - var arrayDim = guessArrayDim(rawValue); - valType = arrayDim; - if (arrayDim === 1 && !isNumber(rawValue[0]) || arrayDim === 2 && !isNumber(rawValue[0][0])) { - discrete = true; - } - } else { - if (isNumber(rawValue) && !eqNaN(rawValue)) { - valType = VALUE_TYPE_NUMBER; - } else if (isString(rawValue)) { - if (!isNaN(+rawValue)) { - valType = VALUE_TYPE_NUMBER; - } else { - var colorArray = parse(rawValue); - if (colorArray) { - value = colorArray; - valType = VALUE_TYPE_COLOR; - } - } - } else if (isGradientObject(rawValue)) { - var parsedGradient = extend({}, value); - parsedGradient.colorStops = map(rawValue.colorStops, function(colorStop) { - return { - offset: colorStop.offset, - color: parse(colorStop.color) - }; - }); - if (isLinearGradient(rawValue)) { - valType = VALUE_TYPE_LINEAR_GRADIENT; - } else if (isRadialGradient(rawValue)) { - valType = VALUE_TYPE_RADIAL_GRADIENT; - } - value = parsedGradient; - } - } - if (len2 === 0) { - this.valType = valType; - } else if (valType !== this.valType || valType === VALUE_TYPE_UNKOWN) { - discrete = true; - } - this.discrete = this.discrete || discrete; - var kf = { - time, - value, - rawValue, - percent: 0 - }; - if (easing) { - kf.easing = easing; - kf.easingFunc = isFunction(easing) ? easing : easingFuncs$1[easing] || createCubicEasingFunc(easing); - } - keyframes.push(kf); - return kf; - }; - Track2.prototype.prepare = function(maxTime, additiveTrack) { - var kfs = this.keyframes; - if (this._needsSort) { - kfs.sort(function(a, b) { - return a.time - b.time; - }); - } - var valType = this.valType; - var kfsLen = kfs.length; - var lastKf = kfs[kfsLen - 1]; - var isDiscrete = this.discrete; - var isArr = isArrayValueType(valType); - var isGradient2 = isGradientValueType(valType); - for (var i = 0; i < kfsLen; i++) { - var kf = kfs[i]; - var value = kf.value; - var lastValue = lastKf.value; - kf.percent = kf.time / maxTime; - if (!isDiscrete) { - if (isArr && i !== kfsLen - 1) { - fillArray(value, lastValue, valType); - } else if (isGradient2) { - fillColorStops(value.colorStops, lastValue.colorStops); - } - } - } - if (!isDiscrete && valType !== VALUE_TYPE_RADIAL_GRADIENT && additiveTrack && this.needsAnimate() && additiveTrack.needsAnimate() && valType === additiveTrack.valType && !additiveTrack._finished) { - this._additiveTrack = additiveTrack; - var startValue = kfs[0].value; - for (var i = 0; i < kfsLen; i++) { - if (valType === VALUE_TYPE_NUMBER) { - kfs[i].additiveValue = kfs[i].value - startValue; - } else if (valType === VALUE_TYPE_COLOR) { - kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1); - } else if (isArrayValueType(valType)) { - kfs[i].additiveValue = valType === VALUE_TYPE_1D_ARRAY ? add1DArray([], kfs[i].value, startValue, -1) : add2DArray([], kfs[i].value, startValue, -1); - } - } - } - }; - Track2.prototype.step = function(target, percent) { - if (this._finished) { - return; - } - if (this._additiveTrack && this._additiveTrack._finished) { - this._additiveTrack = null; - } - var isAdditive = this._additiveTrack != null; - var valueKey = isAdditive ? "additiveValue" : "value"; - var valType = this.valType; - var keyframes = this.keyframes; - var kfsNum = keyframes.length; - var propName = this.propName; - var isValueColor = valType === VALUE_TYPE_COLOR; - var frameIdx; - var lastFrame = this._lastFr; - var mathMin2 = Math.min; - var frame; - var nextFrame; - if (kfsNum === 1) { - frame = nextFrame = keyframes[0]; - } else { - if (percent < 0) { - frameIdx = 0; - } else if (percent < this._lastFrP) { - var start2 = mathMin2(lastFrame + 1, kfsNum - 1); - for (frameIdx = start2; frameIdx >= 0; frameIdx--) { - if (keyframes[frameIdx].percent <= percent) { - break; - } - } - frameIdx = mathMin2(frameIdx, kfsNum - 2); - } else { - for (frameIdx = lastFrame; frameIdx < kfsNum; frameIdx++) { - if (keyframes[frameIdx].percent > percent) { - break; - } - } - frameIdx = mathMin2(frameIdx - 1, kfsNum - 2); - } - nextFrame = keyframes[frameIdx + 1]; - frame = keyframes[frameIdx]; - } - if (!(frame && nextFrame)) { - return; - } - this._lastFr = frameIdx; - this._lastFrP = percent; - var interval = nextFrame.percent - frame.percent; - var w = interval === 0 ? 1 : mathMin2((percent - frame.percent) / interval, 1); - if (nextFrame.easingFunc) { - w = nextFrame.easingFunc(w); - } - var targetArr = isAdditive ? this._additiveValue : isValueColor ? tmpRgba : target[propName]; - if ((isArrayValueType(valType) || isValueColor) && !targetArr) { - targetArr = this._additiveValue = []; - } - if (this.discrete) { - target[propName] = w < 1 ? frame.rawValue : nextFrame.rawValue; - } else if (isArrayValueType(valType)) { - valType === VALUE_TYPE_1D_ARRAY ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w) : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w); - } else if (isGradientValueType(valType)) { - var val = frame[valueKey]; - var nextVal_1 = nextFrame[valueKey]; - var isLinearGradient_1 = valType === VALUE_TYPE_LINEAR_GRADIENT; - target[propName] = { - type: isLinearGradient_1 ? "linear" : "radial", - x: interpolateNumber(val.x, nextVal_1.x, w), - y: interpolateNumber(val.y, nextVal_1.y, w), - colorStops: map(val.colorStops, function(colorStop, idx) { - var nextColorStop = nextVal_1.colorStops[idx]; - return { - offset: interpolateNumber(colorStop.offset, nextColorStop.offset, w), - color: rgba2String(interpolate1DArray([], colorStop.color, nextColorStop.color, w)) - }; - }), - global: nextVal_1.global - }; - if (isLinearGradient_1) { - target[propName].x2 = interpolateNumber(val.x2, nextVal_1.x2, w); - target[propName].y2 = interpolateNumber(val.y2, nextVal_1.y2, w); - } else { - target[propName].r = interpolateNumber(val.r, nextVal_1.r, w); - } - } else if (isValueColor) { - interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w); - if (!isAdditive) { - target[propName] = rgba2String(targetArr); - } - } else { - var value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w); - if (isAdditive) { - this._additiveValue = value; - } else { - target[propName] = value; - } - } - if (isAdditive) { - this._addToTarget(target); - } - }; - Track2.prototype._addToTarget = function(target) { - var valType = this.valType; - var propName = this.propName; - var additiveValue = this._additiveValue; - if (valType === VALUE_TYPE_NUMBER) { - target[propName] = target[propName] + additiveValue; - } else if (valType === VALUE_TYPE_COLOR) { - parse(target[propName], tmpRgba); - add1DArray(tmpRgba, tmpRgba, additiveValue, 1); - target[propName] = rgba2String(tmpRgba); - } else if (valType === VALUE_TYPE_1D_ARRAY) { - add1DArray(target[propName], target[propName], additiveValue, 1); - } else if (valType === VALUE_TYPE_2D_ARRAY) { - add2DArray(target[propName], target[propName], additiveValue, 1); - } - }; - return Track2; -}(); -var Animator = function() { - function Animator2(target, loop, allowDiscreteAnimation, additiveTo) { - this._tracks = {}; - this._trackKeys = []; - this._maxTime = 0; - this._started = 0; - this._clip = null; - this._target = target; - this._loop = loop; - if (loop && additiveTo) { - logError("Can' use additive animation on looped animation."); - return; - } - this._additiveAnimators = additiveTo; - this._allowDiscrete = allowDiscreteAnimation; - } - Animator2.prototype.getMaxTime = function() { - return this._maxTime; - }; - Animator2.prototype.getDelay = function() { - return this._delay; - }; - Animator2.prototype.getLoop = function() { - return this._loop; - }; - Animator2.prototype.getTarget = function() { - return this._target; - }; - Animator2.prototype.changeTarget = function(target) { - this._target = target; - }; - Animator2.prototype.when = function(time, props, easing) { - return this.whenWithKeys(time, props, keys(props), easing); - }; - Animator2.prototype.whenWithKeys = function(time, props, propNames, easing) { - var tracks = this._tracks; - for (var i = 0; i < propNames.length; i++) { - var propName = propNames[i]; - var track = tracks[propName]; - if (!track) { - track = tracks[propName] = new Track(propName); - var initialValue = void 0; - var additiveTrack = this._getAdditiveTrack(propName); - if (additiveTrack) { - var addtiveTrackKfs = additiveTrack.keyframes; - var lastFinalKf = addtiveTrackKfs[addtiveTrackKfs.length - 1]; - initialValue = lastFinalKf && lastFinalKf.value; - if (additiveTrack.valType === VALUE_TYPE_COLOR && initialValue) { - initialValue = rgba2String(initialValue); - } - } else { - initialValue = this._target[propName]; - } - if (initialValue == null) { - continue; - } - if (time > 0) { - track.addKeyframe(0, cloneValue(initialValue), easing); - } - this._trackKeys.push(propName); - } - track.addKeyframe(time, cloneValue(props[propName]), easing); - } - this._maxTime = Math.max(this._maxTime, time); - return this; - }; - Animator2.prototype.pause = function() { - this._clip.pause(); - this._paused = true; - }; - Animator2.prototype.resume = function() { - this._clip.resume(); - this._paused = false; - }; - Animator2.prototype.isPaused = function() { - return !!this._paused; - }; - Animator2.prototype.duration = function(duration) { - this._maxTime = duration; - this._force = true; - return this; - }; - Animator2.prototype._doneCallback = function() { - this._setTracksFinished(); - this._clip = null; - var doneList = this._doneCbs; - if (doneList) { - var len2 = doneList.length; - for (var i = 0; i < len2; i++) { - doneList[i].call(this); - } - } - }; - Animator2.prototype._abortedCallback = function() { - this._setTracksFinished(); - var animation = this.animation; - var abortedList = this._abortedCbs; - if (animation) { - animation.removeClip(this._clip); - } - this._clip = null; - if (abortedList) { - for (var i = 0; i < abortedList.length; i++) { - abortedList[i].call(this); - } - } - }; - Animator2.prototype._setTracksFinished = function() { - var tracks = this._tracks; - var tracksKeys = this._trackKeys; - for (var i = 0; i < tracksKeys.length; i++) { - tracks[tracksKeys[i]].setFinished(); - } - }; - Animator2.prototype._getAdditiveTrack = function(trackName) { - var additiveTrack; - var additiveAnimators = this._additiveAnimators; - if (additiveAnimators) { - for (var i = 0; i < additiveAnimators.length; i++) { - var track = additiveAnimators[i].getTrack(trackName); - if (track) { - additiveTrack = track; - } - } - } - return additiveTrack; - }; - Animator2.prototype.start = function(easing) { - if (this._started > 0) { - return; - } - this._started = 1; - var self2 = this; - var tracks = []; - var maxTime = this._maxTime || 0; - for (var i = 0; i < this._trackKeys.length; i++) { - var propName = this._trackKeys[i]; - var track = this._tracks[propName]; - var additiveTrack = this._getAdditiveTrack(propName); - var kfs = track.keyframes; - var kfsNum = kfs.length; - track.prepare(maxTime, additiveTrack); - if (track.needsAnimate()) { - if (!this._allowDiscrete && track.discrete) { - var lastKf = kfs[kfsNum - 1]; - if (lastKf) { - self2._target[track.propName] = lastKf.rawValue; - } - track.setFinished(); - } else { - tracks.push(track); - } - } - } - if (tracks.length || this._force) { - var clip = new Clip$1({ - life: maxTime, - loop: this._loop, - delay: this._delay || 0, - onframe: function(percent) { - self2._started = 2; - var additiveAnimators = self2._additiveAnimators; - if (additiveAnimators) { - var stillHasAdditiveAnimator = false; - for (var i2 = 0; i2 < additiveAnimators.length; i2++) { - if (additiveAnimators[i2]._clip) { - stillHasAdditiveAnimator = true; - break; - } - } - if (!stillHasAdditiveAnimator) { - self2._additiveAnimators = null; - } - } - for (var i2 = 0; i2 < tracks.length; i2++) { - tracks[i2].step(self2._target, percent); - } - var onframeList = self2._onframeCbs; - if (onframeList) { - for (var i2 = 0; i2 < onframeList.length; i2++) { - onframeList[i2](self2._target, percent); - } - } - }, - ondestroy: function() { - self2._doneCallback(); - } - }); - this._clip = clip; - if (this.animation) { - this.animation.addClip(clip); - } - if (easing) { - clip.setEasing(easing); - } - } else { - this._doneCallback(); - } - return this; - }; - Animator2.prototype.stop = function(forwardToLast) { - if (!this._clip) { - return; - } - var clip = this._clip; - if (forwardToLast) { - clip.onframe(1); - } - this._abortedCallback(); - }; - Animator2.prototype.delay = function(time) { - this._delay = time; - return this; - }; - Animator2.prototype.during = function(cb) { - if (cb) { - if (!this._onframeCbs) { - this._onframeCbs = []; - } - this._onframeCbs.push(cb); - } - return this; - }; - Animator2.prototype.done = function(cb) { - if (cb) { - if (!this._doneCbs) { - this._doneCbs = []; - } - this._doneCbs.push(cb); - } - return this; - }; - Animator2.prototype.aborted = function(cb) { - if (cb) { - if (!this._abortedCbs) { - this._abortedCbs = []; - } - this._abortedCbs.push(cb); - } - return this; - }; - Animator2.prototype.getClip = function() { - return this._clip; - }; - Animator2.prototype.getTrack = function(propName) { - return this._tracks[propName]; - }; - Animator2.prototype.getTracks = function() { - var _this = this; - return map(this._trackKeys, function(key) { - return _this._tracks[key]; - }); - }; - Animator2.prototype.stopTracks = function(propNames, forwardToLast) { - if (!propNames.length || !this._clip) { - return true; - } - var tracks = this._tracks; - var tracksKeys = this._trackKeys; - for (var i = 0; i < propNames.length; i++) { - var track = tracks[propNames[i]]; - if (track && !track.isFinished()) { - if (forwardToLast) { - track.step(this._target, 1); - } else if (this._started === 1) { - track.step(this._target, 0); - } - track.setFinished(); - } - } - var allAborted = true; - for (var i = 0; i < tracksKeys.length; i++) { - if (!tracks[tracksKeys[i]].isFinished()) { - allAborted = false; - break; - } - } - if (allAborted) { - this._abortedCallback(); - } - return allAborted; - }; - Animator2.prototype.saveTo = function(target, trackKeys, firstOrLast) { - if (!target) { - return; - } - trackKeys = trackKeys || this._trackKeys; - for (var i = 0; i < trackKeys.length; i++) { - var propName = trackKeys[i]; - var track = this._tracks[propName]; - if (!track || track.isFinished()) { - continue; - } - var kfs = track.keyframes; - var kf = kfs[firstOrLast ? 0 : kfs.length - 1]; - if (kf) { - target[propName] = cloneValue(kf.rawValue); - } - } - }; - Animator2.prototype.__changeFinalValue = function(finalProps, trackKeys) { - trackKeys = trackKeys || keys(finalProps); - for (var i = 0; i < trackKeys.length; i++) { - var propName = trackKeys[i]; - var track = this._tracks[propName]; - if (!track) { - continue; - } - var kfs = track.keyframes; - if (kfs.length > 1) { - var lastKf = kfs.pop(); - track.addKeyframe(lastKf.time, finalProps[propName]); - track.prepare(this._maxTime, track.getAdditiveTrack()); - } - } - }; - return Animator2; -}(); -const Animator$1 = Animator; -var dpr = 1; -if (env$1.hasGlobalWindow) { - dpr = Math.max(window.devicePixelRatio || window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI || 1, 1); -} -var devicePixelRatio = dpr; -var DARK_MODE_THRESHOLD = 0.4; -var DARK_LABEL_COLOR = "#333"; -var LIGHT_LABEL_COLOR = "#ccc"; -var LIGHTER_LABEL_COLOR = "#eee"; -var mIdentity = identity; -var EPSILON$1 = 5e-5; -function isNotAroundZero(val) { - return val > EPSILON$1 || val < -EPSILON$1; -} -var scaleTmp = []; -var tmpTransform = []; -var originTransform = create(); -var abs = Math.abs; -var Transformable = function() { - function Transformable2() { - } - Transformable2.prototype.getLocalTransform = function(m) { - return Transformable2.getLocalTransform(this, m); - }; - Transformable2.prototype.setPosition = function(arr) { - this.x = arr[0]; - this.y = arr[1]; - }; - Transformable2.prototype.setScale = function(arr) { - this.scaleX = arr[0]; - this.scaleY = arr[1]; - }; - Transformable2.prototype.setSkew = function(arr) { - this.skewX = arr[0]; - this.skewY = arr[1]; - }; - Transformable2.prototype.setOrigin = function(arr) { - this.originX = arr[0]; - this.originY = arr[1]; - }; - Transformable2.prototype.needLocalTransform = function() { - return isNotAroundZero(this.rotation) || isNotAroundZero(this.x) || isNotAroundZero(this.y) || isNotAroundZero(this.scaleX - 1) || isNotAroundZero(this.scaleY - 1) || isNotAroundZero(this.skewX) || isNotAroundZero(this.skewY); - }; - Transformable2.prototype.updateTransform = function() { - var parentTransform = this.parent && this.parent.transform; - var needLocalTransform = this.needLocalTransform(); - var m = this.transform; - if (!(needLocalTransform || parentTransform)) { - m && mIdentity(m); - return; - } - m = m || create(); - if (needLocalTransform) { - this.getLocalTransform(m); - } else { - mIdentity(m); - } - if (parentTransform) { - if (needLocalTransform) { - mul(m, parentTransform, m); - } else { - copy(m, parentTransform); - } - } - this.transform = m; - this._resolveGlobalScaleRatio(m); - }; - Transformable2.prototype._resolveGlobalScaleRatio = function(m) { - var globalScaleRatio = this.globalScaleRatio; - if (globalScaleRatio != null && globalScaleRatio !== 1) { - this.getGlobalScale(scaleTmp); - var relX = scaleTmp[0] < 0 ? -1 : 1; - var relY = scaleTmp[1] < 0 ? -1 : 1; - var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0; - var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0; - m[0] *= sx; - m[1] *= sx; - m[2] *= sy; - m[3] *= sy; - } - this.invTransform = this.invTransform || create(); - invert(this.invTransform, m); - }; - Transformable2.prototype.getComputedTransform = function() { - var transformNode = this; - var ancestors = []; - while (transformNode) { - ancestors.push(transformNode); - transformNode = transformNode.parent; - } - while (transformNode = ancestors.pop()) { - transformNode.updateTransform(); - } - return this.transform; - }; - Transformable2.prototype.setLocalTransform = function(m) { - if (!m) { - return; - } - var sx = m[0] * m[0] + m[1] * m[1]; - var sy = m[2] * m[2] + m[3] * m[3]; - var rotation = Math.atan2(m[1], m[0]); - var shearX = Math.PI / 2 + rotation - Math.atan2(m[3], m[2]); - sy = Math.sqrt(sy) * Math.cos(shearX); - sx = Math.sqrt(sx); - this.skewX = shearX; - this.skewY = 0; - this.rotation = -rotation; - this.x = +m[4]; - this.y = +m[5]; - this.scaleX = sx; - this.scaleY = sy; - this.originX = 0; - this.originY = 0; - }; - Transformable2.prototype.decomposeTransform = function() { - if (!this.transform) { - return; - } - var parent = this.parent; - var m = this.transform; - if (parent && parent.transform) { - mul(tmpTransform, parent.invTransform, m); - m = tmpTransform; - } - var ox = this.originX; - var oy = this.originY; - if (ox || oy) { - originTransform[4] = ox; - originTransform[5] = oy; - mul(tmpTransform, m, originTransform); - tmpTransform[4] -= ox; - tmpTransform[5] -= oy; - m = tmpTransform; - } - this.setLocalTransform(m); - }; - Transformable2.prototype.getGlobalScale = function(out) { - var m = this.transform; - out = out || []; - if (!m) { - out[0] = 1; - out[1] = 1; - return out; - } - out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]); - out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]); - if (m[0] < 0) { - out[0] = -out[0]; - } - if (m[3] < 0) { - out[1] = -out[1]; - } - return out; - }; - Transformable2.prototype.transformCoordToLocal = function(x, y) { - var v2 = [x, y]; - var invTransform = this.invTransform; - if (invTransform) { - applyTransform(v2, v2, invTransform); - } - return v2; - }; - Transformable2.prototype.transformCoordToGlobal = function(x, y) { - var v2 = [x, y]; - var transform = this.transform; - if (transform) { - applyTransform(v2, v2, transform); - } - return v2; - }; - Transformable2.prototype.getLineScale = function() { - var m = this.transform; - return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10 ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1])) : 1; - }; - Transformable2.prototype.copyTransform = function(source) { - copyTransform(this, source); - }; - Transformable2.getLocalTransform = function(target, m) { - m = m || []; - var ox = target.originX || 0; - var oy = target.originY || 0; - var sx = target.scaleX; - var sy = target.scaleY; - var ax = target.anchorX; - var ay = target.anchorY; - var rotation = target.rotation || 0; - var x = target.x; - var y = target.y; - var skewX = target.skewX ? Math.tan(target.skewX) : 0; - var skewY = target.skewY ? Math.tan(-target.skewY) : 0; - if (ox || oy || ax || ay) { - var dx = ox + ax; - var dy = oy + ay; - m[4] = -dx * sx - skewX * dy * sy; - m[5] = -dy * sy - skewY * dx * sx; - } else { - m[4] = m[5] = 0; - } - m[0] = sx; - m[3] = sy; - m[1] = skewY * sx; - m[2] = skewX * sy; - rotation && rotate(m, m, rotation); - m[4] += ox + x; - m[5] += oy + y; - return m; - }; - Transformable2.initDefaultProps = function() { - var proto = Transformable2.prototype; - proto.scaleX = proto.scaleY = proto.globalScaleRatio = 1; - proto.x = proto.y = proto.originX = proto.originY = proto.skewX = proto.skewY = proto.rotation = proto.anchorX = proto.anchorY = 0; - }(); - return Transformable2; -}(); -var TRANSFORMABLE_PROPS = [ - "x", - "y", - "originX", - "originY", - "anchorX", - "anchorY", - "rotation", - "scaleX", - "scaleY", - "skewX", - "skewY" -]; -function copyTransform(target, source) { - for (var i = 0; i < TRANSFORMABLE_PROPS.length; i++) { - var propName = TRANSFORMABLE_PROPS[i]; - target[propName] = source[propName]; - } -} -const Transformable$1 = Transformable; -var textWidthCache = {}; -function getWidth(text, font) { - font = font || DEFAULT_FONT; - var cacheOfFont = textWidthCache[font]; - if (!cacheOfFont) { - cacheOfFont = textWidthCache[font] = new LRU$1(500); - } - var width = cacheOfFont.get(text); - if (width == null) { - width = platformApi.measureText(text, font).width; - cacheOfFont.put(text, width); - } - return width; -} -function innerGetBoundingRect(text, font, textAlign, textBaseline) { - var width = getWidth(text, font); - var height = getLineHeight(font); - var x = adjustTextX(0, width, textAlign); - var y = adjustTextY(0, height, textBaseline); - var rect = new BoundingRect$1(x, y, width, height); - return rect; -} -function getBoundingRect(text, font, textAlign, textBaseline) { - var textLines = ((text || "") + "").split("\n"); - var len2 = textLines.length; - if (len2 === 1) { - return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline); - } else { - var uniondRect = new BoundingRect$1(0, 0, 0, 0); - for (var i = 0; i < textLines.length; i++) { - var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline); - i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect); - } - return uniondRect; - } -} -function adjustTextX(x, width, textAlign) { - if (textAlign === "right") { - x -= width; - } else if (textAlign === "center") { - x -= width / 2; - } - return x; -} -function adjustTextY(y, height, verticalAlign) { - if (verticalAlign === "middle") { - y -= height / 2; - } else if (verticalAlign === "bottom") { - y -= height; - } - return y; -} -function getLineHeight(font) { - return getWidth("国", font); -} -function parsePercent(value, maxValue) { - if (typeof value === "string") { - if (value.lastIndexOf("%") >= 0) { - return parseFloat(value) / 100 * maxValue; - } - return parseFloat(value); - } - return value; -} -function calculateTextPosition(out, opts, rect) { - var textPosition = opts.position || "inside"; - var distance2 = opts.distance != null ? opts.distance : 5; - var height = rect.height; - var width = rect.width; - var halfHeight = height / 2; - var x = rect.x; - var y = rect.y; - var textAlign = "left"; - var textVerticalAlign = "top"; - if (textPosition instanceof Array) { - x += parsePercent(textPosition[0], rect.width); - y += parsePercent(textPosition[1], rect.height); - textAlign = null; - textVerticalAlign = null; - } else { - switch (textPosition) { - case "left": - x -= distance2; - y += halfHeight; - textAlign = "right"; - textVerticalAlign = "middle"; - break; - case "right": - x += distance2 + width; - y += halfHeight; - textVerticalAlign = "middle"; - break; - case "top": - x += width / 2; - y -= distance2; - textAlign = "center"; - textVerticalAlign = "bottom"; - break; - case "bottom": - x += width / 2; - y += height + distance2; - textAlign = "center"; - break; - case "inside": - x += width / 2; - y += halfHeight; - textAlign = "center"; - textVerticalAlign = "middle"; - break; - case "insideLeft": - x += distance2; - y += halfHeight; - textVerticalAlign = "middle"; - break; - case "insideRight": - x += width - distance2; - y += halfHeight; - textAlign = "right"; - textVerticalAlign = "middle"; - break; - case "insideTop": - x += width / 2; - y += distance2; - textAlign = "center"; - break; - case "insideBottom": - x += width / 2; - y += height - distance2; - textAlign = "center"; - textVerticalAlign = "bottom"; - break; - case "insideTopLeft": - x += distance2; - y += distance2; - break; - case "insideTopRight": - x += width - distance2; - y += distance2; - textAlign = "right"; - break; - case "insideBottomLeft": - x += distance2; - y += height - distance2; - textVerticalAlign = "bottom"; - break; - case "insideBottomRight": - x += width - distance2; - y += height - distance2; - textAlign = "right"; - textVerticalAlign = "bottom"; - break; - } - } - out = out || {}; - out.x = x; - out.y = y; - out.align = textAlign; - out.verticalAlign = textVerticalAlign; - return out; -} -var PRESERVED_NORMAL_STATE = "__zr_normal__"; -var PRIMARY_STATES_KEYS$1 = TRANSFORMABLE_PROPS.concat(["ignore"]); -var DEFAULT_ANIMATABLE_MAP = reduce(TRANSFORMABLE_PROPS, function(obj, key) { - obj[key] = true; - return obj; -}, { ignore: false }); -var tmpTextPosCalcRes = {}; -var tmpBoundingRect = new BoundingRect$1(0, 0, 0, 0); -var Element = function() { - function Element2(props) { - this.id = guid(); - this.animators = []; - this.currentStates = []; - this.states = {}; - this._init(props); - } - Element2.prototype._init = function(props) { - this.attr(props); - }; - Element2.prototype.drift = function(dx, dy, e) { - switch (this.draggable) { - case "horizontal": - dy = 0; - break; - case "vertical": - dx = 0; - break; - } - var m = this.transform; - if (!m) { - m = this.transform = [1, 0, 0, 1, 0, 0]; - } - m[4] += dx; - m[5] += dy; - this.decomposeTransform(); - this.markRedraw(); - }; - Element2.prototype.beforeUpdate = function() { - }; - Element2.prototype.afterUpdate = function() { - }; - Element2.prototype.update = function() { - this.updateTransform(); - if (this.__dirty) { - this.updateInnerText(); - } - }; - Element2.prototype.updateInnerText = function(forceUpdate) { - var textEl = this._textContent; - if (textEl && (!textEl.ignore || forceUpdate)) { - if (!this.textConfig) { - this.textConfig = {}; - } - var textConfig = this.textConfig; - var isLocal = textConfig.local; - var innerTransformable = textEl.innerTransformable; - var textAlign = void 0; - var textVerticalAlign = void 0; - var textStyleChanged = false; - innerTransformable.parent = isLocal ? this : null; - var innerOrigin = false; - innerTransformable.copyTransform(textEl); - if (textConfig.position != null) { - var layoutRect = tmpBoundingRect; - if (textConfig.layoutRect) { - layoutRect.copy(textConfig.layoutRect); - } else { - layoutRect.copy(this.getBoundingRect()); - } - if (!isLocal) { - layoutRect.applyTransform(this.transform); - } - if (this.calculateTextPosition) { - this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect); - } else { - calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect); - } - innerTransformable.x = tmpTextPosCalcRes.x; - innerTransformable.y = tmpTextPosCalcRes.y; - textAlign = tmpTextPosCalcRes.align; - textVerticalAlign = tmpTextPosCalcRes.verticalAlign; - var textOrigin = textConfig.origin; - if (textOrigin && textConfig.rotation != null) { - var relOriginX = void 0; - var relOriginY = void 0; - if (textOrigin === "center") { - relOriginX = layoutRect.width * 0.5; - relOriginY = layoutRect.height * 0.5; - } else { - relOriginX = parsePercent(textOrigin[0], layoutRect.width); - relOriginY = parsePercent(textOrigin[1], layoutRect.height); - } - innerOrigin = true; - innerTransformable.originX = -innerTransformable.x + relOriginX + (isLocal ? 0 : layoutRect.x); - innerTransformable.originY = -innerTransformable.y + relOriginY + (isLocal ? 0 : layoutRect.y); - } - } - if (textConfig.rotation != null) { - innerTransformable.rotation = textConfig.rotation; - } - var textOffset = textConfig.offset; - if (textOffset) { - innerTransformable.x += textOffset[0]; - innerTransformable.y += textOffset[1]; - if (!innerOrigin) { - innerTransformable.originX = -textOffset[0]; - innerTransformable.originY = -textOffset[1]; - } - } - var isInside = textConfig.inside == null ? typeof textConfig.position === "string" && textConfig.position.indexOf("inside") >= 0 : textConfig.inside; - var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {}); - var textFill = void 0; - var textStroke = void 0; - var autoStroke = void 0; - if (isInside && this.canBeInsideText()) { - textFill = textConfig.insideFill; - textStroke = textConfig.insideStroke; - if (textFill == null || textFill === "auto") { - textFill = this.getInsideTextFill(); - } - if (textStroke == null || textStroke === "auto") { - textStroke = this.getInsideTextStroke(textFill); - autoStroke = true; - } - } else { - textFill = textConfig.outsideFill; - textStroke = textConfig.outsideStroke; - if (textFill == null || textFill === "auto") { - textFill = this.getOutsideFill(); - } - if (textStroke == null || textStroke === "auto") { - textStroke = this.getOutsideStroke(textFill); - autoStroke = true; - } - } - textFill = textFill || "#000"; - if (textFill !== innerTextDefaultStyle.fill || textStroke !== innerTextDefaultStyle.stroke || autoStroke !== innerTextDefaultStyle.autoStroke || textAlign !== innerTextDefaultStyle.align || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) { - textStyleChanged = true; - innerTextDefaultStyle.fill = textFill; - innerTextDefaultStyle.stroke = textStroke; - innerTextDefaultStyle.autoStroke = autoStroke; - innerTextDefaultStyle.align = textAlign; - innerTextDefaultStyle.verticalAlign = textVerticalAlign; - textEl.setDefaultTextStyle(innerTextDefaultStyle); - } - textEl.__dirty |= REDRAW_BIT; - if (textStyleChanged) { - textEl.dirtyStyle(true); - } - } - }; - Element2.prototype.canBeInsideText = function() { - return true; - }; - Element2.prototype.getInsideTextFill = function() { - return "#fff"; - }; - Element2.prototype.getInsideTextStroke = function(textFill) { - return "#000"; - }; - Element2.prototype.getOutsideFill = function() { - return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR; - }; - Element2.prototype.getOutsideStroke = function(textFill) { - var backgroundColor = this.__zr && this.__zr.getBackgroundColor(); - var colorArr = typeof backgroundColor === "string" && parse(backgroundColor); - if (!colorArr) { - colorArr = [255, 255, 255, 1]; - } - var alpha = colorArr[3]; - var isDark = this.__zr.isDarkMode(); - for (var i = 0; i < 3; i++) { - colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha); - } - colorArr[3] = 1; - return stringify(colorArr, "rgba"); - }; - Element2.prototype.traverse = function(cb, context) { - }; - Element2.prototype.attrKV = function(key, value) { - if (key === "textConfig") { - this.setTextConfig(value); - } else if (key === "textContent") { - this.setTextContent(value); - } else if (key === "clipPath") { - this.setClipPath(value); - } else if (key === "extra") { - this.extra = this.extra || {}; - extend(this.extra, value); - } else { - this[key] = value; - } - }; - Element2.prototype.hide = function() { - this.ignore = true; - this.markRedraw(); - }; - Element2.prototype.show = function() { - this.ignore = false; - this.markRedraw(); - }; - Element2.prototype.attr = function(keyOrObj, value) { - if (typeof keyOrObj === "string") { - this.attrKV(keyOrObj, value); - } else if (isObject(keyOrObj)) { - var obj = keyOrObj; - var keysArr = keys(obj); - for (var i = 0; i < keysArr.length; i++) { - var key = keysArr[i]; - this.attrKV(key, keyOrObj[key]); - } - } - this.markRedraw(); - return this; - }; - Element2.prototype.saveCurrentToNormalState = function(toState) { - this._innerSaveToNormal(toState); - var normalState = this._normalState; - for (var i = 0; i < this.animators.length; i++) { - var animator = this.animators[i]; - var fromStateTransition = animator.__fromStateTransition; - if (animator.getLoop() || fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) { - continue; - } - var targetName = animator.targetName; - var target = targetName ? normalState[targetName] : normalState; - animator.saveTo(target); - } - }; - Element2.prototype._innerSaveToNormal = function(toState) { - var normalState = this._normalState; - if (!normalState) { - normalState = this._normalState = {}; - } - if (toState.textConfig && !normalState.textConfig) { - normalState.textConfig = this.textConfig; - } - this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS$1); - }; - Element2.prototype._savePrimaryToNormal = function(toState, normalState, primaryKeys) { - for (var i = 0; i < primaryKeys.length; i++) { - var key = primaryKeys[i]; - if (toState[key] != null && !(key in normalState)) { - normalState[key] = this[key]; - } - } - }; - Element2.prototype.hasState = function() { - return this.currentStates.length > 0; - }; - Element2.prototype.getState = function(name) { - return this.states[name]; - }; - Element2.prototype.ensureState = function(name) { - var states = this.states; - if (!states[name]) { - states[name] = {}; - } - return states[name]; - }; - Element2.prototype.clearStates = function(noAnimation) { - this.useState(PRESERVED_NORMAL_STATE, false, noAnimation); - }; - Element2.prototype.useState = function(stateName, keepCurrentStates, noAnimation, forceUseHoverLayer) { - var toNormalState = stateName === PRESERVED_NORMAL_STATE; - var hasStates = this.hasState(); - if (!hasStates && toNormalState) { - return; - } - var currentStates = this.currentStates; - var animationCfg = this.stateTransition; - if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) { - return; - } - var state; - if (this.stateProxy && !toNormalState) { - state = this.stateProxy(stateName); - } - if (!state) { - state = this.states && this.states[stateName]; - } - if (!state && !toNormalState) { - logError("State " + stateName + " not exists."); - return; - } - if (!toNormalState) { - this.saveCurrentToNormalState(state); - } - var useHoverLayer = !!(state && state.hoverLayer || forceUseHoverLayer); - if (useHoverLayer) { - this._toggleHoverLayerFlag(true); - } - this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg); - var textContent = this._textContent; - var textGuide = this._textGuide; - if (textContent) { - textContent.useState(stateName, keepCurrentStates, noAnimation, useHoverLayer); - } - if (textGuide) { - textGuide.useState(stateName, keepCurrentStates, noAnimation, useHoverLayer); - } - if (toNormalState) { - this.currentStates = []; - this._normalState = {}; - } else { - if (!keepCurrentStates) { - this.currentStates = [stateName]; - } else { - this.currentStates.push(stateName); - } - } - this._updateAnimationTargets(); - this.markRedraw(); - if (!useHoverLayer && this.__inHover) { - this._toggleHoverLayerFlag(false); - this.__dirty &= ~REDRAW_BIT; - } - return state; - }; - Element2.prototype.useStates = function(states, noAnimation, forceUseHoverLayer) { - if (!states.length) { - this.clearStates(); - } else { - var stateObjects = []; - var currentStates = this.currentStates; - var len2 = states.length; - var notChange = len2 === currentStates.length; - if (notChange) { - for (var i = 0; i < len2; i++) { - if (states[i] !== currentStates[i]) { - notChange = false; - break; - } - } - } - if (notChange) { - return; - } - for (var i = 0; i < len2; i++) { - var stateName = states[i]; - var stateObj = void 0; - if (this.stateProxy) { - stateObj = this.stateProxy(stateName, states); - } - if (!stateObj) { - stateObj = this.states[stateName]; - } - if (stateObj) { - stateObjects.push(stateObj); - } - } - var lastStateObj = stateObjects[len2 - 1]; - var useHoverLayer = !!(lastStateObj && lastStateObj.hoverLayer || forceUseHoverLayer); - if (useHoverLayer) { - this._toggleHoverLayerFlag(true); - } - var mergedState = this._mergeStates(stateObjects); - var animationCfg = this.stateTransition; - this.saveCurrentToNormalState(mergedState); - this._applyStateObj(states.join(","), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg); - var textContent = this._textContent; - var textGuide = this._textGuide; - if (textContent) { - textContent.useStates(states, noAnimation, useHoverLayer); - } - if (textGuide) { - textGuide.useStates(states, noAnimation, useHoverLayer); - } - this._updateAnimationTargets(); - this.currentStates = states.slice(); - this.markRedraw(); - if (!useHoverLayer && this.__inHover) { - this._toggleHoverLayerFlag(false); - this.__dirty &= ~REDRAW_BIT; - } - } - }; - Element2.prototype._updateAnimationTargets = function() { - for (var i = 0; i < this.animators.length; i++) { - var animator = this.animators[i]; - if (animator.targetName) { - animator.changeTarget(this[animator.targetName]); - } - } - }; - Element2.prototype.removeState = function(state) { - var idx = indexOf(this.currentStates, state); - if (idx >= 0) { - var currentStates = this.currentStates.slice(); - currentStates.splice(idx, 1); - this.useStates(currentStates); - } - }; - Element2.prototype.replaceState = function(oldState, newState, forceAdd) { - var currentStates = this.currentStates.slice(); - var idx = indexOf(currentStates, oldState); - var newStateExists = indexOf(currentStates, newState) >= 0; - if (idx >= 0) { - if (!newStateExists) { - currentStates[idx] = newState; - } else { - currentStates.splice(idx, 1); - } - } else if (forceAdd && !newStateExists) { - currentStates.push(newState); - } - this.useStates(currentStates); - }; - Element2.prototype.toggleState = function(state, enable) { - if (enable) { - this.useState(state, true); - } else { - this.removeState(state); - } - }; - Element2.prototype._mergeStates = function(states) { - var mergedState = {}; - var mergedTextConfig; - for (var i = 0; i < states.length; i++) { - var state = states[i]; - extend(mergedState, state); - if (state.textConfig) { - mergedTextConfig = mergedTextConfig || {}; - extend(mergedTextConfig, state.textConfig); - } - } - if (mergedTextConfig) { - mergedState.textConfig = mergedTextConfig; - } - return mergedState; - }; - Element2.prototype._applyStateObj = function(stateName, state, normalState, keepCurrentStates, transition, animationCfg) { - var needsRestoreToNormal = !(state && keepCurrentStates); - if (state && state.textConfig) { - this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig); - extend(this.textConfig, state.textConfig); - } else if (needsRestoreToNormal) { - if (normalState.textConfig) { - this.textConfig = normalState.textConfig; - } - } - var transitionTarget = {}; - var hasTransition = false; - for (var i = 0; i < PRIMARY_STATES_KEYS$1.length; i++) { - var key = PRIMARY_STATES_KEYS$1[i]; - var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key]; - if (state && state[key] != null) { - if (propNeedsTransition) { - hasTransition = true; - transitionTarget[key] = state[key]; - } else { - this[key] = state[key]; - } - } else if (needsRestoreToNormal) { - if (normalState[key] != null) { - if (propNeedsTransition) { - hasTransition = true; - transitionTarget[key] = normalState[key]; - } else { - this[key] = normalState[key]; - } - } - } - } - if (!transition) { - for (var i = 0; i < this.animators.length; i++) { - var animator = this.animators[i]; - var targetName = animator.targetName; - if (!animator.getLoop()) { - animator.__changeFinalValue(targetName ? (state || normalState)[targetName] : state || normalState); - } - } - } - if (hasTransition) { - this._transitionState(stateName, transitionTarget, animationCfg); - } - }; - Element2.prototype._attachComponent = function(componentEl) { - if (componentEl.__zr && !componentEl.__hostTarget) { - return; - } - if (componentEl === this) { - return; - } - var zr = this.__zr; - if (zr) { - componentEl.addSelfToZr(zr); - } - componentEl.__zr = zr; - componentEl.__hostTarget = this; - }; - Element2.prototype._detachComponent = function(componentEl) { - if (componentEl.__zr) { - componentEl.removeSelfFromZr(componentEl.__zr); - } - componentEl.__zr = null; - componentEl.__hostTarget = null; - }; - Element2.prototype.getClipPath = function() { - return this._clipPath; - }; - Element2.prototype.setClipPath = function(clipPath) { - if (this._clipPath && this._clipPath !== clipPath) { - this.removeClipPath(); - } - this._attachComponent(clipPath); - this._clipPath = clipPath; - this.markRedraw(); - }; - Element2.prototype.removeClipPath = function() { - var clipPath = this._clipPath; - if (clipPath) { - this._detachComponent(clipPath); - this._clipPath = null; - this.markRedraw(); - } - }; - Element2.prototype.getTextContent = function() { - return this._textContent; - }; - Element2.prototype.setTextContent = function(textEl) { - var previousTextContent = this._textContent; - if (previousTextContent === textEl) { - return; - } - if (previousTextContent && previousTextContent !== textEl) { - this.removeTextContent(); - } - textEl.innerTransformable = new Transformable$1(); - this._attachComponent(textEl); - this._textContent = textEl; - this.markRedraw(); - }; - Element2.prototype.setTextConfig = function(cfg) { - if (!this.textConfig) { - this.textConfig = {}; - } - extend(this.textConfig, cfg); - this.markRedraw(); - }; - Element2.prototype.removeTextConfig = function() { - this.textConfig = null; - this.markRedraw(); - }; - Element2.prototype.removeTextContent = function() { - var textEl = this._textContent; - if (textEl) { - textEl.innerTransformable = null; - this._detachComponent(textEl); - this._textContent = null; - this._innerTextDefaultStyle = null; - this.markRedraw(); - } - }; - Element2.prototype.getTextGuideLine = function() { - return this._textGuide; - }; - Element2.prototype.setTextGuideLine = function(guideLine) { - if (this._textGuide && this._textGuide !== guideLine) { - this.removeTextGuideLine(); - } - this._attachComponent(guideLine); - this._textGuide = guideLine; - this.markRedraw(); - }; - Element2.prototype.removeTextGuideLine = function() { - var textGuide = this._textGuide; - if (textGuide) { - this._detachComponent(textGuide); - this._textGuide = null; - this.markRedraw(); - } - }; - Element2.prototype.markRedraw = function() { - this.__dirty |= REDRAW_BIT; - var zr = this.__zr; - if (zr) { - if (this.__inHover) { - zr.refreshHover(); - } else { - zr.refresh(); - } - } - if (this.__hostTarget) { - this.__hostTarget.markRedraw(); - } - }; - Element2.prototype.dirty = function() { - this.markRedraw(); - }; - Element2.prototype._toggleHoverLayerFlag = function(inHover) { - this.__inHover = inHover; - var textContent = this._textContent; - var textGuide = this._textGuide; - if (textContent) { - textContent.__inHover = inHover; - } - if (textGuide) { - textGuide.__inHover = inHover; - } - }; - Element2.prototype.addSelfToZr = function(zr) { - if (this.__zr === zr) { - return; - } - this.__zr = zr; - var animators = this.animators; - if (animators) { - for (var i = 0; i < animators.length; i++) { - zr.animation.addAnimator(animators[i]); - } - } - if (this._clipPath) { - this._clipPath.addSelfToZr(zr); - } - if (this._textContent) { - this._textContent.addSelfToZr(zr); - } - if (this._textGuide) { - this._textGuide.addSelfToZr(zr); - } - }; - Element2.prototype.removeSelfFromZr = function(zr) { - if (!this.__zr) { - return; - } - this.__zr = null; - var animators = this.animators; - if (animators) { - for (var i = 0; i < animators.length; i++) { - zr.animation.removeAnimator(animators[i]); - } - } - if (this._clipPath) { - this._clipPath.removeSelfFromZr(zr); - } - if (this._textContent) { - this._textContent.removeSelfFromZr(zr); - } - if (this._textGuide) { - this._textGuide.removeSelfFromZr(zr); - } - }; - Element2.prototype.animate = function(key, loop, allowDiscreteAnimation) { - var target = key ? this[key] : this; - var animator = new Animator$1(target, loop, allowDiscreteAnimation); - key && (animator.targetName = key); - this.addAnimator(animator, key); - return animator; - }; - Element2.prototype.addAnimator = function(animator, key) { - var zr = this.__zr; - var el = this; - animator.during(function() { - el.updateDuringAnimation(key); - }).done(function() { - var animators = el.animators; - var idx = indexOf(animators, animator); - if (idx >= 0) { - animators.splice(idx, 1); - } - }); - this.animators.push(animator); - if (zr) { - zr.animation.addAnimator(animator); - } - zr && zr.wakeUp(); - }; - Element2.prototype.updateDuringAnimation = function(key) { - this.markRedraw(); - }; - Element2.prototype.stopAnimation = function(scope, forwardToLast) { - var animators = this.animators; - var len2 = animators.length; - var leftAnimators = []; - for (var i = 0; i < len2; i++) { - var animator = animators[i]; - if (!scope || scope === animator.scope) { - animator.stop(forwardToLast); - } else { - leftAnimators.push(animator); - } - } - this.animators = leftAnimators; - return this; - }; - Element2.prototype.animateTo = function(target, cfg, animationProps) { - animateTo(this, target, cfg, animationProps); - }; - Element2.prototype.animateFrom = function(target, cfg, animationProps) { - animateTo(this, target, cfg, animationProps, true); - }; - Element2.prototype._transitionState = function(stateName, target, cfg, animationProps) { - var animators = animateTo(this, target, cfg, animationProps); - for (var i = 0; i < animators.length; i++) { - animators[i].__fromStateTransition = stateName; - } - }; - Element2.prototype.getBoundingRect = function() { - return null; - }; - Element2.prototype.getPaintRect = function() { - return null; - }; - Element2.initDefaultProps = function() { - var elProto = Element2.prototype; - elProto.type = "element"; - elProto.name = ""; - elProto.ignore = elProto.silent = elProto.isGroup = elProto.draggable = elProto.dragging = elProto.ignoreClip = elProto.__inHover = false; - elProto.__dirty = REDRAW_BIT; - function createLegacyProperty(key, privateKey, xKey, yKey) { - Object.defineProperty(elProto, key, { - get: function() { - if (!this[privateKey]) { - var pos = this[privateKey] = []; - enhanceArray(this, pos); - } - return this[privateKey]; - }, - set: function(pos) { - this[xKey] = pos[0]; - this[yKey] = pos[1]; - this[privateKey] = pos; - enhanceArray(this, pos); - } - }); - function enhanceArray(self2, pos) { - Object.defineProperty(pos, 0, { - get: function() { - return self2[xKey]; - }, - set: function(val) { - self2[xKey] = val; - } - }); - Object.defineProperty(pos, 1, { - get: function() { - return self2[yKey]; - }, - set: function(val) { - self2[yKey] = val; - } - }); - } - } - if (Object.defineProperty) { - createLegacyProperty("position", "_legacyPos", "x", "y"); - createLegacyProperty("scale", "_legacyScale", "scaleX", "scaleY"); - createLegacyProperty("origin", "_legacyOrigin", "originX", "originY"); - } - }(); - return Element2; -}(); -mixin(Element, Eventful$1); -mixin(Element, Transformable$1); -function animateTo(animatable, target, cfg, animationProps, reverse) { - cfg = cfg || {}; - var animators = []; - animateToShallow(animatable, "", animatable, target, cfg, animationProps, animators, reverse); - var finishCount = animators.length; - var doneHappened = false; - var cfgDone = cfg.done; - var cfgAborted = cfg.aborted; - var doneCb = function() { - doneHappened = true; - finishCount--; - if (finishCount <= 0) { - doneHappened ? cfgDone && cfgDone() : cfgAborted && cfgAborted(); - } - }; - var abortedCb = function() { - finishCount--; - if (finishCount <= 0) { - doneHappened ? cfgDone && cfgDone() : cfgAborted && cfgAborted(); - } - }; - if (!finishCount) { - cfgDone && cfgDone(); - } - if (animators.length > 0 && cfg.during) { - animators[0].during(function(target2, percent) { - cfg.during(percent); - }); - } - for (var i = 0; i < animators.length; i++) { - var animator = animators[i]; - if (doneCb) { - animator.done(doneCb); - } - if (abortedCb) { - animator.aborted(abortedCb); - } - if (cfg.force) { - animator.duration(cfg.duration); - } - animator.start(cfg.easing); - } - return animators; -} -function copyArrShallow(source, target, len2) { - for (var i = 0; i < len2; i++) { - source[i] = target[i]; - } -} -function is2DArray(value) { - return isArrayLike(value[0]); -} -function copyValue(target, source, key) { - if (isArrayLike(source[key])) { - if (!isArrayLike(target[key])) { - target[key] = []; - } - if (isTypedArray(source[key])) { - var len2 = source[key].length; - if (target[key].length !== len2) { - target[key] = new source[key].constructor(len2); - copyArrShallow(target[key], source[key], len2); - } - } else { - var sourceArr = source[key]; - var targetArr = target[key]; - var len0 = sourceArr.length; - if (is2DArray(sourceArr)) { - var len1 = sourceArr[0].length; - for (var i = 0; i < len0; i++) { - if (!targetArr[i]) { - targetArr[i] = Array.prototype.slice.call(sourceArr[i]); - } else { - copyArrShallow(targetArr[i], sourceArr[i], len1); - } - } - } else { - copyArrShallow(targetArr, sourceArr, len0); - } - targetArr.length = sourceArr.length; - } - } else { - target[key] = source[key]; - } -} -function isValueSame(val1, val2) { - return val1 === val2 || isArrayLike(val1) && isArrayLike(val2) && is1DArraySame(val1, val2); -} -function is1DArraySame(arr0, arr1) { - var len2 = arr0.length; - if (len2 !== arr1.length) { - return false; - } - for (var i = 0; i < len2; i++) { - if (arr0[i] !== arr1[i]) { - return false; - } - } - return true; -} -function animateToShallow(animatable, topKey, animateObj, target, cfg, animationProps, animators, reverse) { - var targetKeys = keys(target); - var duration = cfg.duration; - var delay = cfg.delay; - var additive = cfg.additive; - var setToFinal = cfg.setToFinal; - var animateAll = !isObject(animationProps); - var existsAnimators = animatable.animators; - var animationKeys = []; - for (var k = 0; k < targetKeys.length; k++) { - var innerKey = targetKeys[k]; - var targetVal = target[innerKey]; - if (targetVal != null && animateObj[innerKey] != null && (animateAll || animationProps[innerKey])) { - if (isObject(targetVal) && !isArrayLike(targetVal) && !isGradientObject(targetVal)) { - if (topKey) { - if (!reverse) { - animateObj[innerKey] = targetVal; - animatable.updateDuringAnimation(topKey); - } - continue; - } - animateToShallow(animatable, innerKey, animateObj[innerKey], targetVal, cfg, animationProps && animationProps[innerKey], animators, reverse); - } else { - animationKeys.push(innerKey); - } - } else if (!reverse) { - animateObj[innerKey] = targetVal; - animatable.updateDuringAnimation(topKey); - animationKeys.push(innerKey); - } - } - var keyLen = animationKeys.length; - if (!additive && keyLen) { - for (var i = 0; i < existsAnimators.length; i++) { - var animator = existsAnimators[i]; - if (animator.targetName === topKey) { - var allAborted = animator.stopTracks(animationKeys); - if (allAborted) { - var idx = indexOf(existsAnimators, animator); - existsAnimators.splice(idx, 1); - } - } - } - } - if (!cfg.force) { - animationKeys = filter(animationKeys, function(key) { - return !isValueSame(target[key], animateObj[key]); - }); - keyLen = animationKeys.length; - } - if (keyLen > 0 || cfg.force && !animators.length) { - var revertedSource = void 0; - var reversedTarget = void 0; - var sourceClone = void 0; - if (reverse) { - reversedTarget = {}; - if (setToFinal) { - revertedSource = {}; - } - for (var i = 0; i < keyLen; i++) { - var innerKey = animationKeys[i]; - reversedTarget[innerKey] = animateObj[innerKey]; - if (setToFinal) { - revertedSource[innerKey] = target[innerKey]; - } else { - animateObj[innerKey] = target[innerKey]; - } - } - } else if (setToFinal) { - sourceClone = {}; - for (var i = 0; i < keyLen; i++) { - var innerKey = animationKeys[i]; - sourceClone[innerKey] = cloneValue(animateObj[innerKey]); - copyValue(animateObj, target, innerKey); - } - } - var animator = new Animator$1(animateObj, false, false, additive ? filter(existsAnimators, function(animator2) { - return animator2.targetName === topKey; - }) : null); - animator.targetName = topKey; - if (cfg.scope) { - animator.scope = cfg.scope; - } - if (setToFinal && revertedSource) { - animator.whenWithKeys(0, revertedSource, animationKeys); - } - if (sourceClone) { - animator.whenWithKeys(0, sourceClone, animationKeys); - } - animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animationKeys).delay(delay || 0); - animatable.addAnimator(animator, topKey); - animators.push(animator); - } -} -const Element$1 = Element; -var globalImageCache = new LRU$1(50); -function findExistImage(newImageOrSrc) { - if (typeof newImageOrSrc === "string") { - var cachedImgObj = globalImageCache.get(newImageOrSrc); - return cachedImgObj && cachedImgObj.image; - } else { - return newImageOrSrc; - } -} -function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) { - if (!newImageOrSrc) { - return image; - } else if (typeof newImageOrSrc === "string") { - if (image && image.__zrImageSrc === newImageOrSrc || !hostEl) { - return image; - } - var cachedImgObj = globalImageCache.get(newImageOrSrc); - var pendingWrap = { hostEl, cb: onload, cbPayload }; - if (cachedImgObj) { - image = cachedImgObj.image; - !isImageReady(image) && cachedImgObj.pending.push(pendingWrap); - } else { - image = platformApi.loadImage(newImageOrSrc, imageOnLoad, imageOnLoad); - image.__zrImageSrc = newImageOrSrc; - globalImageCache.put(newImageOrSrc, image.__cachedImgObj = { - image, - pending: [pendingWrap] - }); - } - return image; - } else { - return newImageOrSrc; - } -} -function imageOnLoad() { - var cachedImgObj = this.__cachedImgObj; - this.onload = this.onerror = this.__cachedImgObj = null; - for (var i = 0; i < cachedImgObj.pending.length; i++) { - var pendingWrap = cachedImgObj.pending[i]; - var cb = pendingWrap.cb; - cb && cb(this, pendingWrap.cbPayload); - pendingWrap.hostEl.dirty(); - } - cachedImgObj.pending.length = 0; -} -function isImageReady(image) { - return image && image.width && image.height; -} -var STYLE_REG = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g; -function truncateText(text, containerWidth, font, ellipsis, options) { - if (!containerWidth) { - return ""; - } - var textLines = (text + "").split("\n"); - options = prepareTruncateOptions(containerWidth, font, ellipsis, options); - for (var i = 0, len2 = textLines.length; i < len2; i++) { - textLines[i] = truncateSingleLine(textLines[i], options); - } - return textLines.join("\n"); -} -function prepareTruncateOptions(containerWidth, font, ellipsis, options) { - options = options || {}; - var preparedOpts = extend({}, options); - preparedOpts.font = font; - ellipsis = retrieve2(ellipsis, "..."); - preparedOpts.maxIterations = retrieve2(options.maxIterations, 2); - var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0); - preparedOpts.cnCharWidth = getWidth("国", font); - var ascCharWidth = preparedOpts.ascCharWidth = getWidth("a", font); - preparedOpts.placeholder = retrieve2(options.placeholder, ""); - var contentWidth = containerWidth = Math.max(0, containerWidth - 1); - for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) { - contentWidth -= ascCharWidth; - } - var ellipsisWidth = getWidth(ellipsis, font); - if (ellipsisWidth > contentWidth) { - ellipsis = ""; - ellipsisWidth = 0; - } - contentWidth = containerWidth - ellipsisWidth; - preparedOpts.ellipsis = ellipsis; - preparedOpts.ellipsisWidth = ellipsisWidth; - preparedOpts.contentWidth = contentWidth; - preparedOpts.containerWidth = containerWidth; - return preparedOpts; -} -function truncateSingleLine(textLine, options) { - var containerWidth = options.containerWidth; - var font = options.font; - var contentWidth = options.contentWidth; - if (!containerWidth) { - return ""; - } - var lineWidth = getWidth(textLine, font); - if (lineWidth <= containerWidth) { - return textLine; - } - for (var j = 0; ; j++) { - if (lineWidth <= contentWidth || j >= options.maxIterations) { - textLine += options.ellipsis; - break; - } - var subLength = j === 0 ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth) : lineWidth > 0 ? Math.floor(textLine.length * contentWidth / lineWidth) : 0; - textLine = textLine.substr(0, subLength); - lineWidth = getWidth(textLine, font); - } - if (textLine === "") { - textLine = options.placeholder; - } - return textLine; -} -function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) { - var width = 0; - var i = 0; - for (var len2 = text.length; i < len2 && width < contentWidth; i++) { - var charCode = text.charCodeAt(i); - width += 0 <= charCode && charCode <= 127 ? ascCharWidth : cnCharWidth; - } - return i; -} -function parsePlainText(text, style) { - text != null && (text += ""); - var overflow = style.overflow; - var padding = style.padding; - var font = style.font; - var truncate = overflow === "truncate"; - var calculatedLineHeight = getLineHeight(font); - var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight); - var bgColorDrawn = !!style.backgroundColor; - var truncateLineOverflow = style.lineOverflow === "truncate"; - var width = style.width; - var lines; - if (width != null && (overflow === "break" || overflow === "breakAll")) { - lines = text ? wrapText(text, style.font, width, overflow === "breakAll", 0).lines : []; - } else { - lines = text ? text.split("\n") : []; - } - var contentHeight = lines.length * lineHeight; - var height = retrieve2(style.height, contentHeight); - if (contentHeight > height && truncateLineOverflow) { - var lineCount = Math.floor(height / lineHeight); - lines = lines.slice(0, lineCount); - } - if (text && truncate && width != null) { - var options = prepareTruncateOptions(width, font, style.ellipsis, { - minChar: style.truncateMinChar, - placeholder: style.placeholder - }); - for (var i = 0; i < lines.length; i++) { - lines[i] = truncateSingleLine(lines[i], options); - } - } - var outerHeight = height; - var contentWidth = 0; - for (var i = 0; i < lines.length; i++) { - contentWidth = Math.max(getWidth(lines[i], font), contentWidth); - } - if (width == null) { - width = contentWidth; - } - var outerWidth = contentWidth; - if (padding) { - outerHeight += padding[0] + padding[2]; - outerWidth += padding[1] + padding[3]; - width += padding[1] + padding[3]; - } - if (bgColorDrawn) { - outerWidth = width; - } - return { - lines, - height, - outerWidth, - outerHeight, - lineHeight, - calculatedLineHeight, - contentWidth, - contentHeight, - width - }; -} -var RichTextToken = function() { - function RichTextToken2() { - } - return RichTextToken2; -}(); -var RichTextLine = function() { - function RichTextLine2(tokens) { - this.tokens = []; - if (tokens) { - this.tokens = tokens; - } - } - return RichTextLine2; -}(); -var RichTextContentBlock = function() { - function RichTextContentBlock2() { - this.width = 0; - this.height = 0; - this.contentWidth = 0; - this.contentHeight = 0; - this.outerWidth = 0; - this.outerHeight = 0; - this.lines = []; - } - return RichTextContentBlock2; -}(); -function parseRichText(text, style) { - var contentBlock = new RichTextContentBlock(); - text != null && (text += ""); - if (!text) { - return contentBlock; - } - var topWidth = style.width; - var topHeight = style.height; - var overflow = style.overflow; - var wrapInfo = (overflow === "break" || overflow === "breakAll") && topWidth != null ? { width: topWidth, accumWidth: 0, breakAll: overflow === "breakAll" } : null; - var lastIndex = STYLE_REG.lastIndex = 0; - var result; - while ((result = STYLE_REG.exec(text)) != null) { - var matchedIndex = result.index; - if (matchedIndex > lastIndex) { - pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo); - } - pushTokens(contentBlock, result[2], style, wrapInfo, result[1]); - lastIndex = STYLE_REG.lastIndex; - } - if (lastIndex < text.length) { - pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo); - } - var pendingList = []; - var calculatedHeight = 0; - var calculatedWidth = 0; - var stlPadding = style.padding; - var truncate = overflow === "truncate"; - var truncateLine = style.lineOverflow === "truncate"; - function finishLine(line2, lineWidth2, lineHeight2) { - line2.width = lineWidth2; - line2.lineHeight = lineHeight2; - calculatedHeight += lineHeight2; - calculatedWidth = Math.max(calculatedWidth, lineWidth2); - } - outer: - for (var i = 0; i < contentBlock.lines.length; i++) { - var line = contentBlock.lines[i]; - var lineHeight = 0; - var lineWidth = 0; - for (var j = 0; j < line.tokens.length; j++) { - var token = line.tokens[j]; - var tokenStyle = token.styleName && style.rich[token.styleName] || {}; - var textPadding = token.textPadding = tokenStyle.padding; - var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0; - var font = token.font = tokenStyle.font || style.font; - token.contentHeight = getLineHeight(font); - var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight); - token.innerHeight = tokenHeight; - textPadding && (tokenHeight += textPadding[0] + textPadding[2]); - token.height = tokenHeight; - token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight); - token.align = tokenStyle && tokenStyle.align || style.align; - token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || "middle"; - if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) { - if (j > 0) { - line.tokens = line.tokens.slice(0, j); - finishLine(line, lineWidth, lineHeight); - contentBlock.lines = contentBlock.lines.slice(0, i + 1); - } else { - contentBlock.lines = contentBlock.lines.slice(0, i); - } - break outer; - } - var styleTokenWidth = tokenStyle.width; - var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === "auto"; - if (typeof styleTokenWidth === "string" && styleTokenWidth.charAt(styleTokenWidth.length - 1) === "%") { - token.percentWidth = styleTokenWidth; - pendingList.push(token); - token.contentWidth = getWidth(token.text, font); - } else { - if (tokenWidthNotSpecified) { - var textBackgroundColor = tokenStyle.backgroundColor; - var bgImg = textBackgroundColor && textBackgroundColor.image; - if (bgImg) { - bgImg = findExistImage(bgImg); - if (isImageReady(bgImg)) { - token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height); - } - } - } - var remainTruncWidth = truncate && topWidth != null ? topWidth - lineWidth : null; - if (remainTruncWidth != null && remainTruncWidth < token.width) { - if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) { - token.text = ""; - token.width = token.contentWidth = 0; - } else { - token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar }); - token.width = token.contentWidth = getWidth(token.text, font); - } - } else { - token.contentWidth = getWidth(token.text, font); - } - } - token.width += paddingH; - lineWidth += token.width; - tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight)); - } - finishLine(line, lineWidth, lineHeight); - } - contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth); - contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight); - contentBlock.contentHeight = calculatedHeight; - contentBlock.contentWidth = calculatedWidth; - if (stlPadding) { - contentBlock.outerWidth += stlPadding[1] + stlPadding[3]; - contentBlock.outerHeight += stlPadding[0] + stlPadding[2]; - } - for (var i = 0; i < pendingList.length; i++) { - var token = pendingList[i]; - var percentWidth = token.percentWidth; - token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width; - } - return contentBlock; -} -function pushTokens(block, str, style, wrapInfo, styleName) { - var isEmptyStr = str === ""; - var tokenStyle = styleName && style.rich[styleName] || {}; - var lines = block.lines; - var font = tokenStyle.font || style.font; - var newLine = false; - var strLines; - var linesWidths; - if (wrapInfo) { - var tokenPadding = tokenStyle.padding; - var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0; - if (tokenStyle.width != null && tokenStyle.width !== "auto") { - var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH; - if (lines.length > 0) { - if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) { - strLines = str.split("\n"); - newLine = true; - } - } - wrapInfo.accumWidth = outerWidth_1; - } else { - var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth); - wrapInfo.accumWidth = res.accumWidth + tokenPaddingH; - linesWidths = res.linesWidths; - strLines = res.lines; - } - } else { - strLines = str.split("\n"); - } - for (var i = 0; i < strLines.length; i++) { - var text = strLines[i]; - var token = new RichTextToken(); - token.styleName = styleName; - token.text = text; - token.isLineHolder = !text && !isEmptyStr; - if (typeof tokenStyle.width === "number") { - token.width = tokenStyle.width; - } else { - token.width = linesWidths ? linesWidths[i] : getWidth(text, font); - } - if (!i && !newLine) { - var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens; - var tokensLen = tokens.length; - tokensLen === 1 && tokens[0].isLineHolder ? tokens[0] = token : (text || !tokensLen || isEmptyStr) && tokens.push(token); - } else { - lines.push(new RichTextLine([token])); - } - } -} -function isAlphabeticLetter(ch) { - var code = ch.charCodeAt(0); - return code >= 32 && code <= 591 || code >= 880 && code <= 4351 || code >= 4608 && code <= 5119 || code >= 7680 && code <= 8303; -} -var breakCharMap = reduce(",&?/;] ".split(""), function(obj, ch) { - obj[ch] = true; - return obj; -}, {}); -function isWordBreakChar(ch) { - if (isAlphabeticLetter(ch)) { - if (breakCharMap[ch]) { - return true; - } - return false; - } - return true; -} -function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) { - var lines = []; - var linesWidths = []; - var line = ""; - var currentWord = ""; - var currentWordWidth = 0; - var accumWidth = 0; - for (var i = 0; i < text.length; i++) { - var ch = text.charAt(i); - if (ch === "\n") { - if (currentWord) { - line += currentWord; - accumWidth += currentWordWidth; - } - lines.push(line); - linesWidths.push(accumWidth); - line = ""; - currentWord = ""; - currentWordWidth = 0; - accumWidth = 0; - continue; - } - var chWidth = getWidth(ch, font); - var inWord = isBreakAll ? false : !isWordBreakChar(ch); - if (!lines.length ? lastAccumWidth + accumWidth + chWidth > lineWidth : accumWidth + chWidth > lineWidth) { - if (!accumWidth) { - if (inWord) { - lines.push(currentWord); - linesWidths.push(currentWordWidth); - currentWord = ch; - currentWordWidth = chWidth; - } else { - lines.push(ch); - linesWidths.push(chWidth); - } - } else if (line || currentWord) { - if (inWord) { - if (!line) { - line = currentWord; - currentWord = ""; - currentWordWidth = 0; - accumWidth = currentWordWidth; - } - lines.push(line); - linesWidths.push(accumWidth - currentWordWidth); - currentWord += ch; - currentWordWidth += chWidth; - line = ""; - accumWidth = currentWordWidth; - } else { - if (currentWord) { - line += currentWord; - currentWord = ""; - currentWordWidth = 0; - } - lines.push(line); - linesWidths.push(accumWidth); - line = ch; - accumWidth = chWidth; - } - } - continue; - } - accumWidth += chWidth; - if (inWord) { - currentWord += ch; - currentWordWidth += chWidth; - } else { - if (currentWord) { - line += currentWord; - currentWord = ""; - currentWordWidth = 0; - } - line += ch; - } - } - if (!lines.length && !line) { - line = text; - currentWord = ""; - currentWordWidth = 0; - } - if (currentWord) { - line += currentWord; - } - if (line) { - lines.push(line); - linesWidths.push(accumWidth); - } - if (lines.length === 1) { - accumWidth += lastAccumWidth; - } - return { - accumWidth, - lines, - linesWidths - }; -} -var STYLE_MAGIC_KEY = "__zr_style_" + Math.round(Math.random() * 10); -var DEFAULT_COMMON_STYLE = { - shadowBlur: 0, - shadowOffsetX: 0, - shadowOffsetY: 0, - shadowColor: "#000", - opacity: 1, - blend: "source-over" -}; -var DEFAULT_COMMON_ANIMATION_PROPS = { - style: { - shadowBlur: true, - shadowOffsetX: true, - shadowOffsetY: true, - shadowColor: true, - opacity: true - } -}; -DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true; -var PRIMARY_STATES_KEYS = ["z", "z2", "invisible"]; -var PRIMARY_STATES_KEYS_IN_HOVER_LAYER = ["invisible"]; -var Displayable = function(_super) { - __extends(Displayable2, _super); - function Displayable2(props) { - return _super.call(this, props) || this; - } - Displayable2.prototype._init = function(props) { - var keysArr = keys(props); - for (var i = 0; i < keysArr.length; i++) { - var key = keysArr[i]; - if (key === "style") { - this.useStyle(props[key]); - } else { - _super.prototype.attrKV.call(this, key, props[key]); - } - } - if (!this.style) { - this.useStyle({}); - } - }; - Displayable2.prototype.beforeBrush = function() { - }; - Displayable2.prototype.afterBrush = function() { - }; - Displayable2.prototype.innerBeforeBrush = function() { - }; - Displayable2.prototype.innerAfterBrush = function() { - }; - Displayable2.prototype.shouldBePainted = function(viewWidth, viewHeight, considerClipPath, considerAncestors) { - var m = this.transform; - if (this.ignore || this.invisible || this.style.opacity === 0 || this.culling && isDisplayableCulled(this, viewWidth, viewHeight) || m && !m[0] && !m[3]) { - return false; - } - if (considerClipPath && this.__clipPaths) { - for (var i = 0; i < this.__clipPaths.length; ++i) { - if (this.__clipPaths[i].isZeroArea()) { - return false; - } - } - } - if (considerAncestors && this.parent) { - var parent_1 = this.parent; - while (parent_1) { - if (parent_1.ignore) { - return false; - } - parent_1 = parent_1.parent; - } - } - return true; - }; - Displayable2.prototype.contain = function(x, y) { - return this.rectContain(x, y); - }; - Displayable2.prototype.traverse = function(cb, context) { - cb.call(context, this); - }; - Displayable2.prototype.rectContain = function(x, y) { - var coord = this.transformCoordToLocal(x, y); - var rect = this.getBoundingRect(); - return rect.contain(coord[0], coord[1]); - }; - Displayable2.prototype.getPaintRect = function() { - var rect = this._paintRect; - if (!this._paintRect || this.__dirty) { - var transform = this.transform; - var elRect = this.getBoundingRect(); - var style = this.style; - var shadowSize = style.shadowBlur || 0; - var shadowOffsetX = style.shadowOffsetX || 0; - var shadowOffsetY = style.shadowOffsetY || 0; - rect = this._paintRect || (this._paintRect = new BoundingRect$1(0, 0, 0, 0)); - if (transform) { - BoundingRect$1.applyTransform(rect, elRect, transform); - } else { - rect.copy(elRect); - } - if (shadowSize || shadowOffsetX || shadowOffsetY) { - rect.width += shadowSize * 2 + Math.abs(shadowOffsetX); - rect.height += shadowSize * 2 + Math.abs(shadowOffsetY); - rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize); - rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize); - } - var tolerance = this.dirtyRectTolerance; - if (!rect.isZero()) { - rect.x = Math.floor(rect.x - tolerance); - rect.y = Math.floor(rect.y - tolerance); - rect.width = Math.ceil(rect.width + 1 + tolerance * 2); - rect.height = Math.ceil(rect.height + 1 + tolerance * 2); - } - } - return rect; - }; - Displayable2.prototype.setPrevPaintRect = function(paintRect) { - if (paintRect) { - this._prevPaintRect = this._prevPaintRect || new BoundingRect$1(0, 0, 0, 0); - this._prevPaintRect.copy(paintRect); - } else { - this._prevPaintRect = null; - } - }; - Displayable2.prototype.getPrevPaintRect = function() { - return this._prevPaintRect; - }; - Displayable2.prototype.animateStyle = function(loop) { - return this.animate("style", loop); - }; - Displayable2.prototype.updateDuringAnimation = function(targetKey) { - if (targetKey === "style") { - this.dirtyStyle(); - } else { - this.markRedraw(); - } - }; - Displayable2.prototype.attrKV = function(key, value) { - if (key !== "style") { - _super.prototype.attrKV.call(this, key, value); - } else { - if (!this.style) { - this.useStyle(value); - } else { - this.setStyle(value); - } - } - }; - Displayable2.prototype.setStyle = function(keyOrObj, value) { - if (typeof keyOrObj === "string") { - this.style[keyOrObj] = value; - } else { - extend(this.style, keyOrObj); - } - this.dirtyStyle(); - return this; - }; - Displayable2.prototype.dirtyStyle = function(notRedraw) { - if (!notRedraw) { - this.markRedraw(); - } - this.__dirty |= STYLE_CHANGED_BIT; - if (this._rect) { - this._rect = null; - } - }; - Displayable2.prototype.dirty = function() { - this.dirtyStyle(); - }; - Displayable2.prototype.styleChanged = function() { - return !!(this.__dirty & STYLE_CHANGED_BIT); - }; - Displayable2.prototype.styleUpdated = function() { - this.__dirty &= ~STYLE_CHANGED_BIT; - }; - Displayable2.prototype.createStyle = function(obj) { - return createObject(DEFAULT_COMMON_STYLE, obj); - }; - Displayable2.prototype.useStyle = function(obj) { - if (!obj[STYLE_MAGIC_KEY]) { - obj = this.createStyle(obj); - } - if (this.__inHover) { - this.__hoverStyle = obj; - } else { - this.style = obj; - } - this.dirtyStyle(); - }; - Displayable2.prototype.isStyleObject = function(obj) { - return obj[STYLE_MAGIC_KEY]; - }; - Displayable2.prototype._innerSaveToNormal = function(toState) { - _super.prototype._innerSaveToNormal.call(this, toState); - var normalState = this._normalState; - if (toState.style && !normalState.style) { - normalState.style = this._mergeStyle(this.createStyle(), this.style); - } - this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS); - }; - Displayable2.prototype._applyStateObj = function(stateName, state, normalState, keepCurrentStates, transition, animationCfg) { - _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg); - var needsRestoreToNormal = !(state && keepCurrentStates); - var targetStyle; - if (state && state.style) { - if (transition) { - if (keepCurrentStates) { - targetStyle = state.style; - } else { - targetStyle = this._mergeStyle(this.createStyle(), normalState.style); - this._mergeStyle(targetStyle, state.style); - } - } else { - targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style); - this._mergeStyle(targetStyle, state.style); - } - } else if (needsRestoreToNormal) { - targetStyle = normalState.style; - } - if (targetStyle) { - if (transition) { - var sourceStyle = this.style; - this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle); - if (needsRestoreToNormal) { - var changedKeys = keys(sourceStyle); - for (var i = 0; i < changedKeys.length; i++) { - var key = changedKeys[i]; - if (key in targetStyle) { - targetStyle[key] = targetStyle[key]; - this.style[key] = sourceStyle[key]; - } - } - } - var targetKeys = keys(targetStyle); - for (var i = 0; i < targetKeys.length; i++) { - var key = targetKeys[i]; - this.style[key] = this.style[key]; - } - this._transitionState(stateName, { - style: targetStyle - }, animationCfg, this.getAnimationStyleProps()); - } else { - this.useStyle(targetStyle); - } - } - var statesKeys = this.__inHover ? PRIMARY_STATES_KEYS_IN_HOVER_LAYER : PRIMARY_STATES_KEYS; - for (var i = 0; i < statesKeys.length; i++) { - var key = statesKeys[i]; - if (state && state[key] != null) { - this[key] = state[key]; - } else if (needsRestoreToNormal) { - if (normalState[key] != null) { - this[key] = normalState[key]; - } - } - } - }; - Displayable2.prototype._mergeStates = function(states) { - var mergedState = _super.prototype._mergeStates.call(this, states); - var mergedStyle; - for (var i = 0; i < states.length; i++) { - var state = states[i]; - if (state.style) { - mergedStyle = mergedStyle || {}; - this._mergeStyle(mergedStyle, state.style); - } - } - if (mergedStyle) { - mergedState.style = mergedStyle; - } - return mergedState; - }; - Displayable2.prototype._mergeStyle = function(targetStyle, sourceStyle) { - extend(targetStyle, sourceStyle); - return targetStyle; - }; - Displayable2.prototype.getAnimationStyleProps = function() { - return DEFAULT_COMMON_ANIMATION_PROPS; - }; - Displayable2.initDefaultProps = function() { - var dispProto = Displayable2.prototype; - dispProto.type = "displayable"; - dispProto.invisible = false; - dispProto.z = 0; - dispProto.z2 = 0; - dispProto.zlevel = 0; - dispProto.culling = false; - dispProto.cursor = "pointer"; - dispProto.rectHover = false; - dispProto.incremental = false; - dispProto._rect = null; - dispProto.dirtyRectTolerance = 0; - dispProto.__dirty = REDRAW_BIT | STYLE_CHANGED_BIT; - }(); - return Displayable2; -}(Element$1); -var tmpRect = new BoundingRect$1(0, 0, 0, 0); -var viewRect = new BoundingRect$1(0, 0, 0, 0); -function isDisplayableCulled(el, width, height) { - tmpRect.copy(el.getBoundingRect()); - if (el.transform) { - tmpRect.applyTransform(el.transform); - } - viewRect.width = width; - viewRect.height = height; - return !tmpRect.intersect(viewRect); -} -const Displayable$1 = Displayable; -var mathMin$1 = Math.min; -var mathMax$1 = Math.max; -var mathSin$1 = Math.sin; -var mathCos$1 = Math.cos; -var PI2$4 = Math.PI * 2; -var start = create$1(); -var end = create$1(); -var extremity = create$1(); -function fromPoints(points, min3, max3) { - if (points.length === 0) { - return; - } - var p = points[0]; - var left = p[0]; - var right = p[0]; - var top = p[1]; - var bottom = p[1]; - for (var i = 1; i < points.length; i++) { - p = points[i]; - left = mathMin$1(left, p[0]); - right = mathMax$1(right, p[0]); - top = mathMin$1(top, p[1]); - bottom = mathMax$1(bottom, p[1]); - } - min3[0] = left; - min3[1] = top; - max3[0] = right; - max3[1] = bottom; -} -function fromLine(x0, y0, x1, y1, min3, max3) { - min3[0] = mathMin$1(x0, x1); - min3[1] = mathMin$1(y0, y1); - max3[0] = mathMax$1(x0, x1); - max3[1] = mathMax$1(y0, y1); -} -var xDim = []; -var yDim = []; -function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min3, max3) { - var cubicExtrema$1 = cubicExtrema; - var cubicAt$1 = cubicAt; - var n = cubicExtrema$1(x0, x1, x2, x3, xDim); - min3[0] = Infinity; - min3[1] = Infinity; - max3[0] = -Infinity; - max3[1] = -Infinity; - for (var i = 0; i < n; i++) { - var x = cubicAt$1(x0, x1, x2, x3, xDim[i]); - min3[0] = mathMin$1(x, min3[0]); - max3[0] = mathMax$1(x, max3[0]); - } - n = cubicExtrema$1(y0, y1, y2, y3, yDim); - for (var i = 0; i < n; i++) { - var y = cubicAt$1(y0, y1, y2, y3, yDim[i]); - min3[1] = mathMin$1(y, min3[1]); - max3[1] = mathMax$1(y, max3[1]); - } - min3[0] = mathMin$1(x0, min3[0]); - max3[0] = mathMax$1(x0, max3[0]); - min3[0] = mathMin$1(x3, min3[0]); - max3[0] = mathMax$1(x3, max3[0]); - min3[1] = mathMin$1(y0, min3[1]); - max3[1] = mathMax$1(y0, max3[1]); - min3[1] = mathMin$1(y3, min3[1]); - max3[1] = mathMax$1(y3, max3[1]); -} -function fromQuadratic(x0, y0, x1, y1, x2, y2, min3, max3) { - var quadraticExtremum$1 = quadraticExtremum; - var quadraticAt$1 = quadraticAt; - var tx = mathMax$1(mathMin$1(quadraticExtremum$1(x0, x1, x2), 1), 0); - var ty = mathMax$1(mathMin$1(quadraticExtremum$1(y0, y1, y2), 1), 0); - var x = quadraticAt$1(x0, x1, x2, tx); - var y = quadraticAt$1(y0, y1, y2, ty); - min3[0] = mathMin$1(x0, x2, x); - min3[1] = mathMin$1(y0, y2, y); - max3[0] = mathMax$1(x0, x2, x); - max3[1] = mathMax$1(y0, y2, y); -} -function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min3, max3) { - var vec2Min = min$1; - var vec2Max = max$1; - var diff = Math.abs(startAngle - endAngle); - if (diff % PI2$4 < 1e-4 && diff > 1e-4) { - min3[0] = x - rx; - min3[1] = y - ry; - max3[0] = x + rx; - max3[1] = y + ry; - return; - } - start[0] = mathCos$1(startAngle) * rx + x; - start[1] = mathSin$1(startAngle) * ry + y; - end[0] = mathCos$1(endAngle) * rx + x; - end[1] = mathSin$1(endAngle) * ry + y; - vec2Min(min3, start, end); - vec2Max(max3, start, end); - startAngle = startAngle % PI2$4; - if (startAngle < 0) { - startAngle = startAngle + PI2$4; - } - endAngle = endAngle % PI2$4; - if (endAngle < 0) { - endAngle = endAngle + PI2$4; - } - if (startAngle > endAngle && !anticlockwise) { - endAngle += PI2$4; - } else if (startAngle < endAngle && anticlockwise) { - startAngle += PI2$4; - } - if (anticlockwise) { - var tmp = endAngle; - endAngle = startAngle; - startAngle = tmp; - } - for (var angle = 0; angle < endAngle; angle += Math.PI / 2) { - if (angle > startAngle) { - extremity[0] = mathCos$1(angle) * rx + x; - extremity[1] = mathSin$1(angle) * ry + y; - vec2Min(min3, extremity, min3); - vec2Max(max3, extremity, max3); - } - } -} -var CMD$1 = { - M: 1, - L: 2, - C: 3, - Q: 4, - A: 5, - Z: 6, - R: 7 -}; -var tmpOutX = []; -var tmpOutY = []; -var min = []; -var max = []; -var min2 = []; -var max2 = []; -var mathMin = Math.min; -var mathMax = Math.max; -var mathCos = Math.cos; -var mathSin = Math.sin; -var mathAbs = Math.abs; -var PI = Math.PI; -var PI2$3 = PI * 2; -var hasTypedArray = typeof Float32Array !== "undefined"; -var tmpAngles = []; -function modPI2(radian) { - var n = Math.round(radian / PI * 1e8) / 1e8; - return n % 2 * PI; -} -function normalizeArcAngles(angles, anticlockwise) { - var newStartAngle = modPI2(angles[0]); - if (newStartAngle < 0) { - newStartAngle += PI2$3; - } - var delta = newStartAngle - angles[0]; - var newEndAngle = angles[1]; - newEndAngle += delta; - if (!anticlockwise && newEndAngle - newStartAngle >= PI2$3) { - newEndAngle = newStartAngle + PI2$3; - } else if (anticlockwise && newStartAngle - newEndAngle >= PI2$3) { - newEndAngle = newStartAngle - PI2$3; - } else if (!anticlockwise && newStartAngle > newEndAngle) { - newEndAngle = newStartAngle + (PI2$3 - modPI2(newStartAngle - newEndAngle)); - } else if (anticlockwise && newStartAngle < newEndAngle) { - newEndAngle = newStartAngle - (PI2$3 - modPI2(newEndAngle - newStartAngle)); - } - angles[0] = newStartAngle; - angles[1] = newEndAngle; -} -var PathProxy = function() { - function PathProxy2(notSaveData) { - this.dpr = 1; - this._xi = 0; - this._yi = 0; - this._x0 = 0; - this._y0 = 0; - this._len = 0; - if (notSaveData) { - this._saveData = false; - } - if (this._saveData) { - this.data = []; - } - } - PathProxy2.prototype.increaseVersion = function() { - this._version++; - }; - PathProxy2.prototype.getVersion = function() { - return this._version; - }; - PathProxy2.prototype.setScale = function(sx, sy, segmentIgnoreThreshold) { - segmentIgnoreThreshold = segmentIgnoreThreshold || 0; - if (segmentIgnoreThreshold > 0) { - this._ux = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sx) || 0; - this._uy = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sy) || 0; - } - }; - PathProxy2.prototype.setDPR = function(dpr2) { - this.dpr = dpr2; - }; - PathProxy2.prototype.setContext = function(ctx) { - this._ctx = ctx; - }; - PathProxy2.prototype.getContext = function() { - return this._ctx; - }; - PathProxy2.prototype.beginPath = function() { - this._ctx && this._ctx.beginPath(); - this.reset(); - return this; - }; - PathProxy2.prototype.reset = function() { - if (this._saveData) { - this._len = 0; - } - if (this._pathSegLen) { - this._pathSegLen = null; - this._pathLen = 0; - } - this._version++; - }; - PathProxy2.prototype.moveTo = function(x, y) { - this._drawPendingPt(); - this.addData(CMD$1.M, x, y); - this._ctx && this._ctx.moveTo(x, y); - this._x0 = x; - this._y0 = y; - this._xi = x; - this._yi = y; - return this; - }; - PathProxy2.prototype.lineTo = function(x, y) { - var dx = mathAbs(x - this._xi); - var dy = mathAbs(y - this._yi); - var exceedUnit = dx > this._ux || dy > this._uy; - this.addData(CMD$1.L, x, y); - if (this._ctx && exceedUnit) { - this._ctx.lineTo(x, y); - } - if (exceedUnit) { - this._xi = x; - this._yi = y; - this._pendingPtDist = 0; - } else { - var d2 = dx * dx + dy * dy; - if (d2 > this._pendingPtDist) { - this._pendingPtX = x; - this._pendingPtY = y; - this._pendingPtDist = d2; - } - } - return this; - }; - PathProxy2.prototype.bezierCurveTo = function(x1, y1, x2, y2, x3, y3) { - this._drawPendingPt(); - this.addData(CMD$1.C, x1, y1, x2, y2, x3, y3); - if (this._ctx) { - this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); - } - this._xi = x3; - this._yi = y3; - return this; - }; - PathProxy2.prototype.quadraticCurveTo = function(x1, y1, x2, y2) { - this._drawPendingPt(); - this.addData(CMD$1.Q, x1, y1, x2, y2); - if (this._ctx) { - this._ctx.quadraticCurveTo(x1, y1, x2, y2); - } - this._xi = x2; - this._yi = y2; - return this; - }; - PathProxy2.prototype.arc = function(cx, cy, r, startAngle, endAngle, anticlockwise) { - this._drawPendingPt(); - tmpAngles[0] = startAngle; - tmpAngles[1] = endAngle; - normalizeArcAngles(tmpAngles, anticlockwise); - startAngle = tmpAngles[0]; - endAngle = tmpAngles[1]; - var delta = endAngle - startAngle; - this.addData(CMD$1.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1); - this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise); - this._xi = mathCos(endAngle) * r + cx; - this._yi = mathSin(endAngle) * r + cy; - return this; - }; - PathProxy2.prototype.arcTo = function(x1, y1, x2, y2, radius) { - this._drawPendingPt(); - if (this._ctx) { - this._ctx.arcTo(x1, y1, x2, y2, radius); - } - return this; - }; - PathProxy2.prototype.rect = function(x, y, w, h) { - this._drawPendingPt(); - this._ctx && this._ctx.rect(x, y, w, h); - this.addData(CMD$1.R, x, y, w, h); - return this; - }; - PathProxy2.prototype.closePath = function() { - this._drawPendingPt(); - this.addData(CMD$1.Z); - var ctx = this._ctx; - var x0 = this._x0; - var y0 = this._y0; - if (ctx) { - ctx.closePath(); - } - this._xi = x0; - this._yi = y0; - return this; - }; - PathProxy2.prototype.fill = function(ctx) { - ctx && ctx.fill(); - this.toStatic(); - }; - PathProxy2.prototype.stroke = function(ctx) { - ctx && ctx.stroke(); - this.toStatic(); - }; - PathProxy2.prototype.len = function() { - return this._len; - }; - PathProxy2.prototype.setData = function(data) { - var len2 = data.length; - if (!(this.data && this.data.length === len2) && hasTypedArray) { - this.data = new Float32Array(len2); - } - for (var i = 0; i < len2; i++) { - this.data[i] = data[i]; - } - this._len = len2; - }; - PathProxy2.prototype.appendPath = function(path) { - if (!(path instanceof Array)) { - path = [path]; - } - var len2 = path.length; - var appendSize = 0; - var offset = this._len; - for (var i = 0; i < len2; i++) { - appendSize += path[i].len(); - } - if (hasTypedArray && this.data instanceof Float32Array) { - this.data = new Float32Array(offset + appendSize); - } - for (var i = 0; i < len2; i++) { - var appendPathData = path[i].data; - for (var k = 0; k < appendPathData.length; k++) { - this.data[offset++] = appendPathData[k]; - } - } - this._len = offset; - }; - PathProxy2.prototype.addData = function(cmd, a, b, c, d, e, f, g, h) { - if (!this._saveData) { - return; - } - var data = this.data; - if (this._len + arguments.length > data.length) { - this._expandData(); - data = this.data; - } - for (var i = 0; i < arguments.length; i++) { - data[this._len++] = arguments[i]; - } - }; - PathProxy2.prototype._drawPendingPt = function() { - if (this._pendingPtDist > 0) { - this._ctx && this._ctx.lineTo(this._pendingPtX, this._pendingPtY); - this._pendingPtDist = 0; - } - }; - PathProxy2.prototype._expandData = function() { - if (!(this.data instanceof Array)) { - var newData = []; - for (var i = 0; i < this._len; i++) { - newData[i] = this.data[i]; - } - this.data = newData; - } - }; - PathProxy2.prototype.toStatic = function() { - if (!this._saveData) { - return; - } - this._drawPendingPt(); - var data = this.data; - if (data instanceof Array) { - data.length = this._len; - if (hasTypedArray && this._len > 11) { - this.data = new Float32Array(data); - } - } - }; - PathProxy2.prototype.getBoundingRect = function() { - min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE; - max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE; - var data = this.data; - var xi = 0; - var yi = 0; - var x0 = 0; - var y0 = 0; - var i; - for (i = 0; i < this._len; ) { - var cmd = data[i++]; - var isFirst = i === 1; - if (isFirst) { - xi = data[i]; - yi = data[i + 1]; - x0 = xi; - y0 = yi; - } - switch (cmd) { - case CMD$1.M: - xi = x0 = data[i++]; - yi = y0 = data[i++]; - min2[0] = x0; - min2[1] = y0; - max2[0] = x0; - max2[1] = y0; - break; - case CMD$1.L: - fromLine(xi, yi, data[i], data[i + 1], min2, max2); - xi = data[i++]; - yi = data[i++]; - break; - case CMD$1.C: - fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2); - xi = data[i++]; - yi = data[i++]; - break; - case CMD$1.Q: - fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2); - xi = data[i++]; - yi = data[i++]; - break; - case CMD$1.A: - var cx = data[i++]; - var cy = data[i++]; - var rx = data[i++]; - var ry = data[i++]; - var startAngle = data[i++]; - var endAngle = data[i++] + startAngle; - i += 1; - var anticlockwise = !data[i++]; - if (isFirst) { - x0 = mathCos(startAngle) * rx + cx; - y0 = mathSin(startAngle) * ry + cy; - } - fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2); - xi = mathCos(endAngle) * rx + cx; - yi = mathSin(endAngle) * ry + cy; - break; - case CMD$1.R: - x0 = xi = data[i++]; - y0 = yi = data[i++]; - var width = data[i++]; - var height = data[i++]; - fromLine(x0, y0, x0 + width, y0 + height, min2, max2); - break; - case CMD$1.Z: - xi = x0; - yi = y0; - break; - } - min$1(min, min, min2); - max$1(max, max, max2); - } - if (i === 0) { - min[0] = min[1] = max[0] = max[1] = 0; - } - return new BoundingRect$1(min[0], min[1], max[0] - min[0], max[1] - min[1]); - }; - PathProxy2.prototype._calculateLength = function() { - var data = this.data; - var len2 = this._len; - var ux = this._ux; - var uy = this._uy; - var xi = 0; - var yi = 0; - var x0 = 0; - var y0 = 0; - if (!this._pathSegLen) { - this._pathSegLen = []; - } - var pathSegLen = this._pathSegLen; - var pathTotalLen = 0; - var segCount = 0; - for (var i = 0; i < len2; ) { - var cmd = data[i++]; - var isFirst = i === 1; - if (isFirst) { - xi = data[i]; - yi = data[i + 1]; - x0 = xi; - y0 = yi; - } - var l = -1; - switch (cmd) { - case CMD$1.M: - xi = x0 = data[i++]; - yi = y0 = data[i++]; - break; - case CMD$1.L: { - var x2 = data[i++]; - var y2 = data[i++]; - var dx = x2 - xi; - var dy = y2 - yi; - if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len2 - 1) { - l = Math.sqrt(dx * dx + dy * dy); - xi = x2; - yi = y2; - } - break; - } - case CMD$1.C: { - var x1 = data[i++]; - var y1 = data[i++]; - var x2 = data[i++]; - var y2 = data[i++]; - var x3 = data[i++]; - var y3 = data[i++]; - l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10); - xi = x3; - yi = y3; - break; - } - case CMD$1.Q: { - var x1 = data[i++]; - var y1 = data[i++]; - var x2 = data[i++]; - var y2 = data[i++]; - l = quadraticLength(xi, yi, x1, y1, x2, y2, 10); - xi = x2; - yi = y2; - break; - } - case CMD$1.A: - var cx = data[i++]; - var cy = data[i++]; - var rx = data[i++]; - var ry = data[i++]; - var startAngle = data[i++]; - var delta = data[i++]; - var endAngle = delta + startAngle; - i += 1; - !data[i++]; - if (isFirst) { - x0 = mathCos(startAngle) * rx + cx; - y0 = mathSin(startAngle) * ry + cy; - } - l = mathMax(rx, ry) * mathMin(PI2$3, Math.abs(delta)); - xi = mathCos(endAngle) * rx + cx; - yi = mathSin(endAngle) * ry + cy; - break; - case CMD$1.R: { - x0 = xi = data[i++]; - y0 = yi = data[i++]; - var width = data[i++]; - var height = data[i++]; - l = width * 2 + height * 2; - break; - } - case CMD$1.Z: { - var dx = x0 - xi; - var dy = y0 - yi; - l = Math.sqrt(dx * dx + dy * dy); - xi = x0; - yi = y0; - break; - } - } - if (l >= 0) { - pathSegLen[segCount++] = l; - pathTotalLen += l; - } - } - this._pathLen = pathTotalLen; - return pathTotalLen; - }; - PathProxy2.prototype.rebuildPath = function(ctx, percent) { - var d = this.data; - var ux = this._ux; - var uy = this._uy; - var len2 = this._len; - var x0; - var y0; - var xi; - var yi; - var x; - var y; - var drawPart = percent < 1; - var pathSegLen; - var pathTotalLen; - var accumLength = 0; - var segCount = 0; - var displayedLength; - var pendingPtDist = 0; - var pendingPtX; - var pendingPtY; - if (drawPart) { - if (!this._pathSegLen) { - this._calculateLength(); - } - pathSegLen = this._pathSegLen; - pathTotalLen = this._pathLen; - displayedLength = percent * pathTotalLen; - if (!displayedLength) { - return; - } - } - lo: - for (var i = 0; i < len2; ) { - var cmd = d[i++]; - var isFirst = i === 1; - if (isFirst) { - xi = d[i]; - yi = d[i + 1]; - x0 = xi; - y0 = yi; - } - if (cmd !== CMD$1.L && pendingPtDist > 0) { - ctx.lineTo(pendingPtX, pendingPtY); - pendingPtDist = 0; - } - switch (cmd) { - case CMD$1.M: - x0 = xi = d[i++]; - y0 = yi = d[i++]; - ctx.moveTo(xi, yi); - break; - case CMD$1.L: { - x = d[i++]; - y = d[i++]; - var dx = mathAbs(x - xi); - var dy = mathAbs(y - yi); - if (dx > ux || dy > uy) { - if (drawPart) { - var l = pathSegLen[segCount++]; - if (accumLength + l > displayedLength) { - var t = (displayedLength - accumLength) / l; - ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t); - break lo; - } - accumLength += l; - } - ctx.lineTo(x, y); - xi = x; - yi = y; - pendingPtDist = 0; - } else { - var d2 = dx * dx + dy * dy; - if (d2 > pendingPtDist) { - pendingPtX = x; - pendingPtY = y; - pendingPtDist = d2; - } - } - break; - } - case CMD$1.C: { - var x1 = d[i++]; - var y1 = d[i++]; - var x2 = d[i++]; - var y2 = d[i++]; - var x3 = d[i++]; - var y3 = d[i++]; - if (drawPart) { - var l = pathSegLen[segCount++]; - if (accumLength + l > displayedLength) { - var t = (displayedLength - accumLength) / l; - cubicSubdivide(xi, x1, x2, x3, t, tmpOutX); - cubicSubdivide(yi, y1, y2, y3, t, tmpOutY); - ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]); - break lo; - } - accumLength += l; - } - ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); - xi = x3; - yi = y3; - break; - } - case CMD$1.Q: { - var x1 = d[i++]; - var y1 = d[i++]; - var x2 = d[i++]; - var y2 = d[i++]; - if (drawPart) { - var l = pathSegLen[segCount++]; - if (accumLength + l > displayedLength) { - var t = (displayedLength - accumLength) / l; - quadraticSubdivide(xi, x1, x2, t, tmpOutX); - quadraticSubdivide(yi, y1, y2, t, tmpOutY); - ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]); - break lo; - } - accumLength += l; - } - ctx.quadraticCurveTo(x1, y1, x2, y2); - xi = x2; - yi = y2; - break; - } - case CMD$1.A: - var cx = d[i++]; - var cy = d[i++]; - var rx = d[i++]; - var ry = d[i++]; - var startAngle = d[i++]; - var delta = d[i++]; - var psi = d[i++]; - var anticlockwise = !d[i++]; - var r = rx > ry ? rx : ry; - var isEllipse = mathAbs(rx - ry) > 1e-3; - var endAngle = startAngle + delta; - var breakBuild = false; - if (drawPart) { - var l = pathSegLen[segCount++]; - if (accumLength + l > displayedLength) { - endAngle = startAngle + delta * (displayedLength - accumLength) / l; - breakBuild = true; - } - accumLength += l; - } - if (isEllipse && ctx.ellipse) { - ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise); - } else { - ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise); - } - if (breakBuild) { - break lo; - } - if (isFirst) { - x0 = mathCos(startAngle) * rx + cx; - y0 = mathSin(startAngle) * ry + cy; - } - xi = mathCos(endAngle) * rx + cx; - yi = mathSin(endAngle) * ry + cy; - break; - case CMD$1.R: - x0 = xi = d[i]; - y0 = yi = d[i + 1]; - x = d[i++]; - y = d[i++]; - var width = d[i++]; - var height = d[i++]; - if (drawPart) { - var l = pathSegLen[segCount++]; - if (accumLength + l > displayedLength) { - var d_1 = displayedLength - accumLength; - ctx.moveTo(x, y); - ctx.lineTo(x + mathMin(d_1, width), y); - d_1 -= width; - if (d_1 > 0) { - ctx.lineTo(x + width, y + mathMin(d_1, height)); - } - d_1 -= height; - if (d_1 > 0) { - ctx.lineTo(x + mathMax(width - d_1, 0), y + height); - } - d_1 -= width; - if (d_1 > 0) { - ctx.lineTo(x, y + mathMax(height - d_1, 0)); - } - break lo; - } - accumLength += l; - } - ctx.rect(x, y, width, height); - break; - case CMD$1.Z: - if (drawPart) { - var l = pathSegLen[segCount++]; - if (accumLength + l > displayedLength) { - var t = (displayedLength - accumLength) / l; - ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t); - break lo; - } - accumLength += l; - } - ctx.closePath(); - xi = x0; - yi = y0; - } - } - }; - PathProxy2.prototype.clone = function() { - var newProxy = new PathProxy2(); - var data = this.data; - newProxy.data = data.slice ? data.slice() : Array.prototype.slice.call(data); - newProxy._len = this._len; - return newProxy; - }; - PathProxy2.CMD = CMD$1; - PathProxy2.initDefaultProps = function() { - var proto = PathProxy2.prototype; - proto._saveData = true; - proto._ux = 0; - proto._uy = 0; - proto._pendingPtDist = 0; - proto._version = 0; - }(); - return PathProxy2; -}(); -const PathProxy$1 = PathProxy; -function containStroke$4(x0, y0, x1, y1, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = lineWidth; - var _a = 0; - var _b = x0; - if (y > y0 + _l && y > y1 + _l || y < y0 - _l && y < y1 - _l || x > x0 + _l && x > x1 + _l || x < x0 - _l && x < x1 - _l) { - return false; - } - if (x0 !== x1) { - _a = (y0 - y1) / (x0 - x1); - _b = (x0 * y1 - x1 * y0) / (x0 - x1); - } else { - return Math.abs(x - x0) <= _l / 2; - } - var tmp = _a * x - y + _b; - var _s = tmp * tmp / (_a * _a + 1); - return _s <= _l / 2 * _l / 2; -} -function containStroke$3(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = lineWidth; - if (y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l) { - return false; - } - var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null); - return d <= _l / 2; -} -function containStroke$2(x0, y0, x1, y1, x2, y2, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = lineWidth; - if (y > y0 + _l && y > y1 + _l && y > y2 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l) { - return false; - } - var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null); - return d <= _l / 2; -} -var PI2$2 = Math.PI * 2; -function normalizeRadian(angle) { - angle %= PI2$2; - if (angle < 0) { - angle += PI2$2; - } - return angle; -} -var PI2$1 = Math.PI * 2; -function containStroke$1(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = lineWidth; - x -= cx; - y -= cy; - var d = Math.sqrt(x * x + y * y); - if (d - _l > r || d + _l < r) { - return false; - } - if (Math.abs(startAngle - endAngle) % PI2$1 < 1e-4) { - return true; - } - if (anticlockwise) { - var tmp = startAngle; - startAngle = normalizeRadian(endAngle); - endAngle = normalizeRadian(tmp); - } else { - startAngle = normalizeRadian(startAngle); - endAngle = normalizeRadian(endAngle); - } - if (startAngle > endAngle) { - endAngle += PI2$1; - } - var angle = Math.atan2(y, x); - if (angle < 0) { - angle += PI2$1; - } - return angle >= startAngle && angle <= endAngle || angle + PI2$1 >= startAngle && angle + PI2$1 <= endAngle; -} -function windingLine(x0, y0, x1, y1, x, y) { - if (y > y0 && y > y1 || y < y0 && y < y1) { - return 0; - } - if (y1 === y0) { - return 0; - } - var t = (y - y0) / (y1 - y0); - var dir = y1 < y0 ? 1 : -1; - if (t === 1 || t === 0) { - dir = y1 < y0 ? 0.5 : -0.5; - } - var x_ = t * (x1 - x0) + x0; - return x_ === x ? Infinity : x_ > x ? dir : 0; -} -var CMD = PathProxy$1.CMD; -var PI2 = Math.PI * 2; -var EPSILON = 1e-4; -function isAroundEqual(a, b) { - return Math.abs(a - b) < EPSILON; -} -var roots = [-1, -1, -1]; -var extrema = [-1, -1]; -function swapExtrema() { - var tmp = extrema[0]; - extrema[0] = extrema[1]; - extrema[1] = tmp; -} -function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) { - if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) { - return 0; - } - var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots); - if (nRoots === 0) { - return 0; - } else { - var w = 0; - var nExtrema = -1; - var y0_ = void 0; - var y1_ = void 0; - for (var i = 0; i < nRoots; i++) { - var t = roots[i]; - var unit = t === 0 || t === 1 ? 0.5 : 1; - var x_ = cubicAt(x0, x1, x2, x3, t); - if (x_ < x) { - continue; - } - if (nExtrema < 0) { - nExtrema = cubicExtrema(y0, y1, y2, y3, extrema); - if (extrema[1] < extrema[0] && nExtrema > 1) { - swapExtrema(); - } - y0_ = cubicAt(y0, y1, y2, y3, extrema[0]); - if (nExtrema > 1) { - y1_ = cubicAt(y0, y1, y2, y3, extrema[1]); - } - } - if (nExtrema === 2) { - if (t < extrema[0]) { - w += y0_ < y0 ? unit : -unit; - } else if (t < extrema[1]) { - w += y1_ < y0_ ? unit : -unit; - } else { - w += y3 < y1_ ? unit : -unit; - } - } else { - if (t < extrema[0]) { - w += y0_ < y0 ? unit : -unit; - } else { - w += y3 < y0_ ? unit : -unit; - } - } - } - return w; - } -} -function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) { - if (y > y0 && y > y1 && y > y2 || y < y0 && y < y1 && y < y2) { - return 0; - } - var nRoots = quadraticRootAt(y0, y1, y2, y, roots); - if (nRoots === 0) { - return 0; - } else { - var t = quadraticExtremum(y0, y1, y2); - if (t >= 0 && t <= 1) { - var w = 0; - var y_ = quadraticAt(y0, y1, y2, t); - for (var i = 0; i < nRoots; i++) { - var unit = roots[i] === 0 || roots[i] === 1 ? 0.5 : 1; - var x_ = quadraticAt(x0, x1, x2, roots[i]); - if (x_ < x) { - continue; - } - if (roots[i] < t) { - w += y_ < y0 ? unit : -unit; - } else { - w += y2 < y_ ? unit : -unit; - } - } - return w; - } else { - var unit = roots[0] === 0 || roots[0] === 1 ? 0.5 : 1; - var x_ = quadraticAt(x0, x1, x2, roots[0]); - if (x_ < x) { - return 0; - } - return y2 < y0 ? unit : -unit; - } - } -} -function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) { - y -= cy; - if (y > r || y < -r) { - return 0; - } - var tmp = Math.sqrt(r * r - y * y); - roots[0] = -tmp; - roots[1] = tmp; - var dTheta = Math.abs(startAngle - endAngle); - if (dTheta < 1e-4) { - return 0; - } - if (dTheta >= PI2 - 1e-4) { - startAngle = 0; - endAngle = PI2; - var dir = anticlockwise ? 1 : -1; - if (x >= roots[0] + cx && x <= roots[1] + cx) { - return dir; - } else { - return 0; - } - } - if (startAngle > endAngle) { - var tmp_1 = startAngle; - startAngle = endAngle; - endAngle = tmp_1; - } - if (startAngle < 0) { - startAngle += PI2; - endAngle += PI2; - } - var w = 0; - for (var i = 0; i < 2; i++) { - var x_ = roots[i]; - if (x_ + cx > x) { - var angle = Math.atan2(y, x_); - var dir = anticlockwise ? 1 : -1; - if (angle < 0) { - angle = PI2 + angle; - } - if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) { - if (angle > Math.PI / 2 && angle < Math.PI * 1.5) { - dir = -dir; - } - w += dir; - } - } - } - return w; -} -function containPath(path, lineWidth, isStroke, x, y) { - var data = path.data; - var len2 = path.len(); - var w = 0; - var xi = 0; - var yi = 0; - var x0 = 0; - var y0 = 0; - var x1; - var y1; - for (var i = 0; i < len2; ) { - var cmd = data[i++]; - var isFirst = i === 1; - if (cmd === CMD.M && i > 1) { - if (!isStroke) { - w += windingLine(xi, yi, x0, y0, x, y); - } - } - if (isFirst) { - xi = data[i]; - yi = data[i + 1]; - x0 = xi; - y0 = yi; - } - switch (cmd) { - case CMD.M: - x0 = data[i++]; - y0 = data[i++]; - xi = x0; - yi = y0; - break; - case CMD.L: - if (isStroke) { - if (containStroke$4(xi, yi, data[i], data[i + 1], lineWidth, x, y)) { - return true; - } - } else { - w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0; - } - xi = data[i++]; - yi = data[i++]; - break; - case CMD.C: - if (isStroke) { - if (containStroke$3(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) { - return true; - } - } else { - w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0; - } - xi = data[i++]; - yi = data[i++]; - break; - case CMD.Q: - if (isStroke) { - if (containStroke$2(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) { - return true; - } - } else { - w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0; - } - xi = data[i++]; - yi = data[i++]; - break; - case CMD.A: - var cx = data[i++]; - var cy = data[i++]; - var rx = data[i++]; - var ry = data[i++]; - var theta = data[i++]; - var dTheta = data[i++]; - i += 1; - var anticlockwise = !!(1 - data[i++]); - x1 = Math.cos(theta) * rx + cx; - y1 = Math.sin(theta) * ry + cy; - if (!isFirst) { - w += windingLine(xi, yi, x1, y1, x, y); - } else { - x0 = x1; - y0 = y1; - } - var _x = (x - cx) * ry / rx + cx; - if (isStroke) { - if (containStroke$1(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) { - return true; - } - } else { - w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y); - } - xi = Math.cos(theta + dTheta) * rx + cx; - yi = Math.sin(theta + dTheta) * ry + cy; - break; - case CMD.R: - x0 = xi = data[i++]; - y0 = yi = data[i++]; - var width = data[i++]; - var height = data[i++]; - x1 = x0 + width; - y1 = y0 + height; - if (isStroke) { - if (containStroke$4(x0, y0, x1, y0, lineWidth, x, y) || containStroke$4(x1, y0, x1, y1, lineWidth, x, y) || containStroke$4(x1, y1, x0, y1, lineWidth, x, y) || containStroke$4(x0, y1, x0, y0, lineWidth, x, y)) { - return true; - } - } else { - w += windingLine(x1, y0, x1, y1, x, y); - w += windingLine(x0, y1, x0, y0, x, y); - } - break; - case CMD.Z: - if (isStroke) { - if (containStroke$4(xi, yi, x0, y0, lineWidth, x, y)) { - return true; - } - } else { - w += windingLine(xi, yi, x0, y0, x, y); - } - xi = x0; - yi = y0; - break; - } - } - if (!isStroke && !isAroundEqual(yi, y0)) { - w += windingLine(xi, yi, x0, y0, x, y) || 0; - } - return w !== 0; -} -function contain(pathProxy, x, y) { - return containPath(pathProxy, 0, false, x, y); -} -function containStroke(pathProxy, lineWidth, x, y) { - return containPath(pathProxy, lineWidth, true, x, y); -} -var DEFAULT_PATH_STYLE = defaults({ - fill: "#000", - stroke: null, - strokePercent: 1, - fillOpacity: 1, - strokeOpacity: 1, - lineDashOffset: 0, - lineWidth: 1, - lineCap: "butt", - miterLimit: 10, - strokeNoScale: false, - strokeFirst: false -}, DEFAULT_COMMON_STYLE); -var DEFAULT_PATH_ANIMATION_PROPS = { - style: defaults({ - fill: true, - stroke: true, - strokePercent: true, - fillOpacity: true, - strokeOpacity: true, - lineDashOffset: true, - lineWidth: true, - miterLimit: true - }, DEFAULT_COMMON_ANIMATION_PROPS.style) -}; -var pathCopyParams = TRANSFORMABLE_PROPS.concat([ - "invisible", - "culling", - "z", - "z2", - "zlevel", - "parent" -]); -var Path = function(_super) { - __extends(Path2, _super); - function Path2(opts) { - return _super.call(this, opts) || this; - } - Path2.prototype.update = function() { - var _this = this; - _super.prototype.update.call(this); - var style = this.style; - if (style.decal) { - var decalEl = this._decalEl = this._decalEl || new Path2(); - if (decalEl.buildPath === Path2.prototype.buildPath) { - decalEl.buildPath = function(ctx) { - _this.buildPath(ctx, _this.shape); - }; - } - decalEl.silent = true; - var decalElStyle = decalEl.style; - for (var key in style) { - if (decalElStyle[key] !== style[key]) { - decalElStyle[key] = style[key]; - } - } - decalElStyle.fill = style.fill ? style.decal : null; - decalElStyle.decal = null; - decalElStyle.shadowColor = null; - style.strokeFirst && (decalElStyle.stroke = null); - for (var i = 0; i < pathCopyParams.length; ++i) { - decalEl[pathCopyParams[i]] = this[pathCopyParams[i]]; - } - decalEl.__dirty |= REDRAW_BIT; - } else if (this._decalEl) { - this._decalEl = null; - } - }; - Path2.prototype.getDecalElement = function() { - return this._decalEl; - }; - Path2.prototype._init = function(props) { - var keysArr = keys(props); - this.shape = this.getDefaultShape(); - var defaultStyle = this.getDefaultStyle(); - if (defaultStyle) { - this.useStyle(defaultStyle); - } - for (var i = 0; i < keysArr.length; i++) { - var key = keysArr[i]; - var value = props[key]; - if (key === "style") { - if (!this.style) { - this.useStyle(value); - } else { - extend(this.style, value); - } - } else if (key === "shape") { - extend(this.shape, value); - } else { - _super.prototype.attrKV.call(this, key, value); - } - } - if (!this.style) { - this.useStyle({}); - } - }; - Path2.prototype.getDefaultStyle = function() { - return null; - }; - Path2.prototype.getDefaultShape = function() { - return {}; - }; - Path2.prototype.canBeInsideText = function() { - return this.hasFill(); - }; - Path2.prototype.getInsideTextFill = function() { - var pathFill = this.style.fill; - if (pathFill !== "none") { - if (isString(pathFill)) { - var fillLum = lum(pathFill, 0); - if (fillLum > 0.5) { - return DARK_LABEL_COLOR; - } else if (fillLum > 0.2) { - return LIGHTER_LABEL_COLOR; - } - return LIGHT_LABEL_COLOR; - } else if (pathFill) { - return LIGHT_LABEL_COLOR; - } - } - return DARK_LABEL_COLOR; - }; - Path2.prototype.getInsideTextStroke = function(textFill) { - var pathFill = this.style.fill; - if (isString(pathFill)) { - var zr = this.__zr; - var isDarkMode = !!(zr && zr.isDarkMode()); - var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD; - if (isDarkMode === isDarkLabel) { - return pathFill; - } - } - }; - Path2.prototype.buildPath = function(ctx, shapeCfg, inBatch) { - }; - Path2.prototype.pathUpdated = function() { - this.__dirty &= ~SHAPE_CHANGED_BIT; - }; - Path2.prototype.getUpdatedPathProxy = function(inBatch) { - !this.path && this.createPathProxy(); - this.path.beginPath(); - this.buildPath(this.path, this.shape, inBatch); - return this.path; - }; - Path2.prototype.createPathProxy = function() { - this.path = new PathProxy$1(false); - }; - Path2.prototype.hasStroke = function() { - var style = this.style; - var stroke = style.stroke; - return !(stroke == null || stroke === "none" || !(style.lineWidth > 0)); - }; - Path2.prototype.hasFill = function() { - var style = this.style; - var fill = style.fill; - return fill != null && fill !== "none"; - }; - Path2.prototype.getBoundingRect = function() { - var rect = this._rect; - var style = this.style; - var needsUpdateRect = !rect; - if (needsUpdateRect) { - var firstInvoke = false; - if (!this.path) { - firstInvoke = true; - this.createPathProxy(); - } - var path = this.path; - if (firstInvoke || this.__dirty & SHAPE_CHANGED_BIT) { - path.beginPath(); - this.buildPath(path, this.shape, false); - this.pathUpdated(); - } - rect = path.getBoundingRect(); - } - this._rect = rect; - if (this.hasStroke() && this.path && this.path.len() > 0) { - var rectStroke = this._rectStroke || (this._rectStroke = rect.clone()); - if (this.__dirty || needsUpdateRect) { - rectStroke.copy(rect); - var lineScale = style.strokeNoScale ? this.getLineScale() : 1; - var w = style.lineWidth; - if (!this.hasFill()) { - var strokeContainThreshold = this.strokeContainThreshold; - w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold); - } - if (lineScale > 1e-10) { - rectStroke.width += w / lineScale; - rectStroke.height += w / lineScale; - rectStroke.x -= w / lineScale / 2; - rectStroke.y -= w / lineScale / 2; - } - } - return rectStroke; - } - return rect; - }; - Path2.prototype.contain = function(x, y) { - var localPos = this.transformCoordToLocal(x, y); - var rect = this.getBoundingRect(); - var style = this.style; - x = localPos[0]; - y = localPos[1]; - if (rect.contain(x, y)) { - var pathProxy = this.path; - if (this.hasStroke()) { - var lineWidth = style.lineWidth; - var lineScale = style.strokeNoScale ? this.getLineScale() : 1; - if (lineScale > 1e-10) { - if (!this.hasFill()) { - lineWidth = Math.max(lineWidth, this.strokeContainThreshold); - } - if (containStroke(pathProxy, lineWidth / lineScale, x, y)) { - return true; - } - } - } - if (this.hasFill()) { - return contain(pathProxy, x, y); - } - } - return false; - }; - Path2.prototype.dirtyShape = function() { - this.__dirty |= SHAPE_CHANGED_BIT; - if (this._rect) { - this._rect = null; - } - if (this._decalEl) { - this._decalEl.dirtyShape(); - } - this.markRedraw(); - }; - Path2.prototype.dirty = function() { - this.dirtyStyle(); - this.dirtyShape(); - }; - Path2.prototype.animateShape = function(loop) { - return this.animate("shape", loop); - }; - Path2.prototype.updateDuringAnimation = function(targetKey) { - if (targetKey === "style") { - this.dirtyStyle(); - } else if (targetKey === "shape") { - this.dirtyShape(); - } else { - this.markRedraw(); - } - }; - Path2.prototype.attrKV = function(key, value) { - if (key === "shape") { - this.setShape(value); - } else { - _super.prototype.attrKV.call(this, key, value); - } - }; - Path2.prototype.setShape = function(keyOrObj, value) { - var shape = this.shape; - if (!shape) { - shape = this.shape = {}; - } - if (typeof keyOrObj === "string") { - shape[keyOrObj] = value; - } else { - extend(shape, keyOrObj); - } - this.dirtyShape(); - return this; - }; - Path2.prototype.shapeChanged = function() { - return !!(this.__dirty & SHAPE_CHANGED_BIT); - }; - Path2.prototype.createStyle = function(obj) { - return createObject(DEFAULT_PATH_STYLE, obj); - }; - Path2.prototype._innerSaveToNormal = function(toState) { - _super.prototype._innerSaveToNormal.call(this, toState); - var normalState = this._normalState; - if (toState.shape && !normalState.shape) { - normalState.shape = extend({}, this.shape); - } - }; - Path2.prototype._applyStateObj = function(stateName, state, normalState, keepCurrentStates, transition, animationCfg) { - _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg); - var needsRestoreToNormal = !(state && keepCurrentStates); - var targetShape; - if (state && state.shape) { - if (transition) { - if (keepCurrentStates) { - targetShape = state.shape; - } else { - targetShape = extend({}, normalState.shape); - extend(targetShape, state.shape); - } - } else { - targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape); - extend(targetShape, state.shape); - } - } else if (needsRestoreToNormal) { - targetShape = normalState.shape; - } - if (targetShape) { - if (transition) { - this.shape = extend({}, this.shape); - var targetShapePrimaryProps = {}; - var shapeKeys = keys(targetShape); - for (var i = 0; i < shapeKeys.length; i++) { - var key = shapeKeys[i]; - if (typeof targetShape[key] === "object") { - this.shape[key] = targetShape[key]; - } else { - targetShapePrimaryProps[key] = targetShape[key]; - } - } - this._transitionState(stateName, { - shape: targetShapePrimaryProps - }, animationCfg); - } else { - this.shape = targetShape; - this.dirtyShape(); - } - } - }; - Path2.prototype._mergeStates = function(states) { - var mergedState = _super.prototype._mergeStates.call(this, states); - var mergedShape; - for (var i = 0; i < states.length; i++) { - var state = states[i]; - if (state.shape) { - mergedShape = mergedShape || {}; - this._mergeStyle(mergedShape, state.shape); - } - } - if (mergedShape) { - mergedState.shape = mergedShape; - } - return mergedState; - }; - Path2.prototype.getAnimationStyleProps = function() { - return DEFAULT_PATH_ANIMATION_PROPS; - }; - Path2.prototype.isZeroArea = function() { - return false; - }; - Path2.extend = function(defaultProps) { - var Sub = function(_super2) { - __extends(Sub2, _super2); - function Sub2(opts) { - var _this = _super2.call(this, opts) || this; - defaultProps.init && defaultProps.init.call(_this, opts); - return _this; - } - Sub2.prototype.getDefaultStyle = function() { - return clone$2(defaultProps.style); - }; - Sub2.prototype.getDefaultShape = function() { - return clone$2(defaultProps.shape); - }; - return Sub2; - }(Path2); - for (var key in defaultProps) { - if (typeof defaultProps[key] === "function") { - Sub.prototype[key] = defaultProps[key]; - } - } - return Sub; - }; - Path2.initDefaultProps = function() { - var pathProto = Path2.prototype; - pathProto.type = "path"; - pathProto.strokeContainThreshold = 5; - pathProto.segmentIgnoreThreshold = 0; - pathProto.subPixelOptimize = false; - pathProto.autoBatch = false; - pathProto.__dirty = REDRAW_BIT | STYLE_CHANGED_BIT | SHAPE_CHANGED_BIT; - }(); - return Path2; -}(Displayable$1); -const Path$1 = Path; -var DEFAULT_TSPAN_STYLE = defaults({ - strokeFirst: true, - font: DEFAULT_FONT, - x: 0, - y: 0, - textAlign: "left", - textBaseline: "top", - miterLimit: 2 -}, DEFAULT_PATH_STYLE); -var TSpan = function(_super) { - __extends(TSpan2, _super); - function TSpan2() { - return _super !== null && _super.apply(this, arguments) || this; - } - TSpan2.prototype.hasStroke = function() { - var style = this.style; - var stroke = style.stroke; - return stroke != null && stroke !== "none" && style.lineWidth > 0; - }; - TSpan2.prototype.hasFill = function() { - var style = this.style; - var fill = style.fill; - return fill != null && fill !== "none"; - }; - TSpan2.prototype.createStyle = function(obj) { - return createObject(DEFAULT_TSPAN_STYLE, obj); - }; - TSpan2.prototype.setBoundingRect = function(rect) { - this._rect = rect; - }; - TSpan2.prototype.getBoundingRect = function() { - var style = this.style; - if (!this._rect) { - var text = style.text; - text != null ? text += "" : text = ""; - var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline); - rect.x += style.x || 0; - rect.y += style.y || 0; - if (this.hasStroke()) { - var w = style.lineWidth; - rect.x -= w / 2; - rect.y -= w / 2; - rect.width += w; - rect.height += w; - } - this._rect = rect; - } - return this._rect; - }; - TSpan2.initDefaultProps = function() { - var tspanProto = TSpan2.prototype; - tspanProto.dirtyRectTolerance = 10; - }(); - return TSpan2; -}(Displayable$1); -TSpan.prototype.type = "tspan"; -const TSpan$1 = TSpan; -var DEFAULT_IMAGE_STYLE = defaults({ - x: 0, - y: 0 -}, DEFAULT_COMMON_STYLE); -var DEFAULT_IMAGE_ANIMATION_PROPS = { - style: defaults({ - x: true, - y: true, - width: true, - height: true, - sx: true, - sy: true, - sWidth: true, - sHeight: true - }, DEFAULT_COMMON_ANIMATION_PROPS.style) -}; -function isImageLike(source) { - return !!(source && typeof source !== "string" && source.width && source.height); -} -var ZRImage = function(_super) { - __extends(ZRImage2, _super); - function ZRImage2() { - return _super !== null && _super.apply(this, arguments) || this; - } - ZRImage2.prototype.createStyle = function(obj) { - return createObject(DEFAULT_IMAGE_STYLE, obj); - }; - ZRImage2.prototype._getSize = function(dim) { - var style = this.style; - var size = style[dim]; - if (size != null) { - return size; - } - var imageSource = isImageLike(style.image) ? style.image : this.__image; - if (!imageSource) { - return 0; - } - var otherDim = dim === "width" ? "height" : "width"; - var otherDimSize = style[otherDim]; - if (otherDimSize == null) { - return imageSource[dim]; - } else { - return imageSource[dim] / imageSource[otherDim] * otherDimSize; - } - }; - ZRImage2.prototype.getWidth = function() { - return this._getSize("width"); - }; - ZRImage2.prototype.getHeight = function() { - return this._getSize("height"); - }; - ZRImage2.prototype.getAnimationStyleProps = function() { - return DEFAULT_IMAGE_ANIMATION_PROPS; - }; - ZRImage2.prototype.getBoundingRect = function() { - var style = this.style; - if (!this._rect) { - this._rect = new BoundingRect$1(style.x || 0, style.y || 0, this.getWidth(), this.getHeight()); - } - return this._rect; - }; - return ZRImage2; -}(Displayable$1); -ZRImage.prototype.type = "image"; -const ZRImage$1 = ZRImage; -function buildPath(ctx, shape) { - var x = shape.x; - var y = shape.y; - var width = shape.width; - var height = shape.height; - var r = shape.r; - var r1; - var r2; - var r3; - var r4; - if (width < 0) { - x = x + width; - width = -width; - } - if (height < 0) { - y = y + height; - height = -height; - } - if (typeof r === "number") { - r1 = r2 = r3 = r4 = r; - } else if (r instanceof Array) { - if (r.length === 1) { - r1 = r2 = r3 = r4 = r[0]; - } else if (r.length === 2) { - r1 = r3 = r[0]; - r2 = r4 = r[1]; - } else if (r.length === 3) { - r1 = r[0]; - r2 = r4 = r[1]; - r3 = r[2]; - } else { - r1 = r[0]; - r2 = r[1]; - r3 = r[2]; - r4 = r[3]; - } - } else { - r1 = r2 = r3 = r4 = 0; - } - var total; - if (r1 + r2 > width) { - total = r1 + r2; - r1 *= width / total; - r2 *= width / total; - } - if (r3 + r4 > width) { - total = r3 + r4; - r3 *= width / total; - r4 *= width / total; - } - if (r2 + r3 > height) { - total = r2 + r3; - r2 *= height / total; - r3 *= height / total; - } - if (r1 + r4 > height) { - total = r1 + r4; - r1 *= height / total; - r4 *= height / total; - } - ctx.moveTo(x + r1, y); - ctx.lineTo(x + width - r2, y); - r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0); - ctx.lineTo(x + width, y + height - r3); - r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2); - ctx.lineTo(x + r4, y + height); - r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI); - ctx.lineTo(x, y + r1); - r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5); -} -var round = Math.round; -function subPixelOptimizeLine(outputShape, inputShape, style) { - if (!inputShape) { - return; - } - var x1 = inputShape.x1; - var x2 = inputShape.x2; - var y1 = inputShape.y1; - var y2 = inputShape.y2; - outputShape.x1 = x1; - outputShape.x2 = x2; - outputShape.y1 = y1; - outputShape.y2 = y2; - var lineWidth = style && style.lineWidth; - if (!lineWidth) { - return outputShape; - } - if (round(x1 * 2) === round(x2 * 2)) { - outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true); - } - if (round(y1 * 2) === round(y2 * 2)) { - outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true); - } - return outputShape; -} -function subPixelOptimizeRect(outputShape, inputShape, style) { - if (!inputShape) { - return; - } - var originX = inputShape.x; - var originY = inputShape.y; - var originWidth = inputShape.width; - var originHeight = inputShape.height; - outputShape.x = originX; - outputShape.y = originY; - outputShape.width = originWidth; - outputShape.height = originHeight; - var lineWidth = style && style.lineWidth; - if (!lineWidth) { - return outputShape; - } - outputShape.x = subPixelOptimize(originX, lineWidth, true); - outputShape.y = subPixelOptimize(originY, lineWidth, true); - outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1); - outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1); - return outputShape; -} -function subPixelOptimize(position, lineWidth, positiveOrNegative) { - if (!lineWidth) { - return position; - } - var doubledPosition = round(position * 2); - return (doubledPosition + round(lineWidth)) % 2 === 0 ? doubledPosition / 2 : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2; -} -var RectShape = function() { - function RectShape2() { - this.x = 0; - this.y = 0; - this.width = 0; - this.height = 0; - } - return RectShape2; -}(); -var subPixelOptimizeOutputShape = {}; -var Rect = function(_super) { - __extends(Rect2, _super); - function Rect2(opts) { - return _super.call(this, opts) || this; - } - Rect2.prototype.getDefaultShape = function() { - return new RectShape(); - }; - Rect2.prototype.buildPath = function(ctx, shape) { - var x; - var y; - var width; - var height; - if (this.subPixelOptimize) { - var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style); - x = optimizedShape.x; - y = optimizedShape.y; - width = optimizedShape.width; - height = optimizedShape.height; - optimizedShape.r = shape.r; - shape = optimizedShape; - } else { - x = shape.x; - y = shape.y; - width = shape.width; - height = shape.height; - } - if (!shape.r) { - ctx.rect(x, y, width, height); - } else { - buildPath(ctx, shape); - } - }; - Rect2.prototype.isZeroArea = function() { - return !this.shape.width || !this.shape.height; - }; - return Rect2; -}(Path$1); -Rect.prototype.type = "rect"; -const Rect$1 = Rect; -var DEFAULT_RICH_TEXT_COLOR = { - fill: "#000" -}; -var DEFAULT_STROKE_LINE_WIDTH = 2; -var DEFAULT_TEXT_ANIMATION_PROPS = { - style: defaults({ - fill: true, - stroke: true, - fillOpacity: true, - strokeOpacity: true, - lineWidth: true, - fontSize: true, - lineHeight: true, - width: true, - height: true, - textShadowColor: true, - textShadowBlur: true, - textShadowOffsetX: true, - textShadowOffsetY: true, - backgroundColor: true, - padding: true, - borderColor: true, - borderWidth: true, - borderRadius: true - }, DEFAULT_COMMON_ANIMATION_PROPS.style) -}; -var ZRText = function(_super) { - __extends(ZRText2, _super); - function ZRText2(opts) { - var _this = _super.call(this) || this; - _this.type = "text"; - _this._children = []; - _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR; - _this.attr(opts); - return _this; - } - ZRText2.prototype.childrenRef = function() { - return this._children; - }; - ZRText2.prototype.update = function() { - _super.prototype.update.call(this); - if (this.styleChanged()) { - this._updateSubTexts(); - } - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - child.zlevel = this.zlevel; - child.z = this.z; - child.z2 = this.z2; - child.culling = this.culling; - child.cursor = this.cursor; - child.invisible = this.invisible; - } - }; - ZRText2.prototype.updateTransform = function() { - var innerTransformable = this.innerTransformable; - if (innerTransformable) { - innerTransformable.updateTransform(); - if (innerTransformable.transform) { - this.transform = innerTransformable.transform; - } - } else { - _super.prototype.updateTransform.call(this); - } - }; - ZRText2.prototype.getLocalTransform = function(m) { - var innerTransformable = this.innerTransformable; - return innerTransformable ? innerTransformable.getLocalTransform(m) : _super.prototype.getLocalTransform.call(this, m); - }; - ZRText2.prototype.getComputedTransform = function() { - if (this.__hostTarget) { - this.__hostTarget.getComputedTransform(); - this.__hostTarget.updateInnerText(true); - } - return _super.prototype.getComputedTransform.call(this); - }; - ZRText2.prototype._updateSubTexts = function() { - this._childCursor = 0; - normalizeTextStyle(this.style); - this.style.rich ? this._updateRichTexts() : this._updatePlainTexts(); - this._children.length = this._childCursor; - this.styleUpdated(); - }; - ZRText2.prototype.addSelfToZr = function(zr) { - _super.prototype.addSelfToZr.call(this, zr); - for (var i = 0; i < this._children.length; i++) { - this._children[i].__zr = zr; - } - }; - ZRText2.prototype.removeSelfFromZr = function(zr) { - _super.prototype.removeSelfFromZr.call(this, zr); - for (var i = 0; i < this._children.length; i++) { - this._children[i].__zr = null; - } - }; - ZRText2.prototype.getBoundingRect = function() { - if (this.styleChanged()) { - this._updateSubTexts(); - } - if (!this._rect) { - var tmpRect2 = new BoundingRect$1(0, 0, 0, 0); - var children = this._children; - var tmpMat = []; - var rect = null; - for (var i = 0; i < children.length; i++) { - var child = children[i]; - var childRect = child.getBoundingRect(); - var transform = child.getLocalTransform(tmpMat); - if (transform) { - tmpRect2.copy(childRect); - tmpRect2.applyTransform(transform); - rect = rect || tmpRect2.clone(); - rect.union(tmpRect2); - } else { - rect = rect || childRect.clone(); - rect.union(childRect); - } - } - this._rect = rect || tmpRect2; - } - return this._rect; - }; - ZRText2.prototype.setDefaultTextStyle = function(defaultTextStyle) { - this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR; - }; - ZRText2.prototype.setTextContent = function(textContent) { - }; - ZRText2.prototype._mergeStyle = function(targetStyle, sourceStyle) { - if (!sourceStyle) { - return targetStyle; - } - var sourceRich = sourceStyle.rich; - var targetRich = targetStyle.rich || sourceRich && {}; - extend(targetStyle, sourceStyle); - if (sourceRich && targetRich) { - this._mergeRich(targetRich, sourceRich); - targetStyle.rich = targetRich; - } else if (targetRich) { - targetStyle.rich = targetRich; - } - return targetStyle; - }; - ZRText2.prototype._mergeRich = function(targetRich, sourceRich) { - var richNames = keys(sourceRich); - for (var i = 0; i < richNames.length; i++) { - var richName = richNames[i]; - targetRich[richName] = targetRich[richName] || {}; - extend(targetRich[richName], sourceRich[richName]); - } - }; - ZRText2.prototype.getAnimationStyleProps = function() { - return DEFAULT_TEXT_ANIMATION_PROPS; - }; - ZRText2.prototype._getOrCreateChild = function(Ctor) { - var child = this._children[this._childCursor]; - if (!child || !(child instanceof Ctor)) { - child = new Ctor(); - } - this._children[this._childCursor++] = child; - child.__zr = this.__zr; - child.parent = this; - return child; - }; - ZRText2.prototype._updatePlainTexts = function() { - var style = this.style; - var textFont = style.font || DEFAULT_FONT; - var textPadding = style.padding; - var text = getStyleText(style); - var contentBlock = parsePlainText(text, style); - var needDrawBg = needDrawBackground(style); - var bgColorDrawn = !!style.backgroundColor; - var outerHeight = contentBlock.outerHeight; - var outerWidth = contentBlock.outerWidth; - var contentWidth = contentBlock.contentWidth; - var textLines = contentBlock.lines; - var lineHeight = contentBlock.lineHeight; - var defaultStyle = this._defaultStyle; - var baseX = style.x || 0; - var baseY = style.y || 0; - var textAlign = style.align || defaultStyle.align || "left"; - var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || "top"; - var textX = baseX; - var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign); - if (needDrawBg || textPadding) { - var boxX = adjustTextX(baseX, outerWidth, textAlign); - var boxY = adjustTextY(baseY, outerHeight, verticalAlign); - needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight); - } - textY += lineHeight / 2; - if (textPadding) { - textX = getTextXForPadding(baseX, textAlign, textPadding); - if (verticalAlign === "top") { - textY += textPadding[0]; - } else if (verticalAlign === "bottom") { - textY -= textPadding[2]; - } - } - var defaultLineWidth = 0; - var useDefaultFill = false; - var textFill = getFill("fill" in style ? style.fill : (useDefaultFill = true, defaultStyle.fill)); - var textStroke = getStroke("stroke" in style ? style.stroke : !bgColorDrawn && (!defaultStyle.autoStroke || useDefaultFill) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke) : null); - var hasShadow2 = style.textShadowBlur > 0; - var fixedBoundingRect = style.width != null && (style.overflow === "truncate" || style.overflow === "break" || style.overflow === "breakAll"); - var calculatedLineHeight = contentBlock.calculatedLineHeight; - for (var i = 0; i < textLines.length; i++) { - var el = this._getOrCreateChild(TSpan$1); - var subElStyle = el.createStyle(); - el.useStyle(subElStyle); - subElStyle.text = textLines[i]; - subElStyle.x = textX; - subElStyle.y = textY; - if (textAlign) { - subElStyle.textAlign = textAlign; - } - subElStyle.textBaseline = "middle"; - subElStyle.opacity = style.opacity; - subElStyle.strokeFirst = true; - if (hasShadow2) { - subElStyle.shadowBlur = style.textShadowBlur || 0; - subElStyle.shadowColor = style.textShadowColor || "transparent"; - subElStyle.shadowOffsetX = style.textShadowOffsetX || 0; - subElStyle.shadowOffsetY = style.textShadowOffsetY || 0; - } - subElStyle.stroke = textStroke; - subElStyle.fill = textFill; - if (textStroke) { - subElStyle.lineWidth = style.lineWidth || defaultLineWidth; - subElStyle.lineDash = style.lineDash; - subElStyle.lineDashOffset = style.lineDashOffset || 0; - } - subElStyle.font = textFont; - setSeparateFont(subElStyle, style); - textY += lineHeight; - if (fixedBoundingRect) { - el.setBoundingRect(new BoundingRect$1(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), contentWidth, calculatedLineHeight)); - } - } - }; - ZRText2.prototype._updateRichTexts = function() { - var style = this.style; - var text = getStyleText(style); - var contentBlock = parseRichText(text, style); - var contentWidth = contentBlock.width; - var outerWidth = contentBlock.outerWidth; - var outerHeight = contentBlock.outerHeight; - var textPadding = style.padding; - var baseX = style.x || 0; - var baseY = style.y || 0; - var defaultStyle = this._defaultStyle; - var textAlign = style.align || defaultStyle.align; - var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign; - var boxX = adjustTextX(baseX, outerWidth, textAlign); - var boxY = adjustTextY(baseY, outerHeight, verticalAlign); - var xLeft = boxX; - var lineTop = boxY; - if (textPadding) { - xLeft += textPadding[3]; - lineTop += textPadding[0]; - } - var xRight = xLeft + contentWidth; - if (needDrawBackground(style)) { - this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight); - } - var bgColorDrawn = !!style.backgroundColor; - for (var i = 0; i < contentBlock.lines.length; i++) { - var line = contentBlock.lines[i]; - var tokens = line.tokens; - var tokenCount = tokens.length; - var lineHeight = line.lineHeight; - var remainedWidth = line.width; - var leftIndex = 0; - var lineXLeft = xLeft; - var lineXRight = xRight; - var rightIndex = tokenCount - 1; - var token = void 0; - while (leftIndex < tokenCount && (token = tokens[leftIndex], !token.align || token.align === "left")) { - this._placeToken(token, style, lineHeight, lineTop, lineXLeft, "left", bgColorDrawn); - remainedWidth -= token.width; - lineXLeft += token.width; - leftIndex++; - } - while (rightIndex >= 0 && (token = tokens[rightIndex], token.align === "right")) { - this._placeToken(token, style, lineHeight, lineTop, lineXRight, "right", bgColorDrawn); - remainedWidth -= token.width; - lineXRight -= token.width; - rightIndex--; - } - lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2; - while (leftIndex <= rightIndex) { - token = tokens[leftIndex]; - this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, "center", bgColorDrawn); - lineXLeft += token.width; - leftIndex++; - } - lineTop += lineHeight; - } - }; - ZRText2.prototype._placeToken = function(token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) { - var tokenStyle = style.rich[token.styleName] || {}; - tokenStyle.text = token.text; - var verticalAlign = token.verticalAlign; - var y = lineTop + lineHeight / 2; - if (verticalAlign === "top") { - y = lineTop + token.height / 2; - } else if (verticalAlign === "bottom") { - y = lineTop + lineHeight - token.height / 2; - } - var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle); - needDrawBg && this._renderBackground(tokenStyle, style, textAlign === "right" ? x - token.width : textAlign === "center" ? x - token.width / 2 : x, y - token.height / 2, token.width, token.height); - var bgColorDrawn = !!tokenStyle.backgroundColor; - var textPadding = token.textPadding; - if (textPadding) { - x = getTextXForPadding(x, textAlign, textPadding); - y -= token.height / 2 - textPadding[0] - token.innerHeight / 2; - } - var el = this._getOrCreateChild(TSpan$1); - var subElStyle = el.createStyle(); - el.useStyle(subElStyle); - var defaultStyle = this._defaultStyle; - var useDefaultFill = false; - var defaultLineWidth = 0; - var textFill = getFill("fill" in tokenStyle ? tokenStyle.fill : "fill" in style ? style.fill : (useDefaultFill = true, defaultStyle.fill)); - var textStroke = getStroke("stroke" in tokenStyle ? tokenStyle.stroke : "stroke" in style ? style.stroke : !bgColorDrawn && !parentBgColorDrawn && (!defaultStyle.autoStroke || useDefaultFill) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke) : null); - var hasShadow2 = tokenStyle.textShadowBlur > 0 || style.textShadowBlur > 0; - subElStyle.text = token.text; - subElStyle.x = x; - subElStyle.y = y; - if (hasShadow2) { - subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0; - subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || "transparent"; - subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0; - subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0; - } - subElStyle.textAlign = textAlign; - subElStyle.textBaseline = "middle"; - subElStyle.font = token.font || DEFAULT_FONT; - subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1); - setSeparateFont(subElStyle, tokenStyle); - if (textStroke) { - subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth); - subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash); - subElStyle.lineDashOffset = style.lineDashOffset || 0; - subElStyle.stroke = textStroke; - } - if (textFill) { - subElStyle.fill = textFill; - } - var textWidth = token.contentWidth; - var textHeight = token.contentHeight; - el.setBoundingRect(new BoundingRect$1(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight)); - }; - ZRText2.prototype._renderBackground = function(style, topStyle, x, y, width, height) { - var textBackgroundColor = style.backgroundColor; - var textBorderWidth = style.borderWidth; - var textBorderColor = style.borderColor; - var isImageBg = textBackgroundColor && textBackgroundColor.image; - var isPlainOrGradientBg = textBackgroundColor && !isImageBg; - var textBorderRadius = style.borderRadius; - var self2 = this; - var rectEl; - var imgEl; - if (isPlainOrGradientBg || style.lineHeight || textBorderWidth && textBorderColor) { - rectEl = this._getOrCreateChild(Rect$1); - rectEl.useStyle(rectEl.createStyle()); - rectEl.style.fill = null; - var rectShape = rectEl.shape; - rectShape.x = x; - rectShape.y = y; - rectShape.width = width; - rectShape.height = height; - rectShape.r = textBorderRadius; - rectEl.dirtyShape(); - } - if (isPlainOrGradientBg) { - var rectStyle = rectEl.style; - rectStyle.fill = textBackgroundColor || null; - rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1); - } else if (isImageBg) { - imgEl = this._getOrCreateChild(ZRImage$1); - imgEl.onload = function() { - self2.dirtyStyle(); - }; - var imgStyle = imgEl.style; - imgStyle.image = textBackgroundColor.image; - imgStyle.x = x; - imgStyle.y = y; - imgStyle.width = width; - imgStyle.height = height; - } - if (textBorderWidth && textBorderColor) { - var rectStyle = rectEl.style; - rectStyle.lineWidth = textBorderWidth; - rectStyle.stroke = textBorderColor; - rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1); - rectStyle.lineDash = style.borderDash; - rectStyle.lineDashOffset = style.borderDashOffset || 0; - rectEl.strokeContainThreshold = 0; - if (rectEl.hasFill() && rectEl.hasStroke()) { - rectStyle.strokeFirst = true; - rectStyle.lineWidth *= 2; - } - } - var commonStyle = (rectEl || imgEl).style; - commonStyle.shadowBlur = style.shadowBlur || 0; - commonStyle.shadowColor = style.shadowColor || "transparent"; - commonStyle.shadowOffsetX = style.shadowOffsetX || 0; - commonStyle.shadowOffsetY = style.shadowOffsetY || 0; - commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1); - }; - ZRText2.makeFont = function(style) { - var font = ""; - if (hasSeparateFont(style)) { - font = [ - style.fontStyle, - style.fontWeight, - parseFontSize(style.fontSize), - style.fontFamily || "sans-serif" - ].join(" "); - } - return font && trim(font) || style.textFont || style.font; - }; - return ZRText2; -}(Displayable$1); -var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 }; -var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 }; -var FONT_PARTS = ["fontStyle", "fontWeight", "fontSize", "fontFamily"]; -function parseFontSize(fontSize) { - if (typeof fontSize === "string" && (fontSize.indexOf("px") !== -1 || fontSize.indexOf("rem") !== -1 || fontSize.indexOf("em") !== -1)) { - return fontSize; - } else if (!isNaN(+fontSize)) { - return fontSize + "px"; - } else { - return DEFAULT_FONT_SIZE + "px"; - } -} -function setSeparateFont(targetStyle, sourceStyle) { - for (var i = 0; i < FONT_PARTS.length; i++) { - var fontProp = FONT_PARTS[i]; - var val = sourceStyle[fontProp]; - if (val != null) { - targetStyle[fontProp] = val; - } - } -} -function hasSeparateFont(style) { - return style.fontSize != null || style.fontFamily || style.fontWeight; -} -function normalizeTextStyle(style) { - normalizeStyle(style); - each(style.rich, normalizeStyle); - return style; -} -function normalizeStyle(style) { - if (style) { - style.font = ZRText.makeFont(style); - var textAlign = style.align; - textAlign === "middle" && (textAlign = "center"); - style.align = textAlign == null || VALID_TEXT_ALIGN[textAlign] ? textAlign : "left"; - var verticalAlign = style.verticalAlign; - verticalAlign === "center" && (verticalAlign = "middle"); - style.verticalAlign = verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign] ? verticalAlign : "top"; - var textPadding = style.padding; - if (textPadding) { - style.padding = normalizeCssArray(style.padding); - } - } -} -function getStroke(stroke, lineWidth) { - return stroke == null || lineWidth <= 0 || stroke === "transparent" || stroke === "none" ? null : stroke.image || stroke.colorStops ? "#000" : stroke; -} -function getFill(fill) { - return fill == null || fill === "none" ? null : fill.image || fill.colorStops ? "#000" : fill; -} -function getTextXForPadding(x, textAlign, textPadding) { - return textAlign === "right" ? x - textPadding[1] : textAlign === "center" ? x + textPadding[3] / 2 - textPadding[1] / 2 : x + textPadding[3]; -} -function getStyleText(style) { - var text = style.text; - text != null && (text += ""); - return text; -} -function needDrawBackground(style) { - return !!(style.backgroundColor || style.lineHeight || style.borderWidth && style.borderColor); -} -const ZRText$1 = ZRText; -var CompoundPath = function(_super) { - __extends(CompoundPath2, _super); - function CompoundPath2() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.type = "compound"; - return _this; - } - CompoundPath2.prototype._updatePathDirty = function() { - var paths = this.shape.paths; - var dirtyPath = this.shapeChanged(); - for (var i = 0; i < paths.length; i++) { - dirtyPath = dirtyPath || paths[i].shapeChanged(); - } - if (dirtyPath) { - this.dirtyShape(); - } - }; - CompoundPath2.prototype.beforeBrush = function() { - this._updatePathDirty(); - var paths = this.shape.paths || []; - var scale2 = this.getGlobalScale(); - for (var i = 0; i < paths.length; i++) { - if (!paths[i].path) { - paths[i].createPathProxy(); - } - paths[i].path.setScale(scale2[0], scale2[1], paths[i].segmentIgnoreThreshold); - } - }; - CompoundPath2.prototype.buildPath = function(ctx, shape) { - var paths = shape.paths || []; - for (var i = 0; i < paths.length; i++) { - paths[i].buildPath(ctx, paths[i].shape, true); - } - }; - CompoundPath2.prototype.afterBrush = function() { - var paths = this.shape.paths || []; - for (var i = 0; i < paths.length; i++) { - paths[i].pathUpdated(); - } - }; - CompoundPath2.prototype.getBoundingRect = function() { - this._updatePathDirty.call(this); - return Path$1.prototype.getBoundingRect.call(this); - }; - return CompoundPath2; -}(Path$1); -const CompoundPath$1 = CompoundPath; -function isSafeNum(num) { - return isFinite(num); -} -function createLinearGradient(ctx, obj, rect) { - var x = obj.x == null ? 0 : obj.x; - var x2 = obj.x2 == null ? 1 : obj.x2; - var y = obj.y == null ? 0 : obj.y; - var y2 = obj.y2 == null ? 0 : obj.y2; - if (!obj.global) { - x = x * rect.width + rect.x; - x2 = x2 * rect.width + rect.x; - y = y * rect.height + rect.y; - y2 = y2 * rect.height + rect.y; - } - x = isSafeNum(x) ? x : 0; - x2 = isSafeNum(x2) ? x2 : 1; - y = isSafeNum(y) ? y : 0; - y2 = isSafeNum(y2) ? y2 : 0; - var canvasGradient = ctx.createLinearGradient(x, y, x2, y2); - return canvasGradient; -} -function createRadialGradient(ctx, obj, rect) { - var width = rect.width; - var height = rect.height; - var min3 = Math.min(width, height); - var x = obj.x == null ? 0.5 : obj.x; - var y = obj.y == null ? 0.5 : obj.y; - var r = obj.r == null ? 0.5 : obj.r; - if (!obj.global) { - x = x * width + rect.x; - y = y * height + rect.y; - r = r * min3; - } - x = isSafeNum(x) ? x : 0.5; - y = isSafeNum(y) ? y : 0.5; - r = r >= 0 && isSafeNum(r) ? r : 0.5; - var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r); - return canvasGradient; -} -function getCanvasGradient(ctx, obj, rect) { - var canvasGradient = obj.type === "radial" ? createRadialGradient(ctx, obj, rect) : createLinearGradient(ctx, obj, rect); - var colorStops = obj.colorStops; - for (var i = 0; i < colorStops.length; i++) { - canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color); - } - return canvasGradient; -} -function isClipPathChanged(clipPaths, prevClipPaths) { - if (clipPaths === prevClipPaths || !clipPaths && !prevClipPaths) { - return false; - } - if (!clipPaths || !prevClipPaths || clipPaths.length !== prevClipPaths.length) { - return true; - } - for (var i = 0; i < clipPaths.length; i++) { - if (clipPaths[i] !== prevClipPaths[i]) { - return true; - } - } - return false; -} -function parseInt10(val) { - return parseInt(val, 10); -} -function getSize(root, whIdx, opts) { - var wh = ["width", "height"][whIdx]; - var cwh = ["clientWidth", "clientHeight"][whIdx]; - var plt = ["paddingLeft", "paddingTop"][whIdx]; - var prb = ["paddingRight", "paddingBottom"][whIdx]; - if (opts[wh] != null && opts[wh] !== "auto") { - return parseFloat(opts[wh]); - } - var stl = document.defaultView.getComputedStyle(root); - return (root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh])) - (parseInt10(stl[plt]) || 0) - (parseInt10(stl[prb]) || 0) | 0; -} -function normalizeLineDash(lineType, lineWidth) { - if (!lineType || lineType === "solid" || !(lineWidth > 0)) { - return null; - } - return lineType === "dashed" ? [4 * lineWidth, 2 * lineWidth] : lineType === "dotted" ? [lineWidth] : isNumber(lineType) ? [lineType] : isArray(lineType) ? lineType : null; -} -function getLineDash(el) { - var style = el.style; - var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth); - var lineDashOffset = style.lineDashOffset; - if (lineDash) { - var lineScale_1 = style.strokeNoScale && el.getLineScale ? el.getLineScale() : 1; - if (lineScale_1 && lineScale_1 !== 1) { - lineDash = map(lineDash, function(rawVal) { - return rawVal / lineScale_1; - }); - lineDashOffset /= lineScale_1; - } - } - return [lineDash, lineDashOffset]; -} -var pathProxyForDraw = new PathProxy$1(true); -function styleHasStroke(style) { - var stroke = style.stroke; - return !(stroke == null || stroke === "none" || !(style.lineWidth > 0)); -} -function isValidStrokeFillStyle(strokeOrFill) { - return typeof strokeOrFill === "string" && strokeOrFill !== "none"; -} -function styleHasFill(style) { - var fill = style.fill; - return fill != null && fill !== "none"; -} -function doFillPath(ctx, style) { - if (style.fillOpacity != null && style.fillOpacity !== 1) { - var originalGlobalAlpha = ctx.globalAlpha; - ctx.globalAlpha = style.fillOpacity * style.opacity; - ctx.fill(); - ctx.globalAlpha = originalGlobalAlpha; - } else { - ctx.fill(); - } -} -function doStrokePath(ctx, style) { - if (style.strokeOpacity != null && style.strokeOpacity !== 1) { - var originalGlobalAlpha = ctx.globalAlpha; - ctx.globalAlpha = style.strokeOpacity * style.opacity; - ctx.stroke(); - ctx.globalAlpha = originalGlobalAlpha; - } else { - ctx.stroke(); - } -} -function createCanvasPattern(ctx, pattern, el) { - var image = createOrUpdateImage(pattern.image, pattern.__image, el); - if (isImageReady(image)) { - var canvasPattern = ctx.createPattern(image, pattern.repeat || "repeat"); - if (typeof DOMMatrix === "function" && canvasPattern && canvasPattern.setTransform) { - var matrix2 = new DOMMatrix(); - matrix2.translateSelf(pattern.x || 0, pattern.y || 0); - matrix2.rotateSelf(0, 0, (pattern.rotation || 0) * RADIAN_TO_DEGREE); - matrix2.scaleSelf(pattern.scaleX || 1, pattern.scaleY || 1); - canvasPattern.setTransform(matrix2); - } - return canvasPattern; - } -} -function brushPath(ctx, el, style, inBatch) { - var _a; - var hasStroke = styleHasStroke(style); - var hasFill = styleHasFill(style); - var strokePercent = style.strokePercent; - var strokePart = strokePercent < 1; - var firstDraw = !el.path; - if ((!el.silent || strokePart) && firstDraw) { - el.createPathProxy(); - } - var path = el.path || pathProxyForDraw; - var dirtyFlag = el.__dirty; - if (!inBatch) { - var fill = style.fill; - var stroke = style.stroke; - var hasFillGradient = hasFill && !!fill.colorStops; - var hasStrokeGradient = hasStroke && !!stroke.colorStops; - var hasFillPattern = hasFill && !!fill.image; - var hasStrokePattern = hasStroke && !!stroke.image; - var fillGradient = void 0; - var strokeGradient = void 0; - var fillPattern = void 0; - var strokePattern = void 0; - var rect = void 0; - if (hasFillGradient || hasStrokeGradient) { - rect = el.getBoundingRect(); - } - if (hasFillGradient) { - fillGradient = dirtyFlag ? getCanvasGradient(ctx, fill, rect) : el.__canvasFillGradient; - el.__canvasFillGradient = fillGradient; - } - if (hasStrokeGradient) { - strokeGradient = dirtyFlag ? getCanvasGradient(ctx, stroke, rect) : el.__canvasStrokeGradient; - el.__canvasStrokeGradient = strokeGradient; - } - if (hasFillPattern) { - fillPattern = dirtyFlag || !el.__canvasFillPattern ? createCanvasPattern(ctx, fill, el) : el.__canvasFillPattern; - el.__canvasFillPattern = fillPattern; - } - if (hasStrokePattern) { - strokePattern = dirtyFlag || !el.__canvasStrokePattern ? createCanvasPattern(ctx, stroke, el) : el.__canvasStrokePattern; - el.__canvasStrokePattern = fillPattern; - } - if (hasFillGradient) { - ctx.fillStyle = fillGradient; - } else if (hasFillPattern) { - if (fillPattern) { - ctx.fillStyle = fillPattern; - } else { - hasFill = false; - } - } - if (hasStrokeGradient) { - ctx.strokeStyle = strokeGradient; - } else if (hasStrokePattern) { - if (strokePattern) { - ctx.strokeStyle = strokePattern; - } else { - hasStroke = false; - } - } - } - var scale2 = el.getGlobalScale(); - path.setScale(scale2[0], scale2[1], el.segmentIgnoreThreshold); - var lineDash; - var lineDashOffset; - if (ctx.setLineDash && style.lineDash) { - _a = getLineDash(el), lineDash = _a[0], lineDashOffset = _a[1]; - } - var needsRebuild = true; - if (firstDraw || dirtyFlag & SHAPE_CHANGED_BIT) { - path.setDPR(ctx.dpr); - if (strokePart) { - path.setContext(null); - } else { - path.setContext(ctx); - needsRebuild = false; - } - path.reset(); - el.buildPath(path, el.shape, inBatch); - path.toStatic(); - el.pathUpdated(); - } - if (needsRebuild) { - path.rebuildPath(ctx, strokePart ? strokePercent : 1); - } - if (lineDash) { - ctx.setLineDash(lineDash); - ctx.lineDashOffset = lineDashOffset; - } - if (!inBatch) { - if (style.strokeFirst) { - if (hasStroke) { - doStrokePath(ctx, style); - } - if (hasFill) { - doFillPath(ctx, style); - } - } else { - if (hasFill) { - doFillPath(ctx, style); - } - if (hasStroke) { - doStrokePath(ctx, style); - } - } - } - if (lineDash) { - ctx.setLineDash([]); - } -} -function brushImage(ctx, el, style) { - var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload); - if (!image || !isImageReady(image)) { - return; - } - var x = style.x || 0; - var y = style.y || 0; - var width = el.getWidth(); - var height = el.getHeight(); - var aspect = image.width / image.height; - if (width == null && height != null) { - width = height * aspect; - } else if (height == null && width != null) { - height = width / aspect; - } else if (width == null && height == null) { - width = image.width; - height = image.height; - } - if (style.sWidth && style.sHeight) { - var sx = style.sx || 0; - var sy = style.sy || 0; - ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height); - } else if (style.sx && style.sy) { - var sx = style.sx; - var sy = style.sy; - var sWidth = width - sx; - var sHeight = height - sy; - ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height); - } else { - ctx.drawImage(image, x, y, width, height); - } -} -function brushText(ctx, el, style) { - var _a; - var text = style.text; - text != null && (text += ""); - if (text) { - ctx.font = style.font || DEFAULT_FONT; - ctx.textAlign = style.textAlign; - ctx.textBaseline = style.textBaseline; - var lineDash = void 0; - var lineDashOffset = void 0; - if (ctx.setLineDash && style.lineDash) { - _a = getLineDash(el), lineDash = _a[0], lineDashOffset = _a[1]; - } - if (lineDash) { - ctx.setLineDash(lineDash); - ctx.lineDashOffset = lineDashOffset; - } - if (style.strokeFirst) { - if (styleHasStroke(style)) { - ctx.strokeText(text, style.x, style.y); - } - if (styleHasFill(style)) { - ctx.fillText(text, style.x, style.y); - } - } else { - if (styleHasFill(style)) { - ctx.fillText(text, style.x, style.y); - } - if (styleHasStroke(style)) { - ctx.strokeText(text, style.x, style.y); - } - } - if (lineDash) { - ctx.setLineDash([]); - } - } -} -var SHADOW_NUMBER_PROPS = ["shadowBlur", "shadowOffsetX", "shadowOffsetY"]; -var STROKE_PROPS = [ - ["lineCap", "butt"], - ["lineJoin", "miter"], - ["miterLimit", 10] -]; -function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) { - var styleChanged = false; - if (!forceSetAll) { - prevStyle = prevStyle || {}; - if (style === prevStyle) { - return false; - } - } - if (forceSetAll || style.opacity !== prevStyle.opacity) { - flushPathDrawn(ctx, scope); - styleChanged = true; - var opacity = Math.max(Math.min(style.opacity, 1), 0); - ctx.globalAlpha = isNaN(opacity) ? DEFAULT_COMMON_STYLE.opacity : opacity; - } - if (forceSetAll || style.blend !== prevStyle.blend) { - if (!styleChanged) { - flushPathDrawn(ctx, scope); - styleChanged = true; - } - ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend; - } - for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) { - var propName = SHADOW_NUMBER_PROPS[i]; - if (forceSetAll || style[propName] !== prevStyle[propName]) { - if (!styleChanged) { - flushPathDrawn(ctx, scope); - styleChanged = true; - } - ctx[propName] = ctx.dpr * (style[propName] || 0); - } - } - if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) { - if (!styleChanged) { - flushPathDrawn(ctx, scope); - styleChanged = true; - } - ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor; - } - return styleChanged; -} -function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) { - var style = getStyle(el, scope.inHover); - var prevStyle = forceSetAll ? null : prevEl && getStyle(prevEl, scope.inHover) || {}; - if (style === prevStyle) { - return false; - } - var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope); - if (forceSetAll || style.fill !== prevStyle.fill) { - if (!styleChanged) { - flushPathDrawn(ctx, scope); - styleChanged = true; - } - isValidStrokeFillStyle(style.fill) && (ctx.fillStyle = style.fill); - } - if (forceSetAll || style.stroke !== prevStyle.stroke) { - if (!styleChanged) { - flushPathDrawn(ctx, scope); - styleChanged = true; - } - isValidStrokeFillStyle(style.stroke) && (ctx.strokeStyle = style.stroke); - } - if (forceSetAll || style.opacity !== prevStyle.opacity) { - if (!styleChanged) { - flushPathDrawn(ctx, scope); - styleChanged = true; - } - ctx.globalAlpha = style.opacity == null ? 1 : style.opacity; - } - if (el.hasStroke()) { - var lineWidth = style.lineWidth; - var newLineWidth = lineWidth / (style.strokeNoScale && el.getLineScale ? el.getLineScale() : 1); - if (ctx.lineWidth !== newLineWidth) { - if (!styleChanged) { - flushPathDrawn(ctx, scope); - styleChanged = true; - } - ctx.lineWidth = newLineWidth; - } - } - for (var i = 0; i < STROKE_PROPS.length; i++) { - var prop = STROKE_PROPS[i]; - var propName = prop[0]; - if (forceSetAll || style[propName] !== prevStyle[propName]) { - if (!styleChanged) { - flushPathDrawn(ctx, scope); - styleChanged = true; - } - ctx[propName] = style[propName] || prop[1]; - } - } - return styleChanged; -} -function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) { - return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope); -} -function setContextTransform(ctx, el) { - var m = el.transform; - var dpr2 = ctx.dpr || 1; - if (m) { - ctx.setTransform(dpr2 * m[0], dpr2 * m[1], dpr2 * m[2], dpr2 * m[3], dpr2 * m[4], dpr2 * m[5]); - } else { - ctx.setTransform(dpr2, 0, 0, dpr2, 0, 0); - } -} -function updateClipStatus(clipPaths, ctx, scope) { - var allClipped = false; - for (var i = 0; i < clipPaths.length; i++) { - var clipPath = clipPaths[i]; - allClipped = allClipped || clipPath.isZeroArea(); - setContextTransform(ctx, clipPath); - ctx.beginPath(); - clipPath.buildPath(ctx, clipPath.shape); - ctx.clip(); - } - scope.allClipped = allClipped; -} -function isTransformChanged(m0, m1) { - if (m0 && m1) { - return m0[0] !== m1[0] || m0[1] !== m1[1] || m0[2] !== m1[2] || m0[3] !== m1[3] || m0[4] !== m1[4] || m0[5] !== m1[5]; - } else if (!m0 && !m1) { - return false; - } - return true; -} -var DRAW_TYPE_PATH = 1; -var DRAW_TYPE_IMAGE = 2; -var DRAW_TYPE_TEXT = 3; -var DRAW_TYPE_INCREMENTAL = 4; -function canPathBatch(style) { - var hasFill = styleHasFill(style); - var hasStroke = styleHasStroke(style); - return !(style.lineDash || !(+hasFill ^ +hasStroke) || hasFill && typeof style.fill !== "string" || hasStroke && typeof style.stroke !== "string" || style.strokePercent < 1 || style.strokeOpacity < 1 || style.fillOpacity < 1); -} -function flushPathDrawn(ctx, scope) { - scope.batchFill && ctx.fill(); - scope.batchStroke && ctx.stroke(); - scope.batchFill = ""; - scope.batchStroke = ""; -} -function getStyle(el, inHover) { - return inHover ? el.__hoverStyle || el.style : el.style; -} -function brushSingle(ctx, el) { - brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true); -} -function brush(ctx, el, scope, isLast) { - var m = el.transform; - if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) { - el.__dirty &= ~REDRAW_BIT; - el.__isRendered = false; - return; - } - var clipPaths = el.__clipPaths; - var prevElClipPaths = scope.prevElClipPaths; - var forceSetTransform = false; - var forceSetStyle = false; - if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) { - if (prevElClipPaths && prevElClipPaths.length) { - flushPathDrawn(ctx, scope); - ctx.restore(); - forceSetStyle = forceSetTransform = true; - scope.prevElClipPaths = null; - scope.allClipped = false; - scope.prevEl = null; - } - if (clipPaths && clipPaths.length) { - flushPathDrawn(ctx, scope); - ctx.save(); - updateClipStatus(clipPaths, ctx, scope); - forceSetTransform = true; - } - scope.prevElClipPaths = clipPaths; - } - if (scope.allClipped) { - el.__isRendered = false; - return; - } - el.beforeBrush && el.beforeBrush(); - el.innerBeforeBrush(); - var prevEl = scope.prevEl; - if (!prevEl) { - forceSetStyle = forceSetTransform = true; - } - var canBatchPath = el instanceof Path$1 && el.autoBatch && canPathBatch(el.style); - if (forceSetTransform || isTransformChanged(m, prevEl.transform)) { - flushPathDrawn(ctx, scope); - setContextTransform(ctx, el); - } else if (!canBatchPath) { - flushPathDrawn(ctx, scope); - } - var style = getStyle(el, scope.inHover); - if (el instanceof Path$1) { - if (scope.lastDrawType !== DRAW_TYPE_PATH) { - forceSetStyle = true; - scope.lastDrawType = DRAW_TYPE_PATH; - } - bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope); - if (!canBatchPath || !scope.batchFill && !scope.batchStroke) { - ctx.beginPath(); - } - brushPath(ctx, el, style, canBatchPath); - if (canBatchPath) { - scope.batchFill = style.fill || ""; - scope.batchStroke = style.stroke || ""; - } - } else { - if (el instanceof TSpan$1) { - if (scope.lastDrawType !== DRAW_TYPE_TEXT) { - forceSetStyle = true; - scope.lastDrawType = DRAW_TYPE_TEXT; - } - bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope); - brushText(ctx, el, style); - } else if (el instanceof ZRImage$1) { - if (scope.lastDrawType !== DRAW_TYPE_IMAGE) { - forceSetStyle = true; - scope.lastDrawType = DRAW_TYPE_IMAGE; - } - bindImageStyle(ctx, el, prevEl, forceSetStyle, scope); - brushImage(ctx, el, style); - } else if (el.getTemporalDisplayables) { - if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) { - forceSetStyle = true; - scope.lastDrawType = DRAW_TYPE_INCREMENTAL; - } - brushIncremental(ctx, el, scope); - } - } - if (canBatchPath && isLast) { - flushPathDrawn(ctx, scope); - } - el.innerAfterBrush(); - el.afterBrush && el.afterBrush(); - scope.prevEl = el; - el.__dirty = 0; - el.__isRendered = true; -} -function brushIncremental(ctx, el, scope) { - var displayables = el.getDisplayables(); - var temporalDisplayables = el.getTemporalDisplayables(); - ctx.save(); - var innerScope = { - prevElClipPaths: null, - prevEl: null, - allClipped: false, - viewWidth: scope.viewWidth, - viewHeight: scope.viewHeight, - inHover: scope.inHover - }; - var i; - var len2; - for (i = el.getCursor(), len2 = displayables.length; i < len2; i++) { - var displayable = displayables[i]; - displayable.beforeBrush && displayable.beforeBrush(); - displayable.innerBeforeBrush(); - brush(ctx, displayable, innerScope, i === len2 - 1); - displayable.innerAfterBrush(); - displayable.afterBrush && displayable.afterBrush(); - innerScope.prevEl = displayable; - } - for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) { - var displayable = temporalDisplayables[i_1]; - displayable.beforeBrush && displayable.beforeBrush(); - displayable.innerBeforeBrush(); - brush(ctx, displayable, innerScope, i_1 === len_1 - 1); - displayable.innerAfterBrush(); - displayable.afterBrush && displayable.afterBrush(); - innerScope.prevEl = displayable; - } - el.clearTemporalDisplayables(); - el.notClear = true; - ctx.restore(); -} -export { - lift as $, - brushSingle as A, - BoundingRect$1 as B, - CompoundPath$1 as C, - isCanvasEl as D, - transformCoordWithViewport as E, - Eventful$1 as F, - dist as G, - REDRAW_BIT as H, - requestAnimationFrame$1 as I, - Animator$1 as J, - noop as K, - Element$1 as L, - guid as M, - keys as N, - retrieve2 as O, - lum as P, - DARK_MODE_THRESHOLD as Q, - Rect$1 as R, - isNumber as S, - isStringSafe as T, - assert as U, - createHashMap as V, - LRU$1 as W, - Path$1 as X, - isArrayLike as Y, - ZRText$1 as Z, - __extends as _, - ZRImage$1 as a, - rotate as a$, - isGradientObject as a0, - applyTransform as a1, - PathProxy$1 as a2, - min$1 as a3, - max$1 as a4, - clone$1 as a5, - sub as a6, - scale$1 as a7, - distance as a8, - add as a9, - eqNaN as aA, - windingLine as aB, - getBoundingRect as aC, - lerp$1 as aD, - cubicRootAt as aE, - lerp as aF, - retrieve3 as aG, - find as aH, - fromPoints as aI, - translate as aJ, - scale as aK, - create as aL, - modifyHSL as aM, - modifyAlpha as aN, - retrieve as aO, - create$1 as aP, - len as aQ, - set as aR, - copy$1 as aS, - scaleAndAdd as aT, - distSquare as aU, - normalizeArcAngles as aV, - clone as aW, - containStroke$4 as aX, - containStroke$2 as aY, - mergeAll as aZ, - normalizeRadian as a_, - subPixelOptimizeLine as aa, - quadraticSubdivide as ab, - cubicSubdivide as ac, - normalize as ad, - cubicDerivativeAt as ae, - cubicAt as af, - quadraticDerivativeAt as ag, - quadraticAt as ah, - Point$1 as ai, - Displayable$1 as aj, - identity as ak, - mul as al, - subPixelOptimize as am, - Transformable$1 as an, - invert as ao, - hasOwn as ap, - subPixelOptimizeRect as aq, - trim as ar, - normalizeCssArray as as, - isTypedArray as at, - setAsPrimitive as au, - concatArray as av, - calculateTextPosition as aw, - platformApi as ax, - slice as ay, - parsePercent as az, - bind as b, - TSpan$1 as b0, - copy as b1, - fastLerp as b2, - stringify as b3, - parse as b4, - TRANSFORMABLE_PROPS as b5, - cloneValue as b6, - isDom as b7, - transformLocalCoord as b8, - isRegExp as b9, - getSize as bA, - encodeBase64 as bB, - disableUserSelect as bC, - devicePixelRatio as bD, - getCanvasGradient as bE, - isImagePatternObject as bF, - createCanvasPattern as bG, - brush as bH, - logError as bI, - isAroundZero as ba, - normalizeColor as bb, - getLineDash as bc, - DEFAULT_PATH_STYLE as bd, - createCubicEasingFunc as be, - copyTransform as bf, - getSRTTransformString as bg, - getPathPrecision as bh, - isLinearGradient as bi, - isRadialGradient as bj, - round4 as bk, - getIdURL as bl, - isImagePattern as bm, - createOrUpdateImage as bn, - DEFAULT_FONT as bo, - adjustTextY$1 as bp, - getLineHeight as bq, - TEXT_ALIGN_TO_ANCHOR as br, - hasSeparateFont as bs, - parseFontSize as bt, - DEFAULT_FONT_FAMILY as bu, - isGradient as bv, - isPattern as bw, - getMatrixStr as bx, - hasShadow as by, - getShadowKey as bz, - clone$2 as c, - curry as d, - encodeHTML as e, - defaults as f, - each as g, - extend as h, - filter as i, - indexOf as j, - inherits as k, - isArray as l, - mixin as m, - isFunction as n, - isObject as o, - isString as p, - map as q, - merge as r, - reduce as s, - truncateText as t, - matrix as u, - vector as v, - util as w, - color as x, - setPlatformAPI as y, - env$1 as z -}; diff --git a/templates/assets/dist/assets/index-51a9a0b2.js b/templates/assets/dist/assets/index-51a9a0b2.js deleted file mode 100644 index 1f17e0c9..00000000 --- a/templates/assets/dist/assets/index-51a9a0b2.js +++ /dev/null @@ -1,691 +0,0 @@ -import { g as getDefaultExportFromCjs, c as commonjsGlobal } from "./_commonjsHelpers-7a7fcd32.js"; -function _mergeNamespaces(n, m) { - for (var i = 0; i < m.length; i++) { - const e = m[i]; - if (typeof e !== "string" && !Array.isArray(e)) { - for (const k in e) { - if (k !== "default" && !(k in n)) { - const d = Object.getOwnPropertyDescriptor(e, k); - if (d) { - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - } - } - return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: "Module" })); -} -var js = { exports: {} }; -var defaultOptions; -var hasRequiredDefaultOptions; -function requireDefaultOptions() { - if (hasRequiredDefaultOptions) - return defaultOptions; - hasRequiredDefaultOptions = 1; - defaultOptions = { - // Where to render the table of contents. - tocSelector: ".js-toc", - // Where to grab the headings to build the table of contents. - contentSelector: ".js-toc-content", - // Which headings to grab inside of the contentSelector element. - headingSelector: "h1, h2, h3", - // Headings that match the ignoreSelector will be skipped. - ignoreSelector: ".js-toc-ignore", - // For headings inside relative or absolute positioned containers within content - hasInnerContainers: false, - // Main class to add to links. - linkClass: "toc-link", - // Extra classes to add to links. - extraLinkClasses: "", - // Class to add to active links, - // the link corresponding to the top most heading on the page. - activeLinkClass: "is-active-link", - // Main class to add to lists. - listClass: "toc-list", - // Extra classes to add to lists. - extraListClasses: "", - // Class that gets added when a list should be collapsed. - isCollapsedClass: "is-collapsed", - // Class that gets added when a list should be able - // to be collapsed but isn't necessarily collapsed. - collapsibleClass: "is-collapsible", - // Class to add to list items. - listItemClass: "toc-list-item", - // Class to add to active list items. - activeListItemClass: "is-active-li", - // How many heading levels should not be collapsed. - // For example, number 6 will show everything since - // there are only 6 heading levels and number 0 will collapse them all. - // The sections that are hidden will open - // and close as you scroll to headings within them. - collapseDepth: 0, - // Smooth scrolling enabled. - scrollSmooth: true, - // Smooth scroll duration. - scrollSmoothDuration: 420, - // Smooth scroll offset. - scrollSmoothOffset: 0, - // Callback for scroll end. - scrollEndCallback: function(e) { - }, - // Headings offset between the headings and the top of the document (this is meant for minor adjustments). - headingsOffset: 1, - // Timeout between events firing to make sure it's - // not too rapid (for performance reasons). - throttleTimeout: 50, - // Element to add the positionFixedClass to. - positionFixedSelector: null, - // Fixed position class to add to make sidebar fixed after scrolling - // down past the fixedSidebarOffset. - positionFixedClass: "is-position-fixed", - // fixedSidebarOffset can be any number but by default is set - // to auto which sets the fixedSidebarOffset to the sidebar - // element's offsetTop from the top of the document on init. - fixedSidebarOffset: "auto", - // includeHtml can be set to true to include the HTML markup from the - // heading node instead of just including the textContent. - includeHtml: false, - // includeTitleTags automatically sets the html title tag of the link - // to match the title. This can be useful for SEO purposes or - // when truncating titles. - includeTitleTags: false, - // onclick function to apply to all links in toc. will be called with - // the event as the first parameter, and this can be used to stop, - // propagation, prevent default or perform action - onClick: function(e) { - }, - // orderedList can be set to false to generate unordered lists (ul) - // instead of ordered lists (ol) - orderedList: true, - // If there is a fixed article scroll container, set to calculate titles' offset - scrollContainer: null, - // prevent ToC DOM rendering if it's already rendered by an external system - skipRendering: false, - // Optional callback to change heading labels. - // For example it can be used to cut down and put ellipses on multiline headings you deem too long. - // Called each time a heading is parsed. Expects a string and returns the modified label to display. - // Additionally, the attribute `data-heading-label` may be used on a heading to specify - // a shorter string to be used in the TOC. - // function (string) => string - headingLabelCallback: false, - // ignore headings that are hidden in DOM - ignoreHiddenElements: false, - // Optional callback to modify properties of parsed headings. - // The heading element is passed in node parameter and information parsed by default parser is provided in obj parameter. - // Function has to return the same or modified obj. - // The heading will be excluded from TOC if nothing is returned. - // function (object, HTMLElement) => object | void - headingObjectCallback: null, - // Set the base path, useful if you use a `base` tag in `head`. - basePath: "", - // Only takes affect when `tocSelector` is scrolling, - // keep the toc scroll position in sync with the content. - disableTocScrollSync: false, - // Offset for the toc scroll (top) position when scrolling the page. - // Only effective if `disableTocScrollSync` is false. - tocScrollOffset: 0 - }; - return defaultOptions; -} -var buildHtml; -var hasRequiredBuildHtml; -function requireBuildHtml() { - if (hasRequiredBuildHtml) - return buildHtml; - hasRequiredBuildHtml = 1; - buildHtml = function(options) { - var forEach = [].forEach; - var some = [].some; - var body = document.body; - var tocElement; - var currentlyHighlighting = true; - var SPACE_CHAR = " "; - function createEl(d, container) { - var link = container.appendChild(createLink(d)); - if (d.children.length) { - var list = createList(d.isCollapsed); - d.children.forEach(function(child) { - createEl(child, list); - }); - link.appendChild(list); - } - } - function render(parent, data) { - var collapsed = false; - var container = createList(collapsed); - data.forEach(function(d) { - createEl(d, container); - }); - tocElement = parent || tocElement; - if (tocElement === null) { - return; - } - if (tocElement.firstChild) { - tocElement.removeChild(tocElement.firstChild); - } - if (data.length === 0) { - return tocElement; - } - return tocElement.appendChild(container); - } - function createLink(data) { - var item = document.createElement("li"); - var a = document.createElement("a"); - if (options.listItemClass) { - item.setAttribute("class", options.listItemClass); - } - if (options.onClick) { - a.onclick = options.onClick; - } - if (options.includeTitleTags) { - a.setAttribute("title", data.textContent); - } - if (options.includeHtml && data.childNodes.length) { - forEach.call(data.childNodes, function(node) { - a.appendChild(node.cloneNode(true)); - }); - } else { - a.textContent = data.textContent; - } - a.setAttribute("href", options.basePath + "#" + data.id); - a.setAttribute("class", options.linkClass + SPACE_CHAR + "node-name--" + data.nodeName + SPACE_CHAR + options.extraLinkClasses); - item.appendChild(a); - return item; - } - function createList(isCollapsed) { - var listElement = options.orderedList ? "ol" : "ul"; - var list = document.createElement(listElement); - var classes = options.listClass + SPACE_CHAR + options.extraListClasses; - if (isCollapsed) { - classes = classes + SPACE_CHAR + options.collapsibleClass; - classes = classes + SPACE_CHAR + options.isCollapsedClass; - } - list.setAttribute("class", classes); - return list; - } - function updateFixedSidebarClass() { - if (options.scrollContainer && document.querySelector(options.scrollContainer)) { - var top; - top = document.querySelector(options.scrollContainer).scrollTop; - } else { - top = document.documentElement.scrollTop || body.scrollTop; - } - var posFixedEl = document.querySelector(options.positionFixedSelector); - if (options.fixedSidebarOffset === "auto") { - options.fixedSidebarOffset = tocElement.offsetTop; - } - if (top > options.fixedSidebarOffset) { - if (posFixedEl.className.indexOf(options.positionFixedClass) === -1) { - posFixedEl.className += SPACE_CHAR + options.positionFixedClass; - } - } else { - posFixedEl.className = posFixedEl.className.split(SPACE_CHAR + options.positionFixedClass).join(""); - } - } - function getHeadingTopPos(obj) { - var position = 0; - if (obj !== null) { - position = obj.offsetTop; - if (options.hasInnerContainers) { - position += getHeadingTopPos(obj.offsetParent); - } - } - return position; - } - function updateToc(headingsArray) { - if (options.scrollContainer && document.querySelector(options.scrollContainer)) { - var top; - top = document.querySelector(options.scrollContainer).scrollTop; - } else { - top = document.documentElement.scrollTop || body.scrollTop; - } - if (options.positionFixedSelector) { - updateFixedSidebarClass(); - } - var headings = headingsArray; - var topHeader; - if (currentlyHighlighting && tocElement !== null && headings.length > 0) { - some.call(headings, function(heading, i) { - if (getHeadingTopPos(heading) > top + options.headingsOffset + 10) { - var index2 = i === 0 ? i : i - 1; - topHeader = headings[index2]; - return true; - } else if (i === headings.length - 1) { - topHeader = headings[headings.length - 1]; - return true; - } - }); - var oldActiveTocLink = tocElement.querySelector("." + options.activeLinkClass); - var activeTocLink = tocElement.querySelector("." + options.linkClass + ".node-name--" + topHeader.nodeName + '[href="' + options.basePath + "#" + topHeader.id.replace(/([ #;&,.+*~':"!^$[\]()=>|/\\@])/g, "\\$1") + '"]'); - if (oldActiveTocLink === activeTocLink) { - return; - } - var tocLinks = tocElement.querySelectorAll("." + options.linkClass); - forEach.call(tocLinks, function(tocLink) { - tocLink.className = tocLink.className.split(SPACE_CHAR + options.activeLinkClass).join(""); - }); - var tocLis = tocElement.querySelectorAll("." + options.listItemClass); - forEach.call(tocLis, function(tocLi) { - tocLi.className = tocLi.className.split(SPACE_CHAR + options.activeListItemClass).join(""); - }); - if (activeTocLink && activeTocLink.className.indexOf(options.activeLinkClass) === -1) { - activeTocLink.className += SPACE_CHAR + options.activeLinkClass; - } - var li = activeTocLink && activeTocLink.parentNode; - if (li && li.className.indexOf(options.activeListItemClass) === -1) { - li.className += SPACE_CHAR + options.activeListItemClass; - } - var tocLists = tocElement.querySelectorAll("." + options.listClass + "." + options.collapsibleClass); - forEach.call(tocLists, function(list) { - if (list.className.indexOf(options.isCollapsedClass) === -1) { - list.className += SPACE_CHAR + options.isCollapsedClass; - } - }); - if (activeTocLink && activeTocLink.nextSibling && activeTocLink.nextSibling.className.indexOf(options.isCollapsedClass) !== -1) { - activeTocLink.nextSibling.className = activeTocLink.nextSibling.className.split(SPACE_CHAR + options.isCollapsedClass).join(""); - } - removeCollapsedFromParents(activeTocLink && activeTocLink.parentNode.parentNode); - } - } - function removeCollapsedFromParents(element) { - if (element && element.className.indexOf(options.collapsibleClass) !== -1 && element.className.indexOf(options.isCollapsedClass) !== -1) { - element.className = element.className.split(SPACE_CHAR + options.isCollapsedClass).join(""); - return removeCollapsedFromParents(element.parentNode.parentNode); - } - return element; - } - function disableTocAnimation(event) { - var target = event.target || event.srcElement; - if (typeof target.className !== "string" || target.className.indexOf(options.linkClass) === -1) { - return; - } - currentlyHighlighting = false; - } - function enableTocAnimation() { - currentlyHighlighting = true; - } - return { - enableTocAnimation, - disableTocAnimation, - render, - updateToc - }; - }; - return buildHtml; -} -var parseContent; -var hasRequiredParseContent; -function requireParseContent() { - if (hasRequiredParseContent) - return parseContent; - hasRequiredParseContent = 1; - parseContent = function parseContent2(options) { - var reduce = [].reduce; - function getLastItem(array) { - return array[array.length - 1]; - } - function getHeadingLevel(heading) { - return +heading.nodeName.toUpperCase().replace("H", ""); - } - function getHeadingObject(heading) { - if (!(heading instanceof window.HTMLElement)) - return heading; - if (options.ignoreHiddenElements && (!heading.offsetHeight || !heading.offsetParent)) { - return null; - } - const headingLabel = heading.getAttribute("data-heading-label") || (options.headingLabelCallback ? String(options.headingLabelCallback(heading.textContent)) : heading.textContent.trim()); - var obj = { - id: heading.id, - children: [], - nodeName: heading.nodeName, - headingLevel: getHeadingLevel(heading), - textContent: headingLabel - }; - if (options.includeHtml) { - obj.childNodes = heading.childNodes; - } - if (options.headingObjectCallback) { - return options.headingObjectCallback(obj, heading); - } - return obj; - } - function addNode(node, nest) { - var obj = getHeadingObject(node); - var level = obj.headingLevel; - var array = nest; - var lastItem = getLastItem(array); - var lastItemLevel = lastItem ? lastItem.headingLevel : 0; - var counter = level - lastItemLevel; - while (counter > 0) { - lastItem = getLastItem(array); - if (lastItem && level === lastItem.headingLevel) { - break; - } else if (lastItem && lastItem.children !== void 0) { - array = lastItem.children; - } - counter--; - } - if (level >= options.collapseDepth) { - obj.isCollapsed = true; - } - array.push(obj); - return array; - } - function selectHeadings(contentElement, headingSelector) { - var selectors = headingSelector; - if (options.ignoreSelector) { - selectors = headingSelector.split(",").map(function mapSelectors(selector) { - return selector.trim() + ":not(" + options.ignoreSelector + ")"; - }); - } - try { - return contentElement.querySelectorAll(selectors); - } catch (e) { - console.warn("Headers not found with selector: " + selectors); - return null; - } - } - function nestHeadingsArray(headingsArray) { - return reduce.call(headingsArray, function reducer(prev, curr) { - var currentHeading = getHeadingObject(curr); - if (currentHeading) { - addNode(currentHeading, prev.nest); - } - return prev; - }, { - nest: [] - }); - } - return { - nestHeadingsArray, - selectHeadings - }; - }; - return parseContent; -} -var updateTocScroll; -var hasRequiredUpdateTocScroll; -function requireUpdateTocScroll() { - if (hasRequiredUpdateTocScroll) - return updateTocScroll; - hasRequiredUpdateTocScroll = 1; - updateTocScroll = function updateTocScroll2(options) { - var toc = options.tocElement || document.querySelector(options.tocSelector); - if (toc && toc.scrollHeight > toc.clientHeight) { - var activeItem = toc.querySelector("." + options.activeListItemClass); - if (activeItem) { - toc.scrollTop = activeItem.offsetTop - options.tocScrollOffset; - } - } - }; - return updateTocScroll; -} -var scrollSmooth = {}; -var hasRequiredScrollSmooth; -function requireScrollSmooth() { - if (hasRequiredScrollSmooth) - return scrollSmooth; - hasRequiredScrollSmooth = 1; - scrollSmooth.initSmoothScrolling = initSmoothScrolling; - function initSmoothScrolling(options) { - var duration = options.duration; - var offset = options.offset; - var pageUrl = location.hash ? stripHash(location.href) : location.href; - delegatedLinkHijacking(); - function delegatedLinkHijacking() { - document.body.addEventListener("click", onClick, false); - function onClick(e) { - if (!isInPageLink(e.target) || e.target.className.indexOf("no-smooth-scroll") > -1 || e.target.href.charAt(e.target.href.length - 2) === "#" && e.target.href.charAt(e.target.href.length - 1) === "!" || e.target.className.indexOf(options.linkClass) === -1) { - return; - } - jump(e.target.hash, { - duration, - offset, - callback: function() { - setFocus(e.target.hash); - } - }); - } - } - function isInPageLink(n) { - return n.tagName.toLowerCase() === "a" && (n.hash.length > 0 || n.href.charAt(n.href.length - 1) === "#") && (stripHash(n.href) === pageUrl || stripHash(n.href) + "#" === pageUrl); - } - function stripHash(url) { - return url.slice(0, url.lastIndexOf("#")); - } - function setFocus(hash) { - var element = document.getElementById(hash.substring(1)); - if (element) { - if (!/^(?:a|select|input|button|textarea)$/i.test(element.tagName)) { - element.tabIndex = -1; - } - element.focus(); - } - } - } - function jump(target, options) { - var start = window.pageYOffset; - var opt = { - duration: options.duration, - offset: options.offset || 0, - callback: options.callback, - easing: options.easing || easeInOutQuad - }; - var tgt = document.querySelector('[id="' + decodeURI(target).split("#").join("") + '"]') || document.querySelector('[id="' + target.split("#").join("") + '"]'); - var distance = typeof target === "string" ? opt.offset + (target ? tgt && tgt.getBoundingClientRect().top || 0 : -(document.documentElement.scrollTop || document.body.scrollTop)) : target; - var duration = typeof opt.duration === "function" ? opt.duration(distance) : opt.duration; - var timeStart; - var timeElapsed; - requestAnimationFrame(function(time) { - timeStart = time; - loop(time); - }); - function loop(time) { - timeElapsed = time - timeStart; - window.scrollTo(0, opt.easing(timeElapsed, start, distance, duration)); - if (timeElapsed < duration) { - requestAnimationFrame(loop); - } else { - end(); - } - } - function end() { - window.scrollTo(0, start + distance); - if (typeof opt.callback === "function") { - opt.callback(); - } - } - function easeInOutQuad(t, b, c, d) { - t /= d / 2; - if (t < 1) - return c / 2 * t * t + b; - t--; - return -c / 2 * (t * (t - 2) - 1) + b; - } - } - return scrollSmooth; -} -(function(module, exports) { - (function(root, factory) { - { - module.exports = factory(root); - } - })(typeof commonjsGlobal !== "undefined" ? commonjsGlobal : window || commonjsGlobal, function(root) { - var defaultOptions2 = requireDefaultOptions(); - var options = {}; - var tocbot = {}; - var BuildHtml = requireBuildHtml(); - var ParseContent = requireParseContent(); - var updateTocScroll2 = requireUpdateTocScroll(); - var buildHtml2; - var parseContent2; - var supports = !!root && !!root.document && !!root.document.querySelector && !!root.addEventListener; - if (typeof window === "undefined" && !supports) { - return; - } - var headingsArray; - var hasOwnProperty = Object.prototype.hasOwnProperty; - function extend() { - var target = {}; - for (var i = 0; i < arguments.length; i++) { - var source = arguments[i]; - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - return target; - } - function throttle(fn, threshold, scope) { - threshold || (threshold = 250); - var last; - var deferTimer; - return function() { - var context = scope || this; - var now = +/* @__PURE__ */ new Date(); - var args = arguments; - if (last && now < last + threshold) { - clearTimeout(deferTimer); - deferTimer = setTimeout(function() { - last = now; - fn.apply(context, args); - }, threshold); - } else { - last = now; - fn.apply(context, args); - } - }; - } - function getContentElement(options2) { - try { - return options2.contentElement || document.querySelector(options2.contentSelector); - } catch (e) { - console.warn("Contents element not found: " + options2.contentSelector); - return null; - } - } - function getTocElement(options2) { - try { - return options2.tocElement || document.querySelector(options2.tocSelector); - } catch (e) { - console.warn("TOC element not found: " + options2.tocSelector); - return null; - } - } - tocbot.destroy = function() { - var tocElement = getTocElement(options); - if (tocElement === null) { - return; - } - if (!options.skipRendering) { - if (tocElement) { - tocElement.innerHTML = ""; - } - } - if (options.scrollContainer && document.querySelector(options.scrollContainer)) { - document.querySelector(options.scrollContainer).removeEventListener("scroll", this._scrollListener, false); - document.querySelector(options.scrollContainer).removeEventListener("resize", this._scrollListener, false); - if (buildHtml2) { - document.querySelector(options.scrollContainer).removeEventListener("click", this._clickListener, false); - } - } else { - document.removeEventListener("scroll", this._scrollListener, false); - document.removeEventListener("resize", this._scrollListener, false); - if (buildHtml2) { - document.removeEventListener("click", this._clickListener, false); - } - } - }; - tocbot.init = function(customOptions) { - if (!supports) { - return; - } - options = extend(defaultOptions2, customOptions || {}); - this.options = options; - this.state = {}; - if (options.scrollSmooth) { - options.duration = options.scrollSmoothDuration; - options.offset = options.scrollSmoothOffset; - tocbot.scrollSmooth = requireScrollSmooth().initSmoothScrolling(options); - } - buildHtml2 = BuildHtml(options); - parseContent2 = ParseContent(options); - this._buildHtml = buildHtml2; - this._parseContent = parseContent2; - this._headingsArray = headingsArray; - tocbot.destroy(); - var contentElement = getContentElement(options); - if (contentElement === null) { - return; - } - var tocElement = getTocElement(options); - if (tocElement === null) { - return; - } - headingsArray = parseContent2.selectHeadings(contentElement, options.headingSelector); - if (headingsArray === null) { - return; - } - var nestedHeadingsObj = parseContent2.nestHeadingsArray(headingsArray); - var nestedHeadings = nestedHeadingsObj.nest; - if (!options.skipRendering) { - buildHtml2.render(tocElement, nestedHeadings); - } - this._scrollListener = throttle(function(e) { - buildHtml2.updateToc(headingsArray); - !options.disableTocScrollSync && updateTocScroll2(options); - var isTop = e && e.target && e.target.scrollingElement && e.target.scrollingElement.scrollTop === 0; - if (e && (e.eventPhase === 0 || e.currentTarget === null) || isTop) { - buildHtml2.updateToc(headingsArray); - if (options.scrollEndCallback) { - options.scrollEndCallback(e); - } - } - }, options.throttleTimeout); - this._scrollListener(); - if (options.scrollContainer && document.querySelector(options.scrollContainer)) { - document.querySelector(options.scrollContainer).addEventListener("scroll", this._scrollListener, false); - document.querySelector(options.scrollContainer).addEventListener("resize", this._scrollListener, false); - } else { - document.addEventListener("scroll", this._scrollListener, false); - document.addEventListener("resize", this._scrollListener, false); - } - var timeout = null; - this._clickListener = throttle(function(event) { - if (options.scrollSmooth) { - buildHtml2.disableTocAnimation(event); - } - buildHtml2.updateToc(headingsArray); - timeout && clearTimeout(timeout); - timeout = setTimeout(function() { - buildHtml2.enableTocAnimation(); - }, options.scrollSmoothDuration); - }, options.throttleTimeout); - if (options.scrollContainer && document.querySelector(options.scrollContainer)) { - document.querySelector(options.scrollContainer).addEventListener("click", this._clickListener, false); - } else { - document.addEventListener("click", this._clickListener, false); - } - return this; - }; - tocbot.refresh = function(customOptions) { - tocbot.destroy(); - tocbot.init(customOptions || this.options); - }; - root.tocbot = tocbot; - return tocbot; - }); -})(js); -var jsExports = js.exports; -const index = /* @__PURE__ */ getDefaultExportFromCjs(jsExports); -const index$1 = /* @__PURE__ */ _mergeNamespaces({ - __proto__: null, - default: index -}, [jsExports]); -export { - index$1 as i -}; diff --git a/templates/assets/dist/assets/index-599c05fe.js b/templates/assets/dist/assets/index-599c05fe.js deleted file mode 100644 index 21e59f64..00000000 --- a/templates/assets/dist/assets/index-599c05fe.js +++ /dev/null @@ -1,50193 +0,0 @@ -import { g as getDefaultExportFromCjs } from "./_commonjsHelpers-7a7fcd32.js"; -function deepFreeze(obj) { - if (obj instanceof Map) { - obj.clear = obj.delete = obj.set = function() { - throw new Error("map is read-only"); - }; - } else if (obj instanceof Set) { - obj.add = obj.clear = obj.delete = function() { - throw new Error("set is read-only"); - }; - } - Object.freeze(obj); - Object.getOwnPropertyNames(obj).forEach((name) => { - const prop = obj[name]; - const type = typeof prop; - if ((type === "object" || type === "function") && !Object.isFrozen(prop)) { - deepFreeze(prop); - } - }); - return obj; -} -class Response { - /** - * @param {CompiledMode} mode - */ - constructor(mode) { - if (mode.data === void 0) - mode.data = {}; - this.data = mode.data; - this.isMatchIgnored = false; - } - ignoreMatch() { - this.isMatchIgnored = true; - } -} -function escapeHTML(value) { - return value.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); -} -function inherit$1(original, ...objects) { - const result = /* @__PURE__ */ Object.create(null); - for (const key in original) { - result[key] = original[key]; - } - objects.forEach(function(obj) { - for (const key in obj) { - result[key] = obj[key]; - } - }); - return ( - /** @type {T} */ - result - ); -} -const SPAN_CLOSE = ""; -const emitsWrappingTags = (node) => { - return !!node.scope; -}; -const scopeToCSSClass = (name, { prefix }) => { - if (name.startsWith("language:")) { - return name.replace("language:", "language-"); - } - if (name.includes(".")) { - const pieces = name.split("."); - return [ - `${prefix}${pieces.shift()}`, - ...pieces.map((x, i) => `${x}${"_".repeat(i + 1)}`) - ].join(" "); - } - return `${prefix}${name}`; -}; -class HTMLRenderer { - /** - * Creates a new HTMLRenderer - * - * @param {Tree} parseTree - the parse tree (must support `walk` API) - * @param {{classPrefix: string}} options - */ - constructor(parseTree, options) { - this.buffer = ""; - this.classPrefix = options.classPrefix; - parseTree.walk(this); - } - /** - * Adds texts to the output stream - * - * @param {string} text */ - addText(text) { - this.buffer += escapeHTML(text); - } - /** - * Adds a node open to the output stream (if needed) - * - * @param {Node} node */ - openNode(node) { - if (!emitsWrappingTags(node)) - return; - const className = scopeToCSSClass( - node.scope, - { prefix: this.classPrefix } - ); - this.span(className); - } - /** - * Adds a node close to the output stream (if needed) - * - * @param {Node} node */ - closeNode(node) { - if (!emitsWrappingTags(node)) - return; - this.buffer += SPAN_CLOSE; - } - /** - * returns the accumulated buffer - */ - value() { - return this.buffer; - } - // helpers - /** - * Builds a span element - * - * @param {string} className */ - span(className) { - this.buffer += ``; - } -} -const newNode = (opts = {}) => { - const result = { children: [] }; - Object.assign(result, opts); - return result; -}; -class TokenTree { - constructor() { - this.rootNode = newNode(); - this.stack = [this.rootNode]; - } - get top() { - return this.stack[this.stack.length - 1]; - } - get root() { - return this.rootNode; - } - /** @param {Node} node */ - add(node) { - this.top.children.push(node); - } - /** @param {string} scope */ - openNode(scope) { - const node = newNode({ scope }); - this.add(node); - this.stack.push(node); - } - closeNode() { - if (this.stack.length > 1) { - return this.stack.pop(); - } - return void 0; - } - closeAllNodes() { - while (this.closeNode()) - ; - } - toJSON() { - return JSON.stringify(this.rootNode, null, 4); - } - /** - * @typedef { import("./html_renderer").Renderer } Renderer - * @param {Renderer} builder - */ - walk(builder) { - return this.constructor._walk(builder, this.rootNode); - } - /** - * @param {Renderer} builder - * @param {Node} node - */ - static _walk(builder, node) { - if (typeof node === "string") { - builder.addText(node); - } else if (node.children) { - builder.openNode(node); - node.children.forEach((child) => this._walk(builder, child)); - builder.closeNode(node); - } - return builder; - } - /** - * @param {Node} node - */ - static _collapse(node) { - if (typeof node === "string") - return; - if (!node.children) - return; - if (node.children.every((el) => typeof el === "string")) { - node.children = [node.children.join("")]; - } else { - node.children.forEach((child) => { - TokenTree._collapse(child); - }); - } - } -} -class TokenTreeEmitter extends TokenTree { - /** - * @param {*} options - */ - constructor(options) { - super(); - this.options = options; - } - /** - * @param {string} text - */ - addText(text) { - if (text === "") { - return; - } - this.add(text); - } - /** @param {string} scope */ - startScope(scope) { - this.openNode(scope); - } - endScope() { - this.closeNode(); - } - /** - * @param {Emitter & {root: DataNode}} emitter - * @param {string} name - */ - __addSublanguage(emitter, name) { - const node = emitter.root; - if (name) - node.scope = `language:${name}`; - this.add(node); - } - toHTML() { - const renderer = new HTMLRenderer(this, this.options); - return renderer.value(); - } - finalize() { - this.closeAllNodes(); - return true; - } -} -function source(re) { - if (!re) - return null; - if (typeof re === "string") - return re; - return re.source; -} -function lookahead(re) { - return concat("(?=", re, ")"); -} -function anyNumberOfTimes(re) { - return concat("(?:", re, ")*"); -} -function optional(re) { - return concat("(?:", re, ")?"); -} -function concat(...args) { - const joined = args.map((x) => source(x)).join(""); - return joined; -} -function stripOptionsFromArgs(args) { - const opts = args[args.length - 1]; - if (typeof opts === "object" && opts.constructor === Object) { - args.splice(args.length - 1, 1); - return opts; - } else { - return {}; - } -} -function either(...args) { - const opts = stripOptionsFromArgs(args); - const joined = "(" + (opts.capture ? "" : "?:") + args.map((x) => source(x)).join("|") + ")"; - return joined; -} -function countMatchGroups(re) { - return new RegExp(re.toString() + "|").exec("").length - 1; -} -function startsWith(re, lexeme) { - const match = re && re.exec(lexeme); - return match && match.index === 0; -} -const BACKREF_RE = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; -function _rewriteBackreferences(regexps, { joinWith }) { - let numCaptures = 0; - return regexps.map((regex) => { - numCaptures += 1; - const offset = numCaptures; - let re = source(regex); - let out = ""; - while (re.length > 0) { - const match = BACKREF_RE.exec(re); - if (!match) { - out += re; - break; - } - out += re.substring(0, match.index); - re = re.substring(match.index + match[0].length); - if (match[0][0] === "\\" && match[1]) { - out += "\\" + String(Number(match[1]) + offset); - } else { - out += match[0]; - if (match[0] === "(") { - numCaptures++; - } - } - } - return out; - }).map((re) => `(${re})`).join(joinWith); -} -const MATCH_NOTHING_RE = /\b\B/; -const IDENT_RE = "[a-zA-Z]\\w*"; -const UNDERSCORE_IDENT_RE = "[a-zA-Z_]\\w*"; -const NUMBER_RE = "\\b\\d+(\\.\\d+)?"; -const C_NUMBER_RE = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)"; -const BINARY_NUMBER_RE = "\\b(0b[01]+)"; -const RE_STARTERS_RE = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~"; -const SHEBANG = (opts = {}) => { - const beginShebang = /^#![ ]*\//; - if (opts.binary) { - opts.begin = concat( - beginShebang, - /.*\b/, - opts.binary, - /\b.*/ - ); - } - return inherit$1({ - scope: "meta", - begin: beginShebang, - end: /$/, - relevance: 0, - /** @type {ModeCallback} */ - "on:begin": (m, resp) => { - if (m.index !== 0) - resp.ignoreMatch(); - } - }, opts); -}; -const BACKSLASH_ESCAPE = { - begin: "\\\\[\\s\\S]", - relevance: 0 -}; -const APOS_STRING_MODE = { - scope: "string", - begin: "'", - end: "'", - illegal: "\\n", - contains: [BACKSLASH_ESCAPE] -}; -const QUOTE_STRING_MODE = { - scope: "string", - begin: '"', - end: '"', - illegal: "\\n", - contains: [BACKSLASH_ESCAPE] -}; -const PHRASAL_WORDS_MODE = { - begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ -}; -const COMMENT = function(begin, end, modeOptions = {}) { - const mode = inherit$1( - { - scope: "comment", - begin, - end, - contains: [] - }, - modeOptions - ); - mode.contains.push({ - scope: "doctag", - // hack to avoid the space from being included. the space is necessary to - // match here to prevent the plain text rule below from gobbling up doctags - begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", - end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, - excludeBegin: true, - relevance: 0 - }); - const ENGLISH_WORD = either( - // list of common 1 and 2 letter words in English - "I", - "a", - "is", - "so", - "us", - "to", - "at", - "if", - "in", - "it", - "on", - // note: this is not an exhaustive list of contractions, just popular ones - /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, - // contractions - can't we'd they're let's, etc - /[A-Za-z]+[-][a-z]+/, - // `no-way`, etc. - /[A-Za-z][a-z]{2,}/ - // allow capitalized words at beginning of sentences - ); - mode.contains.push( - { - // TODO: how to include ", (, ) without breaking grammars that use these for - // comment delimiters? - // begin: /[ ]+([()"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()":]?([.][ ]|[ ]|\))){3}/ - // --- - // this tries to find sequences of 3 english words in a row (without any - // "programming" type syntax) this gives us a strong signal that we've - // TRULY found a comment - vs perhaps scanning with the wrong language. - // It's possible to find something that LOOKS like the start of the - // comment - but then if there is no readable text - good chance it is a - // false match and not a comment. - // - // for a visual example please see: - // https://github.com/highlightjs/highlight.js/issues/2827 - begin: concat( - /[ ]+/, - // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */ - "(", - ENGLISH_WORD, - /[.]?[:]?([.][ ]|[ ])/, - "){3}" - ) - // look for 3 words in a row - } - ); - return mode; -}; -const C_LINE_COMMENT_MODE = COMMENT("//", "$"); -const C_BLOCK_COMMENT_MODE = COMMENT("/\\*", "\\*/"); -const HASH_COMMENT_MODE = COMMENT("#", "$"); -const NUMBER_MODE = { - scope: "number", - begin: NUMBER_RE, - relevance: 0 -}; -const C_NUMBER_MODE = { - scope: "number", - begin: C_NUMBER_RE, - relevance: 0 -}; -const BINARY_NUMBER_MODE = { - scope: "number", - begin: BINARY_NUMBER_RE, - relevance: 0 -}; -const REGEXP_MODE = { - // this outer rule makes sure we actually have a WHOLE regex and not simply - // an expression such as: - // - // 3 / something - // - // (which will then blow up when regex's `illegal` sees the newline) - begin: /(?=\/[^/\n]*\/)/, - contains: [{ - scope: "regexp", - begin: /\//, - end: /\/[gimuy]*/, - illegal: /\n/, - contains: [ - BACKSLASH_ESCAPE, - { - begin: /\[/, - end: /\]/, - relevance: 0, - contains: [BACKSLASH_ESCAPE] - } - ] - }] -}; -const TITLE_MODE = { - scope: "title", - begin: IDENT_RE, - relevance: 0 -}; -const UNDERSCORE_TITLE_MODE = { - scope: "title", - begin: UNDERSCORE_IDENT_RE, - relevance: 0 -}; -const METHOD_GUARD = { - // excludes method names from keyword processing - begin: "\\.\\s*" + UNDERSCORE_IDENT_RE, - relevance: 0 -}; -const END_SAME_AS_BEGIN = function(mode) { - return Object.assign( - mode, - { - /** @type {ModeCallback} */ - "on:begin": (m, resp) => { - resp.data._beginMatch = m[1]; - }, - /** @type {ModeCallback} */ - "on:end": (m, resp) => { - if (resp.data._beginMatch !== m[1]) - resp.ignoreMatch(); - } - } - ); -}; -var MODES = /* @__PURE__ */ Object.freeze({ - __proto__: null, - MATCH_NOTHING_RE, - IDENT_RE, - UNDERSCORE_IDENT_RE, - NUMBER_RE, - C_NUMBER_RE, - BINARY_NUMBER_RE, - RE_STARTERS_RE, - SHEBANG, - BACKSLASH_ESCAPE, - APOS_STRING_MODE, - QUOTE_STRING_MODE, - PHRASAL_WORDS_MODE, - COMMENT, - C_LINE_COMMENT_MODE, - C_BLOCK_COMMENT_MODE, - HASH_COMMENT_MODE, - NUMBER_MODE, - C_NUMBER_MODE, - BINARY_NUMBER_MODE, - REGEXP_MODE, - TITLE_MODE, - UNDERSCORE_TITLE_MODE, - METHOD_GUARD, - END_SAME_AS_BEGIN -}); -function skipIfHasPrecedingDot(match, response) { - const before = match.input[match.index - 1]; - if (before === ".") { - response.ignoreMatch(); - } -} -function scopeClassName(mode, _parent) { - if (mode.className !== void 0) { - mode.scope = mode.className; - delete mode.className; - } -} -function beginKeywords(mode, parent) { - if (!parent) - return; - if (!mode.beginKeywords) - return; - mode.begin = "\\b(" + mode.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)"; - mode.__beforeBegin = skipIfHasPrecedingDot; - mode.keywords = mode.keywords || mode.beginKeywords; - delete mode.beginKeywords; - if (mode.relevance === void 0) - mode.relevance = 0; -} -function compileIllegal(mode, _parent) { - if (!Array.isArray(mode.illegal)) - return; - mode.illegal = either(...mode.illegal); -} -function compileMatch(mode, _parent) { - if (!mode.match) - return; - if (mode.begin || mode.end) - throw new Error("begin & end are not supported with match"); - mode.begin = mode.match; - delete mode.match; -} -function compileRelevance(mode, _parent) { - if (mode.relevance === void 0) - mode.relevance = 1; -} -const beforeMatchExt = (mode, parent) => { - if (!mode.beforeMatch) - return; - if (mode.starts) - throw new Error("beforeMatch cannot be used with starts"); - const originalMode = Object.assign({}, mode); - Object.keys(mode).forEach((key) => { - delete mode[key]; - }); - mode.keywords = originalMode.keywords; - mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin)); - mode.starts = { - relevance: 0, - contains: [ - Object.assign(originalMode, { endsParent: true }) - ] - }; - mode.relevance = 0; - delete originalMode.beforeMatch; -}; -const COMMON_KEYWORDS = [ - "of", - "and", - "for", - "in", - "not", - "or", - "if", - "then", - "parent", - // common variable name - "list", - // common variable name - "value" - // common variable name -]; -const DEFAULT_KEYWORD_SCOPE = "keyword"; -function compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) { - const compiledKeywords = /* @__PURE__ */ Object.create(null); - if (typeof rawKeywords === "string") { - compileList(scopeName, rawKeywords.split(" ")); - } else if (Array.isArray(rawKeywords)) { - compileList(scopeName, rawKeywords); - } else { - Object.keys(rawKeywords).forEach(function(scopeName2) { - Object.assign( - compiledKeywords, - compileKeywords(rawKeywords[scopeName2], caseInsensitive, scopeName2) - ); - }); - } - return compiledKeywords; - function compileList(scopeName2, keywordList) { - if (caseInsensitive) { - keywordList = keywordList.map((x) => x.toLowerCase()); - } - keywordList.forEach(function(keyword) { - const pair = keyword.split("|"); - compiledKeywords[pair[0]] = [scopeName2, scoreForKeyword(pair[0], pair[1])]; - }); - } -} -function scoreForKeyword(keyword, providedScore) { - if (providedScore) { - return Number(providedScore); - } - return commonKeyword(keyword) ? 0 : 1; -} -function commonKeyword(keyword) { - return COMMON_KEYWORDS.includes(keyword.toLowerCase()); -} -const seenDeprecations = {}; -const error = (message) => { - console.error(message); -}; -const warn = (message, ...args) => { - console.log(`WARN: ${message}`, ...args); -}; -const deprecated = (version2, message) => { - if (seenDeprecations[`${version2}/${message}`]) - return; - console.log(`Deprecated as of ${version2}. ${message}`); - seenDeprecations[`${version2}/${message}`] = true; -}; -const MultiClassError = new Error(); -function remapScopeNames(mode, regexes, { key }) { - let offset = 0; - const scopeNames = mode[key]; - const emit = {}; - const positions = {}; - for (let i = 1; i <= regexes.length; i++) { - positions[i + offset] = scopeNames[i]; - emit[i + offset] = true; - offset += countMatchGroups(regexes[i - 1]); - } - mode[key] = positions; - mode[key]._emit = emit; - mode[key]._multi = true; -} -function beginMultiClass(mode) { - if (!Array.isArray(mode.begin)) - return; - if (mode.skip || mode.excludeBegin || mode.returnBegin) { - error("skip, excludeBegin, returnBegin not compatible with beginScope: {}"); - throw MultiClassError; - } - if (typeof mode.beginScope !== "object" || mode.beginScope === null) { - error("beginScope must be object"); - throw MultiClassError; - } - remapScopeNames(mode, mode.begin, { key: "beginScope" }); - mode.begin = _rewriteBackreferences(mode.begin, { joinWith: "" }); -} -function endMultiClass(mode) { - if (!Array.isArray(mode.end)) - return; - if (mode.skip || mode.excludeEnd || mode.returnEnd) { - error("skip, excludeEnd, returnEnd not compatible with endScope: {}"); - throw MultiClassError; - } - if (typeof mode.endScope !== "object" || mode.endScope === null) { - error("endScope must be object"); - throw MultiClassError; - } - remapScopeNames(mode, mode.end, { key: "endScope" }); - mode.end = _rewriteBackreferences(mode.end, { joinWith: "" }); -} -function scopeSugar(mode) { - if (mode.scope && typeof mode.scope === "object" && mode.scope !== null) { - mode.beginScope = mode.scope; - delete mode.scope; - } -} -function MultiClass(mode) { - scopeSugar(mode); - if (typeof mode.beginScope === "string") { - mode.beginScope = { _wrap: mode.beginScope }; - } - if (typeof mode.endScope === "string") { - mode.endScope = { _wrap: mode.endScope }; - } - beginMultiClass(mode); - endMultiClass(mode); -} -function compileLanguage(language) { - function langRe(value, global) { - return new RegExp( - source(value), - "m" + (language.case_insensitive ? "i" : "") + (language.unicodeRegex ? "u" : "") + (global ? "g" : "") - ); - } - class MultiRegex { - constructor() { - this.matchIndexes = {}; - this.regexes = []; - this.matchAt = 1; - this.position = 0; - } - // @ts-ignore - addRule(re, opts) { - opts.position = this.position++; - this.matchIndexes[this.matchAt] = opts; - this.regexes.push([opts, re]); - this.matchAt += countMatchGroups(re) + 1; - } - compile() { - if (this.regexes.length === 0) { - this.exec = () => null; - } - const terminators = this.regexes.map((el) => el[1]); - this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: "|" }), true); - this.lastIndex = 0; - } - /** @param {string} s */ - exec(s) { - this.matcherRe.lastIndex = this.lastIndex; - const match = this.matcherRe.exec(s); - if (!match) { - return null; - } - const i = match.findIndex((el, i2) => i2 > 0 && el !== void 0); - const matchData = this.matchIndexes[i]; - match.splice(0, i); - return Object.assign(match, matchData); - } - } - class ResumableMultiRegex { - constructor() { - this.rules = []; - this.multiRegexes = []; - this.count = 0; - this.lastIndex = 0; - this.regexIndex = 0; - } - // @ts-ignore - getMatcher(index) { - if (this.multiRegexes[index]) - return this.multiRegexes[index]; - const matcher = new MultiRegex(); - this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts)); - matcher.compile(); - this.multiRegexes[index] = matcher; - return matcher; - } - resumingScanAtSamePosition() { - return this.regexIndex !== 0; - } - considerAll() { - this.regexIndex = 0; - } - // @ts-ignore - addRule(re, opts) { - this.rules.push([re, opts]); - if (opts.type === "begin") - this.count++; - } - /** @param {string} s */ - exec(s) { - const m = this.getMatcher(this.regexIndex); - m.lastIndex = this.lastIndex; - let result = m.exec(s); - if (this.resumingScanAtSamePosition()) { - if (result && result.index === this.lastIndex) - ; - else { - const m2 = this.getMatcher(0); - m2.lastIndex = this.lastIndex + 1; - result = m2.exec(s); - } - } - if (result) { - this.regexIndex += result.position + 1; - if (this.regexIndex === this.count) { - this.considerAll(); - } - } - return result; - } - } - function buildModeRegex(mode) { - const mm = new ResumableMultiRegex(); - mode.contains.forEach((term) => mm.addRule(term.begin, { rule: term, type: "begin" })); - if (mode.terminatorEnd) { - mm.addRule(mode.terminatorEnd, { type: "end" }); - } - if (mode.illegal) { - mm.addRule(mode.illegal, { type: "illegal" }); - } - return mm; - } - function compileMode(mode, parent) { - const cmode = ( - /** @type CompiledMode */ - mode - ); - if (mode.isCompiled) - return cmode; - [ - scopeClassName, - // do this early so compiler extensions generally don't have to worry about - // the distinction between match/begin - compileMatch, - MultiClass, - beforeMatchExt - ].forEach((ext) => ext(mode, parent)); - language.compilerExtensions.forEach((ext) => ext(mode, parent)); - mode.__beforeBegin = null; - [ - beginKeywords, - // do this later so compiler extensions that come earlier have access to the - // raw array if they wanted to perhaps manipulate it, etc. - compileIllegal, - // default to 1 relevance if not specified - compileRelevance - ].forEach((ext) => ext(mode, parent)); - mode.isCompiled = true; - let keywordPattern = null; - if (typeof mode.keywords === "object" && mode.keywords.$pattern) { - mode.keywords = Object.assign({}, mode.keywords); - keywordPattern = mode.keywords.$pattern; - delete mode.keywords.$pattern; - } - keywordPattern = keywordPattern || /\w+/; - if (mode.keywords) { - mode.keywords = compileKeywords(mode.keywords, language.case_insensitive); - } - cmode.keywordPatternRe = langRe(keywordPattern, true); - if (parent) { - if (!mode.begin) - mode.begin = /\B|\b/; - cmode.beginRe = langRe(cmode.begin); - if (!mode.end && !mode.endsWithParent) - mode.end = /\B|\b/; - if (mode.end) - cmode.endRe = langRe(cmode.end); - cmode.terminatorEnd = source(cmode.end) || ""; - if (mode.endsWithParent && parent.terminatorEnd) { - cmode.terminatorEnd += (mode.end ? "|" : "") + parent.terminatorEnd; - } - } - if (mode.illegal) - cmode.illegalRe = langRe( - /** @type {RegExp | string} */ - mode.illegal - ); - if (!mode.contains) - mode.contains = []; - mode.contains = [].concat(...mode.contains.map(function(c) { - return expandOrCloneMode(c === "self" ? mode : c); - })); - mode.contains.forEach(function(c) { - compileMode( - /** @type Mode */ - c, - cmode - ); - }); - if (mode.starts) { - compileMode(mode.starts, parent); - } - cmode.matcher = buildModeRegex(cmode); - return cmode; - } - if (!language.compilerExtensions) - language.compilerExtensions = []; - if (language.contains && language.contains.includes("self")) { - throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation."); - } - language.classNameAliases = inherit$1(language.classNameAliases || {}); - return compileMode( - /** @type Mode */ - language - ); -} -function dependencyOnParent(mode) { - if (!mode) - return false; - return mode.endsWithParent || dependencyOnParent(mode.starts); -} -function expandOrCloneMode(mode) { - if (mode.variants && !mode.cachedVariants) { - mode.cachedVariants = mode.variants.map(function(variant) { - return inherit$1(mode, { variants: null }, variant); - }); - } - if (mode.cachedVariants) { - return mode.cachedVariants; - } - if (dependencyOnParent(mode)) { - return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null }); - } - if (Object.isFrozen(mode)) { - return inherit$1(mode); - } - return mode; -} -var version = "11.8.0"; -class HTMLInjectionError extends Error { - constructor(reason, html) { - super(reason); - this.name = "HTMLInjectionError"; - this.html = html; - } -} -const escape = escapeHTML; -const inherit = inherit$1; -const NO_MATCH = Symbol("nomatch"); -const MAX_KEYWORD_HITS = 7; -const HLJS = function(hljs2) { - const languages = /* @__PURE__ */ Object.create(null); - const aliases = /* @__PURE__ */ Object.create(null); - const plugins = []; - let SAFE_MODE = true; - const LANGUAGE_NOT_FOUND = "Could not find the language '{}', did you forget to load/include a language module?"; - const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: "Plain text", contains: [] }; - let options = { - ignoreUnescapedHTML: false, - throwUnescapedHTML: false, - noHighlightRe: /^(no-?highlight)$/i, - languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, - classPrefix: "hljs-", - cssSelector: "pre code", - languages: null, - // beta configuration options, subject to change, welcome to discuss - // https://github.com/highlightjs/highlight.js/issues/1086 - __emitter: TokenTreeEmitter - }; - function shouldNotHighlight(languageName) { - return options.noHighlightRe.test(languageName); - } - function blockLanguage(block) { - let classes = block.className + " "; - classes += block.parentNode ? block.parentNode.className : ""; - const match = options.languageDetectRe.exec(classes); - if (match) { - const language = getLanguage(match[1]); - if (!language) { - warn(LANGUAGE_NOT_FOUND.replace("{}", match[1])); - warn("Falling back to no-highlight mode for this block.", block); - } - return language ? match[1] : "no-highlight"; - } - return classes.split(/\s+/).find((_class) => shouldNotHighlight(_class) || getLanguage(_class)); - } - function highlight2(codeOrLanguageName, optionsOrCode, ignoreIllegals) { - let code = ""; - let languageName = ""; - if (typeof optionsOrCode === "object") { - code = codeOrLanguageName; - ignoreIllegals = optionsOrCode.ignoreIllegals; - languageName = optionsOrCode.language; - } else { - deprecated("10.7.0", "highlight(lang, code, ...args) has been deprecated."); - deprecated("10.7.0", "Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"); - languageName = codeOrLanguageName; - code = optionsOrCode; - } - if (ignoreIllegals === void 0) { - ignoreIllegals = true; - } - const context = { - code, - language: languageName - }; - fire("before:highlight", context); - const result = context.result ? context.result : _highlight(context.language, context.code, ignoreIllegals); - result.code = context.code; - fire("after:highlight", result); - return result; - } - function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) { - const keywordHits = /* @__PURE__ */ Object.create(null); - function keywordData(mode, matchText) { - return mode.keywords[matchText]; - } - function processKeywords() { - if (!top.keywords) { - emitter.addText(modeBuffer); - return; - } - let lastIndex = 0; - top.keywordPatternRe.lastIndex = 0; - let match = top.keywordPatternRe.exec(modeBuffer); - let buf = ""; - while (match) { - buf += modeBuffer.substring(lastIndex, match.index); - const word = language.case_insensitive ? match[0].toLowerCase() : match[0]; - const data = keywordData(top, word); - if (data) { - const [kind, keywordRelevance] = data; - emitter.addText(buf); - buf = ""; - keywordHits[word] = (keywordHits[word] || 0) + 1; - if (keywordHits[word] <= MAX_KEYWORD_HITS) - relevance += keywordRelevance; - if (kind.startsWith("_")) { - buf += match[0]; - } else { - const cssClass = language.classNameAliases[kind] || kind; - emitKeyword(match[0], cssClass); - } - } else { - buf += match[0]; - } - lastIndex = top.keywordPatternRe.lastIndex; - match = top.keywordPatternRe.exec(modeBuffer); - } - buf += modeBuffer.substring(lastIndex); - emitter.addText(buf); - } - function processSubLanguage() { - if (modeBuffer === "") - return; - let result2 = null; - if (typeof top.subLanguage === "string") { - if (!languages[top.subLanguage]) { - emitter.addText(modeBuffer); - return; - } - result2 = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]); - continuations[top.subLanguage] = /** @type {CompiledMode} */ - result2._top; - } else { - result2 = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null); - } - if (top.relevance > 0) { - relevance += result2.relevance; - } - emitter.__addSublanguage(result2._emitter, result2.language); - } - function processBuffer() { - if (top.subLanguage != null) { - processSubLanguage(); - } else { - processKeywords(); - } - modeBuffer = ""; - } - function emitKeyword(keyword, scope) { - if (keyword === "") - return; - emitter.startScope(scope); - emitter.addText(keyword); - emitter.endScope(); - } - function emitMultiClass(scope, match) { - let i = 1; - const max = match.length - 1; - while (i <= max) { - if (!scope._emit[i]) { - i++; - continue; - } - const klass = language.classNameAliases[scope[i]] || scope[i]; - const text = match[i]; - if (klass) { - emitKeyword(text, klass); - } else { - modeBuffer = text; - processKeywords(); - modeBuffer = ""; - } - i++; - } - } - function startNewMode(mode, match) { - if (mode.scope && typeof mode.scope === "string") { - emitter.openNode(language.classNameAliases[mode.scope] || mode.scope); - } - if (mode.beginScope) { - if (mode.beginScope._wrap) { - emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap); - modeBuffer = ""; - } else if (mode.beginScope._multi) { - emitMultiClass(mode.beginScope, match); - modeBuffer = ""; - } - } - top = Object.create(mode, { parent: { value: top } }); - return top; - } - function endOfMode(mode, match, matchPlusRemainder) { - let matched = startsWith(mode.endRe, matchPlusRemainder); - if (matched) { - if (mode["on:end"]) { - const resp = new Response(mode); - mode["on:end"](match, resp); - if (resp.isMatchIgnored) - matched = false; - } - if (matched) { - while (mode.endsParent && mode.parent) { - mode = mode.parent; - } - return mode; - } - } - if (mode.endsWithParent) { - return endOfMode(mode.parent, match, matchPlusRemainder); - } - } - function doIgnore(lexeme) { - if (top.matcher.regexIndex === 0) { - modeBuffer += lexeme[0]; - return 1; - } else { - resumeScanAtSamePosition = true; - return 0; - } - } - function doBeginMatch(match) { - const lexeme = match[0]; - const newMode = match.rule; - const resp = new Response(newMode); - const beforeCallbacks = [newMode.__beforeBegin, newMode["on:begin"]]; - for (const cb of beforeCallbacks) { - if (!cb) - continue; - cb(match, resp); - if (resp.isMatchIgnored) - return doIgnore(lexeme); - } - if (newMode.skip) { - modeBuffer += lexeme; - } else { - if (newMode.excludeBegin) { - modeBuffer += lexeme; - } - processBuffer(); - if (!newMode.returnBegin && !newMode.excludeBegin) { - modeBuffer = lexeme; - } - } - startNewMode(newMode, match); - return newMode.returnBegin ? 0 : lexeme.length; - } - function doEndMatch(match) { - const lexeme = match[0]; - const matchPlusRemainder = codeToHighlight.substring(match.index); - const endMode = endOfMode(top, match, matchPlusRemainder); - if (!endMode) { - return NO_MATCH; - } - const origin = top; - if (top.endScope && top.endScope._wrap) { - processBuffer(); - emitKeyword(lexeme, top.endScope._wrap); - } else if (top.endScope && top.endScope._multi) { - processBuffer(); - emitMultiClass(top.endScope, match); - } else if (origin.skip) { - modeBuffer += lexeme; - } else { - if (!(origin.returnEnd || origin.excludeEnd)) { - modeBuffer += lexeme; - } - processBuffer(); - if (origin.excludeEnd) { - modeBuffer = lexeme; - } - } - do { - if (top.scope) { - emitter.closeNode(); - } - if (!top.skip && !top.subLanguage) { - relevance += top.relevance; - } - top = top.parent; - } while (top !== endMode.parent); - if (endMode.starts) { - startNewMode(endMode.starts, match); - } - return origin.returnEnd ? 0 : lexeme.length; - } - function processContinuations() { - const list = []; - for (let current = top; current !== language; current = current.parent) { - if (current.scope) { - list.unshift(current.scope); - } - } - list.forEach((item) => emitter.openNode(item)); - } - let lastMatch = {}; - function processLexeme(textBeforeMatch, match) { - const lexeme = match && match[0]; - modeBuffer += textBeforeMatch; - if (lexeme == null) { - processBuffer(); - return 0; - } - if (lastMatch.type === "begin" && match.type === "end" && lastMatch.index === match.index && lexeme === "") { - modeBuffer += codeToHighlight.slice(match.index, match.index + 1); - if (!SAFE_MODE) { - const err = new Error(`0 width match regex (${languageName})`); - err.languageName = languageName; - err.badRule = lastMatch.rule; - throw err; - } - return 1; - } - lastMatch = match; - if (match.type === "begin") { - return doBeginMatch(match); - } else if (match.type === "illegal" && !ignoreIllegals) { - const err = new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.scope || "") + '"'); - err.mode = top; - throw err; - } else if (match.type === "end") { - const processed = doEndMatch(match); - if (processed !== NO_MATCH) { - return processed; - } - } - if (match.type === "illegal" && lexeme === "") { - return 1; - } - if (iterations > 1e5 && iterations > match.index * 3) { - const err = new Error("potential infinite loop, way more iterations than matches"); - throw err; - } - modeBuffer += lexeme; - return lexeme.length; - } - const language = getLanguage(languageName); - if (!language) { - error(LANGUAGE_NOT_FOUND.replace("{}", languageName)); - throw new Error('Unknown language: "' + languageName + '"'); - } - const md = compileLanguage(language); - let result = ""; - let top = continuation || md; - const continuations = {}; - const emitter = new options.__emitter(options); - processContinuations(); - let modeBuffer = ""; - let relevance = 0; - let index = 0; - let iterations = 0; - let resumeScanAtSamePosition = false; - try { - if (!language.__emitTokens) { - top.matcher.considerAll(); - for (; ; ) { - iterations++; - if (resumeScanAtSamePosition) { - resumeScanAtSamePosition = false; - } else { - top.matcher.considerAll(); - } - top.matcher.lastIndex = index; - const match = top.matcher.exec(codeToHighlight); - if (!match) - break; - const beforeMatch = codeToHighlight.substring(index, match.index); - const processedCount = processLexeme(beforeMatch, match); - index = match.index + processedCount; - } - processLexeme(codeToHighlight.substring(index)); - } else { - language.__emitTokens(codeToHighlight, emitter); - } - emitter.finalize(); - result = emitter.toHTML(); - return { - language: languageName, - value: result, - relevance, - illegal: false, - _emitter: emitter, - _top: top - }; - } catch (err) { - if (err.message && err.message.includes("Illegal")) { - return { - language: languageName, - value: escape(codeToHighlight), - illegal: true, - relevance: 0, - _illegalBy: { - message: err.message, - index, - context: codeToHighlight.slice(index - 100, index + 100), - mode: err.mode, - resultSoFar: result - }, - _emitter: emitter - }; - } else if (SAFE_MODE) { - return { - language: languageName, - value: escape(codeToHighlight), - illegal: false, - relevance: 0, - errorRaised: err, - _emitter: emitter, - _top: top - }; - } else { - throw err; - } - } - } - function justTextHighlightResult(code) { - const result = { - value: escape(code), - illegal: false, - relevance: 0, - _top: PLAINTEXT_LANGUAGE, - _emitter: new options.__emitter(options) - }; - result._emitter.addText(code); - return result; - } - function highlightAuto(code, languageSubset) { - languageSubset = languageSubset || options.languages || Object.keys(languages); - const plaintext = justTextHighlightResult(code); - const results = languageSubset.filter(getLanguage).filter(autoDetection).map( - (name) => _highlight(name, code, false) - ); - results.unshift(plaintext); - const sorted = results.sort((a, b) => { - if (a.relevance !== b.relevance) - return b.relevance - a.relevance; - if (a.language && b.language) { - if (getLanguage(a.language).supersetOf === b.language) { - return 1; - } else if (getLanguage(b.language).supersetOf === a.language) { - return -1; - } - } - return 0; - }); - const [best, secondBest] = sorted; - const result = best; - result.secondBest = secondBest; - return result; - } - function updateClassName(element, currentLang, resultLang) { - const language = currentLang && aliases[currentLang] || resultLang; - element.classList.add("hljs"); - element.classList.add(`language-${language}`); - } - function highlightElement(element) { - let node = null; - const language = blockLanguage(element); - if (shouldNotHighlight(language)) - return; - fire( - "before:highlightElement", - { el: element, language } - ); - if (element.children.length > 0) { - if (!options.ignoreUnescapedHTML) { - console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."); - console.warn("https://github.com/highlightjs/highlight.js/wiki/security"); - console.warn("The element with unescaped HTML:"); - console.warn(element); - } - if (options.throwUnescapedHTML) { - const err = new HTMLInjectionError( - "One of your code blocks includes unescaped HTML.", - element.innerHTML - ); - throw err; - } - } - node = element; - const text = node.textContent; - const result = language ? highlight2(text, { language, ignoreIllegals: true }) : highlightAuto(text); - element.innerHTML = result.value; - updateClassName(element, language, result.language); - element.result = { - language: result.language, - // TODO: remove with version 11.0 - re: result.relevance, - relevance: result.relevance - }; - if (result.secondBest) { - element.secondBest = { - language: result.secondBest.language, - relevance: result.secondBest.relevance - }; - } - fire("after:highlightElement", { el: element, result, text }); - } - function configure(userOptions) { - options = inherit(options, userOptions); - } - const initHighlighting = () => { - highlightAll(); - deprecated("10.6.0", "initHighlighting() deprecated. Use highlightAll() now."); - }; - function initHighlightingOnLoad() { - highlightAll(); - deprecated("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now."); - } - let wantsHighlight = false; - function highlightAll() { - if (document.readyState === "loading") { - wantsHighlight = true; - return; - } - const blocks = document.querySelectorAll(options.cssSelector); - blocks.forEach(highlightElement); - } - function boot() { - if (wantsHighlight) - highlightAll(); - } - if (typeof window !== "undefined" && window.addEventListener) { - window.addEventListener("DOMContentLoaded", boot, false); - } - function registerLanguage(languageName, languageDefinition) { - let lang = null; - try { - lang = languageDefinition(hljs2); - } catch (error$1) { - error("Language definition for '{}' could not be registered.".replace("{}", languageName)); - if (!SAFE_MODE) { - throw error$1; - } else { - error(error$1); - } - lang = PLAINTEXT_LANGUAGE; - } - if (!lang.name) - lang.name = languageName; - languages[languageName] = lang; - lang.rawDefinition = languageDefinition.bind(null, hljs2); - if (lang.aliases) { - registerAliases(lang.aliases, { languageName }); - } - } - function unregisterLanguage(languageName) { - delete languages[languageName]; - for (const alias of Object.keys(aliases)) { - if (aliases[alias] === languageName) { - delete aliases[alias]; - } - } - } - function listLanguages() { - return Object.keys(languages); - } - function getLanguage(name) { - name = (name || "").toLowerCase(); - return languages[name] || languages[aliases[name]]; - } - function registerAliases(aliasList, { languageName }) { - if (typeof aliasList === "string") { - aliasList = [aliasList]; - } - aliasList.forEach((alias) => { - aliases[alias.toLowerCase()] = languageName; - }); - } - function autoDetection(name) { - const lang = getLanguage(name); - return lang && !lang.disableAutodetect; - } - function upgradePluginAPI(plugin) { - if (plugin["before:highlightBlock"] && !plugin["before:highlightElement"]) { - plugin["before:highlightElement"] = (data) => { - plugin["before:highlightBlock"]( - Object.assign({ block: data.el }, data) - ); - }; - } - if (plugin["after:highlightBlock"] && !plugin["after:highlightElement"]) { - plugin["after:highlightElement"] = (data) => { - plugin["after:highlightBlock"]( - Object.assign({ block: data.el }, data) - ); - }; - } - } - function addPlugin(plugin) { - upgradePluginAPI(plugin); - plugins.push(plugin); - } - function removePlugin(plugin) { - const index = plugins.indexOf(plugin); - if (index !== -1) { - plugins.splice(index, 1); - } - } - function fire(event, args) { - const cb = event; - plugins.forEach(function(plugin) { - if (plugin[cb]) { - plugin[cb](args); - } - }); - } - function deprecateHighlightBlock(el) { - deprecated("10.7.0", "highlightBlock will be removed entirely in v12.0"); - deprecated("10.7.0", "Please use highlightElement now."); - return highlightElement(el); - } - Object.assign(hljs2, { - highlight: highlight2, - highlightAuto, - highlightAll, - highlightElement, - // TODO: Remove with v12 API - highlightBlock: deprecateHighlightBlock, - configure, - initHighlighting, - initHighlightingOnLoad, - registerLanguage, - unregisterLanguage, - listLanguages, - getLanguage, - registerAliases, - autoDetection, - inherit, - addPlugin, - removePlugin - }); - hljs2.debugMode = function() { - SAFE_MODE = false; - }; - hljs2.safeMode = function() { - SAFE_MODE = true; - }; - hljs2.versionString = version; - hljs2.regex = { - concat, - lookahead, - either, - optional, - anyNumberOfTimes - }; - for (const key in MODES) { - if (typeof MODES[key] === "object") { - deepFreeze(MODES[key]); - } - } - Object.assign(hljs2, MODES); - return hljs2; -}; -const highlight = HLJS({}); -highlight.newInstance = () => HLJS({}); -var core = highlight; -highlight.HighlightJS = highlight; -highlight.default = highlight; -var _1c_1; -var hasRequired_1c; -function require_1c() { - if (hasRequired_1c) - return _1c_1; - hasRequired_1c = 1; - function _1c(hljs2) { - const UNDERSCORE_IDENT_RE2 = "[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+"; - const v7_keywords = "далее "; - const v8_keywords = "возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт "; - const KEYWORD = v7_keywords + v8_keywords; - const v7_meta_keywords = "загрузитьизфайла "; - const v8_meta_keywords = "вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент "; - const METAKEYWORD = v7_meta_keywords + v8_meta_keywords; - const v7_system_constants = "разделительстраниц разделительстрок символтабуляции "; - const v7_global_context_methods = "ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон "; - const v8_global_context_methods = "acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища "; - const v8_global_context_property = "wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек "; - const BUILTIN = v7_system_constants + v7_global_context_methods + v8_global_context_methods + v8_global_context_property; - const v8_system_sets_of_values = "webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля "; - const v8_system_enums_interface = "автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы "; - const v8_system_enums_objects_properties = "виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента "; - const v8_system_enums_exchange_plans = "авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных "; - const v8_system_enums_tabular_document = "использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц "; - const v8_system_enums_sheduler = "отображениевремениэлементовпланировщика "; - const v8_system_enums_formatted_document = "типфайлаформатированногодокумента "; - const v8_system_enums_query = "обходрезультатазапроса типзаписизапроса "; - const v8_system_enums_report_builder = "видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов "; - const v8_system_enums_files = "доступкфайлу режимдиалогавыборафайла режимоткрытияфайла "; - const v8_system_enums_query_builder = "типизмеренияпостроителязапроса "; - const v8_system_enums_data_analysis = "видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений "; - const v8_system_enums_xml_json_xs_dom_xdto_ws = "wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson "; - const v8_system_enums_data_composition_system = "видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных "; - const v8_system_enums_email = "важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения "; - const v8_system_enums_logbook = "режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации "; - const v8_system_enums_cryptography = "расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии "; - const v8_system_enums_zip = "кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip "; - const v8_system_enums_other = "звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp "; - const v8_system_enums_request_schema = "направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса "; - const v8_system_enums_properties_of_metadata_objects = "httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений "; - const v8_system_enums_differents = "важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты"; - const CLASS = v8_system_sets_of_values + v8_system_enums_interface + v8_system_enums_objects_properties + v8_system_enums_exchange_plans + v8_system_enums_tabular_document + v8_system_enums_sheduler + v8_system_enums_formatted_document + v8_system_enums_query + v8_system_enums_report_builder + v8_system_enums_files + v8_system_enums_query_builder + v8_system_enums_data_analysis + v8_system_enums_xml_json_xs_dom_xdto_ws + v8_system_enums_data_composition_system + v8_system_enums_email + v8_system_enums_logbook + v8_system_enums_cryptography + v8_system_enums_zip + v8_system_enums_other + v8_system_enums_request_schema + v8_system_enums_properties_of_metadata_objects + v8_system_enums_differents; - const v8_shared_object = "comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных "; - const v8_universal_collection = "comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив "; - const TYPE = v8_shared_object + v8_universal_collection; - const LITERAL = "null истина ложь неопределено"; - const NUMBERS = hljs2.inherit(hljs2.NUMBER_MODE); - const STRINGS = { - className: "string", - begin: '"|\\|', - end: '"|$', - contains: [{ begin: '""' }] - }; - const DATE = { - begin: "'", - end: "'", - excludeBegin: true, - excludeEnd: true, - contains: [ - { - className: "number", - begin: "\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}" - } - ] - }; - const COMMENTS = hljs2.inherit(hljs2.C_LINE_COMMENT_MODE); - const META = { - className: "meta", - begin: "#|&", - end: "$", - keywords: { - $pattern: UNDERSCORE_IDENT_RE2, - keyword: KEYWORD + METAKEYWORD - }, - contains: [COMMENTS] - }; - const SYMBOL = { - className: "symbol", - begin: "~", - end: ";|:", - excludeEnd: true - }; - const FUNCTION = { - className: "function", - variants: [ - { - begin: "процедура|функция", - end: "\\)", - keywords: "процедура функция" - }, - { - begin: "конецпроцедуры|конецфункции", - keywords: "конецпроцедуры конецфункции" - } - ], - contains: [ - { - begin: "\\(", - end: "\\)", - endsParent: true, - contains: [ - { - className: "params", - begin: UNDERSCORE_IDENT_RE2, - end: ",", - excludeEnd: true, - endsWithParent: true, - keywords: { - $pattern: UNDERSCORE_IDENT_RE2, - keyword: "знач", - literal: LITERAL - }, - contains: [ - NUMBERS, - STRINGS, - DATE - ] - }, - COMMENTS - ] - }, - hljs2.inherit(hljs2.TITLE_MODE, { begin: UNDERSCORE_IDENT_RE2 }) - ] - }; - return { - name: "1C:Enterprise", - case_insensitive: true, - keywords: { - $pattern: UNDERSCORE_IDENT_RE2, - keyword: KEYWORD, - built_in: BUILTIN, - class: CLASS, - type: TYPE, - literal: LITERAL - }, - contains: [ - META, - FUNCTION, - COMMENTS, - SYMBOL, - NUMBERS, - STRINGS, - DATE - ] - }; - } - _1c_1 = _1c; - return _1c_1; -} -var abnf_1; -var hasRequiredAbnf; -function requireAbnf() { - if (hasRequiredAbnf) - return abnf_1; - hasRequiredAbnf = 1; - function abnf(hljs2) { - const regex = hljs2.regex; - const IDENT = /^[a-zA-Z][a-zA-Z0-9-]*/; - const KEYWORDS = [ - "ALPHA", - "BIT", - "CHAR", - "CR", - "CRLF", - "CTL", - "DIGIT", - "DQUOTE", - "HEXDIG", - "HTAB", - "LF", - "LWSP", - "OCTET", - "SP", - "VCHAR", - "WSP" - ]; - const COMMENT2 = hljs2.COMMENT(/;/, /$/); - const TERMINAL_BINARY = { - scope: "symbol", - match: /%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/ - }; - const TERMINAL_DECIMAL = { - scope: "symbol", - match: /%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/ - }; - const TERMINAL_HEXADECIMAL = { - scope: "symbol", - match: /%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/ - }; - const CASE_SENSITIVITY = { - scope: "symbol", - match: /%[si](?=".*")/ - }; - const RULE_DECLARATION = { - scope: "attribute", - match: regex.concat(IDENT, /(?=\s*=)/) - }; - const ASSIGNMENT = { - scope: "operator", - match: /=\/?/ - }; - return { - name: "Augmented Backus-Naur Form", - illegal: /[!@#$^&',?+~`|:]/, - keywords: KEYWORDS, - contains: [ - ASSIGNMENT, - RULE_DECLARATION, - COMMENT2, - TERMINAL_BINARY, - TERMINAL_DECIMAL, - TERMINAL_HEXADECIMAL, - CASE_SENSITIVITY, - hljs2.QUOTE_STRING_MODE, - hljs2.NUMBER_MODE - ] - }; - } - abnf_1 = abnf; - return abnf_1; -} -var accesslog_1; -var hasRequiredAccesslog; -function requireAccesslog() { - if (hasRequiredAccesslog) - return accesslog_1; - hasRequiredAccesslog = 1; - function accesslog(hljs2) { - const regex = hljs2.regex; - const HTTP_VERBS = [ - "GET", - "POST", - "HEAD", - "PUT", - "DELETE", - "CONNECT", - "OPTIONS", - "PATCH", - "TRACE" - ]; - return { - name: "Apache Access Log", - contains: [ - // IP - { - className: "number", - begin: /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/, - relevance: 5 - }, - // Other numbers - { - className: "number", - begin: /\b\d+\b/, - relevance: 0 - }, - // Requests - { - className: "string", - begin: regex.concat(/"/, regex.either(...HTTP_VERBS)), - end: /"/, - keywords: HTTP_VERBS, - illegal: /\n/, - relevance: 5, - contains: [ - { - begin: /HTTP\/[12]\.\d'/, - relevance: 5 - } - ] - }, - // Dates - { - className: "string", - // dates must have a certain length, this prevents matching - // simple array accesses a[123] and [] and other common patterns - // found in other languages - begin: /\[\d[^\]\n]{8,}\]/, - illegal: /\n/, - relevance: 1 - }, - { - className: "string", - begin: /\[/, - end: /\]/, - illegal: /\n/, - relevance: 0 - }, - // User agent / relevance boost - { - className: "string", - begin: /"Mozilla\/\d\.\d \(/, - end: /"/, - illegal: /\n/, - relevance: 3 - }, - // Strings - { - className: "string", - begin: /"/, - end: /"/, - illegal: /\n/, - relevance: 0 - } - ] - }; - } - accesslog_1 = accesslog; - return accesslog_1; -} -var actionscript_1; -var hasRequiredActionscript; -function requireActionscript() { - if (hasRequiredActionscript) - return actionscript_1; - hasRequiredActionscript = 1; - function actionscript(hljs2) { - const regex = hljs2.regex; - const IDENT_RE2 = /[a-zA-Z_$][a-zA-Z0-9_$]*/; - const PKG_NAME_RE = regex.concat( - IDENT_RE2, - regex.concat("(\\.", IDENT_RE2, ")*") - ); - const IDENT_FUNC_RETURN_TYPE_RE = /([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/; - const AS3_REST_ARG_MODE = { - className: "rest_arg", - begin: /[.]{3}/, - end: IDENT_RE2, - relevance: 10 - }; - const KEYWORDS = [ - "as", - "break", - "case", - "catch", - "class", - "const", - "continue", - "default", - "delete", - "do", - "dynamic", - "each", - "else", - "extends", - "final", - "finally", - "for", - "function", - "get", - "if", - "implements", - "import", - "in", - "include", - "instanceof", - "interface", - "internal", - "is", - "namespace", - "native", - "new", - "override", - "package", - "private", - "protected", - "public", - "return", - "set", - "static", - "super", - "switch", - "this", - "throw", - "try", - "typeof", - "use", - "var", - "void", - "while", - "with" - ]; - const LITERALS = [ - "true", - "false", - "null", - "undefined" - ]; - return { - name: "ActionScript", - aliases: ["as"], - keywords: { - keyword: KEYWORDS, - literal: LITERALS - }, - contains: [ - hljs2.APOS_STRING_MODE, - hljs2.QUOTE_STRING_MODE, - hljs2.C_LINE_COMMENT_MODE, - hljs2.C_BLOCK_COMMENT_MODE, - hljs2.C_NUMBER_MODE, - { - match: [ - /\bpackage/, - /\s+/, - PKG_NAME_RE - ], - className: { - 1: "keyword", - 3: "title.class" - } - }, - { - match: [ - /\b(?:class|interface|extends|implements)/, - /\s+/, - IDENT_RE2 - ], - className: { - 1: "keyword", - 3: "title.class" - } - }, - { - className: "meta", - beginKeywords: "import include", - end: /;/, - keywords: { keyword: "import include" } - }, - { - beginKeywords: "function", - end: /[{;]/, - excludeEnd: true, - illegal: /\S/, - contains: [ - hljs2.inherit(hljs2.TITLE_MODE, { className: "title.function" }), - { - className: "params", - begin: /\(/, - end: /\)/, - contains: [ - hljs2.APOS_STRING_MODE, - hljs2.QUOTE_STRING_MODE, - hljs2.C_LINE_COMMENT_MODE, - hljs2.C_BLOCK_COMMENT_MODE, - AS3_REST_ARG_MODE - ] - }, - { begin: regex.concat(/:\s*/, IDENT_FUNC_RETURN_TYPE_RE) } - ] - }, - hljs2.METHOD_GUARD - ], - illegal: /#/ - }; - } - actionscript_1 = actionscript; - return actionscript_1; -} -var ada_1; -var hasRequiredAda; -function requireAda() { - if (hasRequiredAda) - return ada_1; - hasRequiredAda = 1; - function ada(hljs2) { - const INTEGER_RE = "\\d(_|\\d)*"; - const EXPONENT_RE = "[eE][-+]?" + INTEGER_RE; - const DECIMAL_LITERAL_RE = INTEGER_RE + "(\\." + INTEGER_RE + ")?(" + EXPONENT_RE + ")?"; - const BASED_INTEGER_RE = "\\w+"; - const BASED_LITERAL_RE = INTEGER_RE + "#" + BASED_INTEGER_RE + "(\\." + BASED_INTEGER_RE + ")?#(" + EXPONENT_RE + ")?"; - const NUMBER_RE2 = "\\b(" + BASED_LITERAL_RE + "|" + DECIMAL_LITERAL_RE + ")"; - const ID_REGEX = "[A-Za-z](_?[A-Za-z0-9.])*"; - const BAD_CHARS = `[]\\{\\}%#'"`; - const COMMENTS = hljs2.COMMENT("--", "$"); - const VAR_DECLS = { - // TODO: These spaces are not required by the Ada syntax - // however, I have yet to see handwritten Ada code where - // someone does not put spaces around : - begin: "\\s+:\\s+", - end: "\\s*(:=|;|\\)|=>|$)", - // endsWithParent: true, - // returnBegin: true, - illegal: BAD_CHARS, - contains: [ - { - // workaround to avoid highlighting - // named loops and declare blocks - beginKeywords: "loop for declare others", - endsParent: true - }, - { - // properly highlight all modifiers - className: "keyword", - beginKeywords: "not null constant access function procedure in out aliased exception" - }, - { - className: "type", - begin: ID_REGEX, - endsParent: true, - relevance: 0 - } - ] - }; - const KEYWORDS = [ - "abort", - "else", - "new", - "return", - "abs", - "elsif", - "not", - "reverse", - "abstract", - "end", - "accept", - "entry", - "select", - "access", - "exception", - "of", - "separate", - "aliased", - "exit", - "or", - "some", - "all", - "others", - "subtype", - "and", - "for", - "out", - "synchronized", - "array", - "function", - "overriding", - "at", - "tagged", - "generic", - "package", - "task", - "begin", - "goto", - "pragma", - "terminate", - "body", - "private", - "then", - "if", - "procedure", - "type", - "case", - "in", - "protected", - "constant", - "interface", - "is", - "raise", - "use", - "declare", - "range", - "delay", - "limited", - "record", - "when", - "delta", - "loop", - "rem", - "while", - "digits", - "renames", - "with", - "do", - "mod", - "requeue", - "xor" - ]; - return { - name: "Ada", - case_insensitive: true, - keywords: { - keyword: KEYWORDS, - literal: [ - "True", - "False" - ] - }, - contains: [ - COMMENTS, - // strings "foobar" - { - className: "string", - begin: /"/, - end: /"/, - contains: [ - { - begin: /""/, - relevance: 0 - } - ] - }, - // characters '' - { - // character literals always contain one char - className: "string", - begin: /'.'/ - }, - { - // number literals - className: "number", - begin: NUMBER_RE2, - relevance: 0 - }, - { - // Attributes - className: "symbol", - begin: "'" + ID_REGEX - }, - { - // package definition, maybe inside generic - className: "title", - begin: "(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?", - end: "(is|$)", - keywords: "package body", - excludeBegin: true, - excludeEnd: true, - illegal: BAD_CHARS - }, - { - // function/procedure declaration/definition - // maybe inside generic - begin: "(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+", - end: "(\\bis|\\bwith|\\brenames|\\)\\s*;)", - keywords: "overriding function procedure with is renames return", - // we need to re-match the 'function' keyword, so that - // the title mode below matches only exactly once - returnBegin: true, - contains: [ - COMMENTS, - { - // name of the function/procedure - className: "title", - begin: "(\\bwith\\s+)?\\b(function|procedure)\\s+", - end: "(\\(|\\s+|$)", - excludeBegin: true, - excludeEnd: true, - illegal: BAD_CHARS - }, - // 'self' - // // parameter types - VAR_DECLS, - { - // return type - className: "type", - begin: "\\breturn\\s+", - end: "(\\s+|;|$)", - keywords: "return", - excludeBegin: true, - excludeEnd: true, - // we are done with functions - endsParent: true, - illegal: BAD_CHARS - } - ] - }, - { - // new type declarations - // maybe inside generic - className: "type", - begin: "\\b(sub)?type\\s+", - end: "\\s+", - keywords: "type", - excludeBegin: true, - illegal: BAD_CHARS - }, - // see comment above the definition - VAR_DECLS - // no markup - // relevance boosters for small snippets - // {begin: '\\s*=>\\s*'}, - // {begin: '\\s*:=\\s*'}, - // {begin: '\\s+:=\\s+'}, - ] - }; - } - ada_1 = ada; - return ada_1; -} -var angelscript_1; -var hasRequiredAngelscript; -function requireAngelscript() { - if (hasRequiredAngelscript) - return angelscript_1; - hasRequiredAngelscript = 1; - function angelscript(hljs2) { - const builtInTypeMode = { - className: "built_in", - begin: "\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)" - }; - const objectHandleMode = { - className: "symbol", - begin: "[a-zA-Z0-9_]+@" - }; - const genericMode = { - className: "keyword", - begin: "<", - end: ">", - contains: [ - builtInTypeMode, - objectHandleMode - ] - }; - builtInTypeMode.contains = [genericMode]; - objectHandleMode.contains = [genericMode]; - const KEYWORDS = [ - "for", - "in|0", - "break", - "continue", - "while", - "do|0", - "return", - "if", - "else", - "case", - "switch", - "namespace", - "is", - "cast", - "or", - "and", - "xor", - "not", - "get|0", - "in", - "inout|10", - "out", - "override", - "set|0", - "private", - "public", - "const", - "default|0", - "final", - "shared", - "external", - "mixin|10", - "enum", - "typedef", - "funcdef", - "this", - "super", - "import", - "from", - "interface", - "abstract|0", - "try", - "catch", - "protected", - "explicit", - "property" - ]; - return { - name: "AngelScript", - aliases: ["asc"], - keywords: KEYWORDS, - // avoid close detection with C# and JS - illegal: "(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])", - contains: [ - { - // 'strings' - className: "string", - begin: "'", - end: "'", - illegal: "\\n", - contains: [hljs2.BACKSLASH_ESCAPE], - relevance: 0 - }, - // """heredoc strings""" - { - className: "string", - begin: '"""', - end: '"""' - }, - { - // "strings" - className: "string", - begin: '"', - end: '"', - illegal: "\\n", - contains: [hljs2.BACKSLASH_ESCAPE], - relevance: 0 - }, - hljs2.C_LINE_COMMENT_MODE, - // single-line comments - hljs2.C_BLOCK_COMMENT_MODE, - // comment blocks - { - // metadata - className: "string", - begin: "^\\s*\\[", - end: "\\]" - }, - { - // interface or namespace declaration - beginKeywords: "interface namespace", - end: /\{/, - illegal: "[;.\\-]", - contains: [ - { - // interface or namespace name - className: "symbol", - begin: "[a-zA-Z0-9_]+" - } - ] - }, - { - // class declaration - beginKeywords: "class", - end: /\{/, - illegal: "[;.\\-]", - contains: [ - { - // class name - className: "symbol", - begin: "[a-zA-Z0-9_]+", - contains: [ - { - begin: "[:,]\\s*", - contains: [ - { - className: "symbol", - begin: "[a-zA-Z0-9_]+" - } - ] - } - ] - } - ] - }, - builtInTypeMode, - // built-in types - objectHandleMode, - // object handles - { - // literals - className: "literal", - begin: "\\b(null|true|false)" - }, - { - // numbers - className: "number", - relevance: 0, - begin: "(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)" - } - ] - }; - } - angelscript_1 = angelscript; - return angelscript_1; -} -var apache_1; -var hasRequiredApache; -function requireApache() { - if (hasRequiredApache) - return apache_1; - hasRequiredApache = 1; - function apache(hljs2) { - const NUMBER_REF = { - className: "number", - begin: /[$%]\d+/ - }; - const NUMBER = { - className: "number", - begin: /\b\d+/ - }; - const IP_ADDRESS = { - className: "number", - begin: /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/ - }; - const PORT_NUMBER = { - className: "number", - begin: /:\d{1,5}/ - }; - return { - name: "Apache config", - aliases: ["apacheconf"], - case_insensitive: true, - contains: [ - hljs2.HASH_COMMENT_MODE, - { - className: "section", - begin: /<\/?/, - end: />/, - contains: [ - IP_ADDRESS, - PORT_NUMBER, - // low relevance prevents us from claming XML/HTML where this rule would - // match strings inside of XML tags - hljs2.inherit(hljs2.QUOTE_STRING_MODE, { relevance: 0 }) - ] - }, - { - className: "attribute", - begin: /\w+/, - relevance: 0, - // keywords aren’t needed for highlighting per se, they only boost relevance - // for a very generally defined mode (starts with a word, ends with line-end - keywords: { _: [ - "order", - "deny", - "allow", - "setenv", - "rewriterule", - "rewriteengine", - "rewritecond", - "documentroot", - "sethandler", - "errordocument", - "loadmodule", - "options", - "header", - "listen", - "serverroot", - "servername" - ] }, - starts: { - end: /$/, - relevance: 0, - keywords: { literal: "on off all deny allow" }, - contains: [ - { - className: "meta", - begin: /\s\[/, - end: /\]$/ - }, - { - className: "variable", - begin: /[\$%]\{/, - end: /\}/, - contains: [ - "self", - NUMBER_REF - ] - }, - IP_ADDRESS, - NUMBER, - hljs2.QUOTE_STRING_MODE - ] - } - } - ], - illegal: /\S/ - }; - } - apache_1 = apache; - return apache_1; -} -var applescript_1; -var hasRequiredApplescript; -function requireApplescript() { - if (hasRequiredApplescript) - return applescript_1; - hasRequiredApplescript = 1; - function applescript(hljs2) { - const regex = hljs2.regex; - const STRING = hljs2.inherit( - hljs2.QUOTE_STRING_MODE, - { illegal: null } - ); - const PARAMS = { - className: "params", - begin: /\(/, - end: /\)/, - contains: [ - "self", - hljs2.C_NUMBER_MODE, - STRING - ] - }; - const COMMENT_MODE_1 = hljs2.COMMENT(/--/, /$/); - const COMMENT_MODE_2 = hljs2.COMMENT( - /\(\*/, - /\*\)/, - { contains: [ - "self", - // allow nesting - COMMENT_MODE_1 - ] } - ); - const COMMENTS = [ - COMMENT_MODE_1, - COMMENT_MODE_2, - hljs2.HASH_COMMENT_MODE - ]; - const KEYWORD_PATTERNS = [ - /apart from/, - /aside from/, - /instead of/, - /out of/, - /greater than/, - /isn't|(doesn't|does not) (equal|come before|come after|contain)/, - /(greater|less) than( or equal)?/, - /(starts?|ends|begins?) with/, - /contained by/, - /comes (before|after)/, - /a (ref|reference)/, - /POSIX (file|path)/, - /(date|time) string/, - /quoted form/ - ]; - const BUILT_IN_PATTERNS = [ - /clipboard info/, - /the clipboard/, - /info for/, - /list (disks|folder)/, - /mount volume/, - /path to/, - /(close|open for) access/, - /(get|set) eof/, - /current date/, - /do shell script/, - /get volume settings/, - /random number/, - /set volume/, - /system attribute/, - /system info/, - /time to GMT/, - /(load|run|store) script/, - /scripting components/, - /ASCII (character|number)/, - /localized string/, - /choose (application|color|file|file name|folder|from list|remote application|URL)/, - /display (alert|dialog)/ - ]; - return { - name: "AppleScript", - aliases: ["osascript"], - keywords: { - keyword: "about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without", - literal: "AppleScript false linefeed return pi quote result space tab true", - built_in: "alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name|0 paragraph paragraphs rest reverse running time version weekday word words year" - }, - contains: [ - STRING, - hljs2.C_NUMBER_MODE, - { - className: "built_in", - begin: regex.concat( - /\b/, - regex.either(...BUILT_IN_PATTERNS), - /\b/ - ) - }, - { - className: "built_in", - begin: /^\s*return\b/ - }, - { - className: "literal", - begin: /\b(text item delimiters|current application|missing value)\b/ - }, - { - className: "keyword", - begin: regex.concat( - /\b/, - regex.either(...KEYWORD_PATTERNS), - /\b/ - ) - }, - { - beginKeywords: "on", - illegal: /[${=;\n]/, - contains: [ - hljs2.UNDERSCORE_TITLE_MODE, - PARAMS - ] - }, - ...COMMENTS - ], - illegal: /\/\/|->|=>|\[\[/ - }; - } - applescript_1 = applescript; - return applescript_1; -} -var arcade_1; -var hasRequiredArcade; -function requireArcade() { - if (hasRequiredArcade) - return arcade_1; - hasRequiredArcade = 1; - function arcade(hljs2) { - const IDENT_RE2 = "[A-Za-z_][0-9A-Za-z_]*"; - const KEYWORDS = { - keyword: [ - "if", - "for", - "while", - "var", - "new", - "function", - "do", - "return", - "void", - "else", - "break" - ], - literal: [ - "BackSlash", - "DoubleQuote", - "false", - "ForwardSlash", - "Infinity", - "NaN", - "NewLine", - "null", - "PI", - "SingleQuote", - "Tab", - "TextFormatting", - "true", - "undefined" - ], - built_in: [ - "Abs", - "Acos", - "All", - "Angle", - "Any", - "Area", - "AreaGeodetic", - "Array", - "Asin", - "Atan", - "Atan2", - "Attachments", - "Average", - "Back", - "Bearing", - "Boolean", - "Buffer", - "BufferGeodetic", - "Ceil", - "Centroid", - "Clip", - "Concatenate", - "Console", - "Constrain", - "Contains", - "ConvertDirection", - "Cos", - "Count", - "Crosses", - "Cut", - "Date", - "DateAdd", - "DateDiff", - "Day", - "Decode", - "DefaultValue", - "Densify", - "DensifyGeodetic", - "Dictionary", - "Difference", - "Disjoint", - "Distance", - "DistanceGeodetic", - "Distinct", - "Domain", - "DomainCode", - "DomainName", - "EnvelopeIntersects", - "Equals", - "Erase", - "Exp", - "Expects", - "Extent", - "Feature", - "FeatureSet", - "FeatureSetByAssociation", - "FeatureSetById", - "FeatureSetByName", - "FeatureSetByPortalItem", - "FeatureSetByRelationshipName", - "Filter", - "Find", - "First", - "Floor", - "FromCharCode", - "FromCodePoint", - "FromJSON", - "GdbVersion", - "Generalize", - "Geometry", - "GetFeatureSet", - "GetUser", - "GroupBy", - "Guid", - "Hash", - "HasKey", - "Hour", - "IIf", - "Includes", - "IndexOf", - "Insert", - "Intersection", - "Intersects", - "IsEmpty", - "IsNan", - "ISOMonth", - "ISOWeek", - "ISOWeekday", - "ISOYear", - "IsSelfIntersecting", - "IsSimple", - "Left|0", - "Length", - "Length3D", - "LengthGeodetic", - "Log", - "Lower", - "Map", - "Max", - "Mean", - "Mid", - "Millisecond", - "Min", - "Minute", - "Month", - "MultiPartToSinglePart", - "Multipoint", - "NextSequenceValue", - "None", - "Now", - "Number", - "Offset|0", - "OrderBy", - "Overlaps", - "Point", - "Polygon", - "Polyline", - "Pop", - "Portal", - "Pow", - "Proper", - "Push", - "Random", - "Reduce", - "Relate", - "Replace", - "Resize", - "Reverse", - "Right|0", - "RingIsClockwise", - "Rotate", - "Round", - "Schema", - "Second", - "SetGeometry", - "Simplify", - "Sin", - "Slice", - "Sort", - "Splice", - "Split", - "Sqrt", - "Stdev", - "SubtypeCode", - "SubtypeName", - "Subtypes", - "Sum", - "SymmetricDifference", - "Tan", - "Text", - "Timestamp", - "ToCharCode", - "ToCodePoint", - "Today", - "ToHex", - "ToLocal", - "Top|0", - "Touches", - "ToUTC", - "TrackAccelerationAt", - "TrackAccelerationWindow", - "TrackCurrentAcceleration", - "TrackCurrentDistance", - "TrackCurrentSpeed", - "TrackCurrentTime", - "TrackDistanceAt", - "TrackDistanceWindow", - "TrackDuration", - "TrackFieldWindow", - "TrackGeometryWindow", - "TrackIndex", - "TrackSpeedAt", - "TrackSpeedWindow", - "TrackStartTime", - "TrackWindow", - "Trim", - "TypeOf", - "Union", - "Upper", - "UrlEncode", - "Variance", - "Week", - "Weekday", - "When", - "Within", - "Year" - ] - }; - const SYMBOL = { - className: "symbol", - begin: "\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+" - }; - const NUMBER = { - className: "number", - variants: [ - { begin: "\\b(0[bB][01]+)" }, - { begin: "\\b(0[oO][0-7]+)" }, - { begin: hljs2.C_NUMBER_RE } - ], - relevance: 0 - }; - const SUBST = { - className: "subst", - begin: "\\$\\{", - end: "\\}", - keywords: KEYWORDS, - contains: [] - // defined later - }; - const TEMPLATE_STRING = { - className: "string", - begin: "`", - end: "`", - contains: [ - hljs2.BACKSLASH_ESCAPE, - SUBST - ] - }; - SUBST.contains = [ - hljs2.APOS_STRING_MODE, - hljs2.QUOTE_STRING_MODE, - TEMPLATE_STRING, - NUMBER, - hljs2.REGEXP_MODE - ]; - const PARAMS_CONTAINS = SUBST.contains.concat([ - hljs2.C_BLOCK_COMMENT_MODE, - hljs2.C_LINE_COMMENT_MODE - ]); - return { - name: "ArcGIS Arcade", - case_insensitive: true, - keywords: KEYWORDS, - contains: [ - hljs2.APOS_STRING_MODE, - hljs2.QUOTE_STRING_MODE, - TEMPLATE_STRING, - hljs2.C_LINE_COMMENT_MODE, - hljs2.C_BLOCK_COMMENT_MODE, - SYMBOL, - NUMBER, - { - // object attr container - begin: /[{,]\s*/, - relevance: 0, - contains: [ - { - begin: IDENT_RE2 + "\\s*:", - returnBegin: true, - relevance: 0, - contains: [ - { - className: "attr", - begin: IDENT_RE2, - relevance: 0 - } - ] - } - ] - }, - { - // "value" container - begin: "(" + hljs2.RE_STARTERS_RE + "|\\b(return)\\b)\\s*", - keywords: "return", - contains: [ - hljs2.C_LINE_COMMENT_MODE, - hljs2.C_BLOCK_COMMENT_MODE, - hljs2.REGEXP_MODE, - { - className: "function", - begin: "(\\(.*?\\)|" + IDENT_RE2 + ")\\s*=>", - returnBegin: true, - end: "\\s*=>", - contains: [ - { - className: "params", - variants: [ - { begin: IDENT_RE2 }, - { begin: /\(\s*\)/ }, - { - begin: /\(/, - end: /\)/, - excludeBegin: true, - excludeEnd: true, - keywords: KEYWORDS, - contains: PARAMS_CONTAINS - } - ] - } - ] - } - ], - relevance: 0 - }, - { - beginKeywords: "function", - end: /\{/, - excludeEnd: true, - contains: [ - hljs2.inherit(hljs2.TITLE_MODE, { - className: "title.function", - begin: IDENT_RE2 - }), - { - className: "params", - begin: /\(/, - end: /\)/, - excludeBegin: true, - excludeEnd: true, - contains: PARAMS_CONTAINS - } - ], - illegal: /\[|%/ - }, - { begin: /\$[(.]/ } - ], - illegal: /#(?!!)/ - }; - } - arcade_1 = arcade; - return arcade_1; -} -var arduino_1; -var hasRequiredArduino; -function requireArduino() { - if (hasRequiredArduino) - return arduino_1; - hasRequiredArduino = 1; - function cPlusPlus(hljs2) { - const regex = hljs2.regex; - const C_LINE_COMMENT_MODE2 = hljs2.COMMENT("//", "$", { contains: [{ begin: /\\\n/ }] }); - const DECLTYPE_AUTO_RE = "decltype\\(auto\\)"; - const NAMESPACE_RE = "[a-zA-Z_]\\w*::"; - const TEMPLATE_ARGUMENT_RE = "<[^<>]+>"; - const FUNCTION_TYPE_RE = "(?!struct)(" + DECLTYPE_AUTO_RE + "|" + regex.optional(NAMESPACE_RE) + "[a-zA-Z_]\\w*" + regex.optional(TEMPLATE_ARGUMENT_RE) + ")"; - const CPP_PRIMITIVE_TYPES = { - className: "type", - begin: "\\b[a-z\\d_]*_t\\b" - }; - const CHARACTER_ESCAPES = "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"; - const STRINGS = { - className: "string", - variants: [ - { - begin: '(u8?|U|L)?"', - end: '"', - illegal: "\\n", - contains: [hljs2.BACKSLASH_ESCAPE] - }, - { - begin: "(u8?|U|L)?'(" + CHARACTER_ESCAPES + "|.)", - end: "'", - illegal: "." - }, - hljs2.END_SAME_AS_BEGIN({ - begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/, - end: /\)([^()\\ ]{0,16})"/ - }) - ] - }; - const NUMBERS = { - className: "number", - variants: [ - { begin: "\\b(0b[01']+)" }, - { begin: "(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" }, - { begin: "(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" } - ], - relevance: 0 - }; - const PREPROCESSOR = { - className: "meta", - begin: /#\s*[a-z]+\b/, - end: /$/, - keywords: { keyword: "if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" }, - contains: [ - { - begin: /\\\n/, - relevance: 0 - }, - hljs2.inherit(STRINGS, { className: "string" }), - { - className: "string", - begin: /<.*?>/ - }, - C_LINE_COMMENT_MODE2, - hljs2.C_BLOCK_COMMENT_MODE - ] - }; - const TITLE_MODE2 = { - className: "title", - begin: regex.optional(NAMESPACE_RE) + hljs2.IDENT_RE, - relevance: 0 - }; - const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs2.IDENT_RE + "\\s*\\("; - const RESERVED_KEYWORDS = [ - "alignas", - "alignof", - "and", - "and_eq", - "asm", - "atomic_cancel", - "atomic_commit", - "atomic_noexcept", - "auto", - "bitand", - "bitor", - "break", - "case", - "catch", - "class", - "co_await", - "co_return", - "co_yield", - "compl", - "concept", - "const_cast|10", - "consteval", - "constexpr", - "constinit", - "continue", - "decltype", - "default", - "delete", - "do", - "dynamic_cast|10", - "else", - "enum", - "explicit", - "export", - "extern", - "false", - "final", - "for", - "friend", - "goto", - "if", - "import", - "inline", - "module", - "mutable", - "namespace", - "new", - "noexcept", - "not", - "not_eq", - "nullptr", - "operator", - "or", - "or_eq", - "override", - "private", - "protected", - "public", - "reflexpr", - "register", - "reinterpret_cast|10", - "requires", - "return", - "sizeof", - "static_assert", - "static_cast|10", - "struct", - "switch", - "synchronized", - "template", - "this", - "thread_local", - "throw", - "transaction_safe", - "transaction_safe_dynamic", - "true", - "try", - "typedef", - "typeid", - "typename", - "union", - "using", - "virtual", - "volatile", - "while", - "xor", - "xor_eq" - ]; - const RESERVED_TYPES = [ - "bool", - "char", - "char16_t", - "char32_t", - "char8_t", - "double", - "float", - "int", - "long", - "short", - "void", - "wchar_t", - "unsigned", - "signed", - "const", - "static" - ]; - const TYPE_HINTS = [ - "any", - "auto_ptr", - "barrier", - "binary_semaphore", - "bitset", - "complex", - "condition_variable", - "condition_variable_any", - "counting_semaphore", - "deque", - "false_type", - "future", - "imaginary", - "initializer_list", - "istringstream", - "jthread", - "latch", - "lock_guard", - "multimap", - "multiset", - "mutex", - "optional", - "ostringstream", - "packaged_task", - "pair", - "promise", - "priority_queue", - "queue", - "recursive_mutex", - "recursive_timed_mutex", - "scoped_lock", - "set", - "shared_future", - "shared_lock", - "shared_mutex", - "shared_timed_mutex", - "shared_ptr", - "stack", - "string_view", - "stringstream", - "timed_mutex", - "thread", - "true_type", - "tuple", - "unique_lock", - "unique_ptr", - "unordered_map", - "unordered_multimap", - "unordered_multiset", - "unordered_set", - "variant", - "vector", - "weak_ptr", - "wstring", - "wstring_view" - ]; - const FUNCTION_HINTS = [ - "abort", - "abs", - "acos", - "apply", - "as_const", - "asin", - "atan", - "atan2", - "calloc", - "ceil", - "cerr", - "cin", - "clog", - "cos", - "cosh", - "cout", - "declval", - "endl", - "exchange", - "exit", - "exp", - "fabs", - "floor", - "fmod", - "forward", - "fprintf", - "fputs", - "free", - "frexp", - "fscanf", - "future", - "invoke", - "isalnum", - "isalpha", - "iscntrl", - "isdigit", - "isgraph", - "islower", - "isprint", - "ispunct", - "isspace", - "isupper", - "isxdigit", - "labs", - "launder", - "ldexp", - "log", - "log10", - "make_pair", - "make_shared", - "make_shared_for_overwrite", - "make_tuple", - "make_unique", - "malloc", - "memchr", - "memcmp", - "memcpy", - "memset", - "modf", - "move", - "pow", - "printf", - "putchar", - "puts", - "realloc", - "scanf", - "sin", - "sinh", - "snprintf", - "sprintf", - "sqrt", - "sscanf", - "std", - "stderr", - "stdin", - "stdout", - "strcat", - "strchr", - "strcmp", - "strcpy", - "strcspn", - "strlen", - "strncat", - "strncmp", - "strncpy", - "strpbrk", - "strrchr", - "strspn", - "strstr", - "swap", - "tan", - "tanh", - "terminate", - "to_underlying", - "tolower", - "toupper", - "vfprintf", - "visit", - "vprintf", - "vsprintf" - ]; - const LITERALS = [ - "NULL", - "false", - "nullopt", - "nullptr", - "true" - ]; - const BUILT_IN = ["_Pragma"]; - const CPP_KEYWORDS = { - type: RESERVED_TYPES, - keyword: RESERVED_KEYWORDS, - literal: LITERALS, - built_in: BUILT_IN, - _type_hints: TYPE_HINTS - }; - const FUNCTION_DISPATCH = { - className: "function.dispatch", - relevance: 0, - keywords: { - // Only for relevance, not highlighting. - _hint: FUNCTION_HINTS - }, - begin: regex.concat( - /\b/, - /(?!decltype)/, - /(?!if)/, - /(?!for)/, - /(?!switch)/, - /(?!while)/, - hljs2.IDENT_RE, - regex.lookahead(/(<[^<>]+>|)\s*\(/) - ) - }; - const EXPRESSION_CONTAINS = [ - FUNCTION_DISPATCH, - PREPROCESSOR, - CPP_PRIMITIVE_TYPES, - C_LINE_COMMENT_MODE2, - hljs2.C_BLOCK_COMMENT_MODE, - NUMBERS, - STRINGS - ]; - const EXPRESSION_CONTEXT = { - // This mode covers expression context where we can't expect a function - // definition and shouldn't highlight anything that looks like one: - // `return some()`, `else if()`, `(x*sum(1, 2))` - variants: [ - { - begin: /=/, - end: /;/ - }, - { - begin: /\(/, - end: /\)/ - }, - { - beginKeywords: "new throw return else", - end: /;/ - } - ], - keywords: CPP_KEYWORDS, - contains: EXPRESSION_CONTAINS.concat([ - { - begin: /\(/, - end: /\)/, - keywords: CPP_KEYWORDS, - contains: EXPRESSION_CONTAINS.concat(["self"]), - relevance: 0 - } - ]), - relevance: 0 - }; - const FUNCTION_DECLARATION = { - className: "function", - begin: "(" + FUNCTION_TYPE_RE + "[\\*&\\s]+)+" + FUNCTION_TITLE, - returnBegin: true, - end: /[{;=]/, - excludeEnd: true, - keywords: CPP_KEYWORDS, - illegal: /[^\w\s\*&:<>.]/, - contains: [ - { - // to prevent it from being confused as the function title - begin: DECLTYPE_AUTO_RE, - keywords: CPP_KEYWORDS, - relevance: 0 - }, - { - begin: FUNCTION_TITLE, - returnBegin: true, - contains: [TITLE_MODE2], - relevance: 0 - }, - // needed because we do not have look-behind on the below rule - // to prevent it from grabbing the final : in a :: pair - { - begin: /::/, - relevance: 0 - }, - // initializers - { - begin: /:/, - endsWithParent: true, - contains: [ - STRINGS, - NUMBERS - ] - }, - // allow for multiple declarations, e.g.: - // extern void f(int), g(char); - { - relevance: 0, - match: /,/ - }, - { - className: "params", - begin: /\(/, - end: /\)/, - keywords: CPP_KEYWORDS, - relevance: 0, - contains: [ - C_LINE_COMMENT_MODE2, - hljs2.C_BLOCK_COMMENT_MODE, - STRINGS, - NUMBERS, - CPP_PRIMITIVE_TYPES, - // Count matching parentheses. - { - begin: /\(/, - end: /\)/, - keywords: CPP_KEYWORDS, - relevance: 0, - contains: [ - "self", - C_LINE_COMMENT_MODE2, - hljs2.C_BLOCK_COMMENT_MODE, - STRINGS, - NUMBERS, - CPP_PRIMITIVE_TYPES - ] - } - ] - }, - CPP_PRIMITIVE_TYPES, - C_LINE_COMMENT_MODE2, - hljs2.C_BLOCK_COMMENT_MODE, - PREPROCESSOR - ] - }; - return { - name: "C++", - aliases: [ - "cc", - "c++", - "h++", - "hpp", - "hh", - "hxx", - "cxx" - ], - keywords: CPP_KEYWORDS, - illegal: " rooms (9);` - begin: "\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)", - end: ">", - keywords: CPP_KEYWORDS, - contains: [ - "self", - CPP_PRIMITIVE_TYPES - ] - }, - { - begin: hljs2.IDENT_RE + "::", - keywords: CPP_KEYWORDS - }, - { - match: [ - // extra complexity to deal with `enum class` and `enum struct` - /\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/, - /\s+/, - /\w+/ - ], - className: { - 1: "keyword", - 3: "title.class" - } - } - ] - ) - }; - } - function arduino(hljs2) { - const ARDUINO_KW = { - type: [ - "boolean", - "byte", - "word", - "String" - ], - built_in: [ - "KeyboardController", - "MouseController", - "SoftwareSerial", - "EthernetServer", - "EthernetClient", - "LiquidCrystal", - "RobotControl", - "GSMVoiceCall", - "EthernetUDP", - "EsploraTFT", - "HttpClient", - "RobotMotor", - "WiFiClient", - "GSMScanner", - "FileSystem", - "Scheduler", - "GSMServer", - "YunClient", - "YunServer", - "IPAddress", - "GSMClient", - "GSMModem", - "Keyboard", - "Ethernet", - "Console", - "GSMBand", - "Esplora", - "Stepper", - "Process", - "WiFiUDP", - "GSM_SMS", - "Mailbox", - "USBHost", - "Firmata", - "PImage", - "Client", - "Server", - "GSMPIN", - "FileIO", - "Bridge", - "Serial", - "EEPROM", - "Stream", - "Mouse", - "Audio", - "Servo", - "File", - "Task", - "GPRS", - "WiFi", - "Wire", - "TFT", - "GSM", - "SPI", - "SD" - ], - _hints: [ - "setup", - "loop", - "runShellCommandAsynchronously", - "analogWriteResolution", - "retrieveCallingNumber", - "printFirmwareVersion", - "analogReadResolution", - "sendDigitalPortPair", - "noListenOnLocalhost", - "readJoystickButton", - "setFirmwareVersion", - "readJoystickSwitch", - "scrollDisplayRight", - "getVoiceCallStatus", - "scrollDisplayLeft", - "writeMicroseconds", - "delayMicroseconds", - "beginTransmission", - "getSignalStrength", - "runAsynchronously", - "getAsynchronously", - "listenOnLocalhost", - "getCurrentCarrier", - "readAccelerometer", - "messageAvailable", - "sendDigitalPorts", - "lineFollowConfig", - "countryNameWrite", - "runShellCommand", - "readStringUntil", - "rewindDirectory", - "readTemperature", - "setClockDivider", - "readLightSensor", - "endTransmission", - "analogReference", - "detachInterrupt", - "countryNameRead", - "attachInterrupt", - "encryptionType", - "readBytesUntil", - "robotNameWrite", - "readMicrophone", - "robotNameRead", - "cityNameWrite", - "userNameWrite", - "readJoystickY", - "readJoystickX", - "mouseReleased", - "openNextFile", - "scanNetworks", - "noInterrupts", - "digitalWrite", - "beginSpeaker", - "mousePressed", - "isActionDone", - "mouseDragged", - "displayLogos", - "noAutoscroll", - "addParameter", - "remoteNumber", - "getModifiers", - "keyboardRead", - "userNameRead", - "waitContinue", - "processInput", - "parseCommand", - "printVersion", - "readNetworks", - "writeMessage", - "blinkVersion", - "cityNameRead", - "readMessage", - "setDataMode", - "parsePacket", - "isListening", - "setBitOrder", - "beginPacket", - "isDirectory", - "motorsWrite", - "drawCompass", - "digitalRead", - "clearScreen", - "serialEvent", - "rightToLeft", - "setTextSize", - "leftToRight", - "requestFrom", - "keyReleased", - "compassRead", - "analogWrite", - "interrupts", - "WiFiServer", - "disconnect", - "playMelody", - "parseFloat", - "autoscroll", - "getPINUsed", - "setPINUsed", - "setTimeout", - "sendAnalog", - "readSlider", - "analogRead", - "beginWrite", - "createChar", - "motorsStop", - "keyPressed", - "tempoWrite", - "readButton", - "subnetMask", - "debugPrint", - "macAddress", - "writeGreen", - "randomSeed", - "attachGPRS", - "readString", - "sendString", - "remotePort", - "releaseAll", - "mouseMoved", - "background", - "getXChange", - "getYChange", - "answerCall", - "getResult", - "voiceCall", - "endPacket", - "constrain", - "getSocket", - "writeJSON", - "getButton", - "available", - "connected", - "findUntil", - "readBytes", - "exitValue", - "readGreen", - "writeBlue", - "startLoop", - "IPAddress", - "isPressed", - "sendSysex", - "pauseMode", - "gatewayIP", - "setCursor", - "getOemKey", - "tuneWrite", - "noDisplay", - "loadImage", - "switchPIN", - "onRequest", - "onReceive", - "changePIN", - "playFile", - "noBuffer", - "parseInt", - "overflow", - "checkPIN", - "knobRead", - "beginTFT", - "bitClear", - "updateIR", - "bitWrite", - "position", - "writeRGB", - "highByte", - "writeRed", - "setSpeed", - "readBlue", - "noStroke", - "remoteIP", - "transfer", - "shutdown", - "hangCall", - "beginSMS", - "endWrite", - "attached", - "maintain", - "noCursor", - "checkReg", - "checkPUK", - "shiftOut", - "isValid", - "shiftIn", - "pulseIn", - "connect", - "println", - "localIP", - "pinMode", - "getIMEI", - "display", - "noBlink", - "process", - "getBand", - "running", - "beginSD", - "drawBMP", - "lowByte", - "setBand", - "release", - "bitRead", - "prepare", - "pointTo", - "readRed", - "setMode", - "noFill", - "remove", - "listen", - "stroke", - "detach", - "attach", - "noTone", - "exists", - "buffer", - "height", - "bitSet", - "circle", - "config", - "cursor", - "random", - "IRread", - "setDNS", - "endSMS", - "getKey", - "micros", - "millis", - "begin", - "print", - "write", - "ready", - "flush", - "width", - "isPIN", - "blink", - "clear", - "press", - "mkdir", - "rmdir", - "close", - "point", - "yield", - "image", - "BSSID", - "click", - "delay", - "read", - "text", - "move", - "peek", - "beep", - "rect", - "line", - "open", - "seek", - "fill", - "size", - "turn", - "stop", - "home", - "find", - "step", - "tone", - "sqrt", - "RSSI", - "SSID", - "end", - "bit", - "tan", - "cos", - "sin", - "pow", - "map", - "abs", - "max", - "min", - "get", - "run", - "put" - ], - literal: [ - "DIGITAL_MESSAGE", - "FIRMATA_STRING", - "ANALOG_MESSAGE", - "REPORT_DIGITAL", - "REPORT_ANALOG", - "INPUT_PULLUP", - "SET_PIN_MODE", - "INTERNAL2V56", - "SYSTEM_RESET", - "LED_BUILTIN", - "INTERNAL1V1", - "SYSEX_START", - "INTERNAL", - "EXTERNAL", - "DEFAULT", - "OUTPUT", - "INPUT", - "HIGH", - "LOW" - ] - }; - const ARDUINO = cPlusPlus(hljs2); - const kws = ( - /** @type {Record} */ - ARDUINO.keywords - ); - kws.type = [ - ...kws.type, - ...ARDUINO_KW.type - ]; - kws.literal = [ - ...kws.literal, - ...ARDUINO_KW.literal - ]; - kws.built_in = [ - ...kws.built_in, - ...ARDUINO_KW.built_in - ]; - kws._hints = ARDUINO_KW._hints; - ARDUINO.name = "Arduino"; - ARDUINO.aliases = ["ino"]; - ARDUINO.supersetOf = "cpp"; - return ARDUINO; - } - arduino_1 = arduino; - return arduino_1; -} -var armasm_1; -var hasRequiredArmasm; -function requireArmasm() { - if (hasRequiredArmasm) - return armasm_1; - hasRequiredArmasm = 1; - function armasm(hljs2) { - const COMMENT2 = { variants: [ - hljs2.COMMENT("^[ \\t]*(?=#)", "$", { - relevance: 0, - excludeBegin: true - }), - hljs2.COMMENT("[;@]", "$", { relevance: 0 }), - hljs2.C_LINE_COMMENT_MODE, - hljs2.C_BLOCK_COMMENT_MODE - ] }; - return { - name: "ARM Assembly", - case_insensitive: true, - aliases: ["arm"], - keywords: { - $pattern: "\\.?" + hljs2.IDENT_RE, - meta: ( - // GNU preprocs - ".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND " - ), - built_in: "r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @" - }, - contains: [ - { - className: "keyword", - begin: "\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)" - // followed by space - }, - COMMENT2, - hljs2.QUOTE_STRING_MODE, - { - className: "string", - begin: "'", - end: "[^\\\\]'", - relevance: 0 - }, - { - className: "title", - begin: "\\|", - end: "\\|", - illegal: "\\n", - relevance: 0 - }, - { - className: "number", - variants: [ - { - // hex - begin: "[#$=]?0x[0-9a-f]+" - }, - { - // bin - begin: "[#$=]?0b[01]+" - }, - { - // literal - begin: "[#$=]\\d+" - }, - { - // bare number - begin: "\\b\\d+" - } - ], - relevance: 0 - }, - { - className: "symbol", - variants: [ - { - // GNU ARM syntax - begin: "^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:" - }, - { - // ARM syntax - begin: "^[a-z_\\.\\$][a-z0-9_\\.\\$]+" - }, - { - // label reference - begin: "[=#]\\w+" - } - ], - relevance: 0 - } - ] - }; - } - armasm_1 = armasm; - return armasm_1; -} -var xml_1; -var hasRequiredXml; -function requireXml() { - if (hasRequiredXml) - return xml_1; - hasRequiredXml = 1; - function xml(hljs2) { - const regex = hljs2.regex; - const TAG_NAME_RE = regex.concat(/[\p{L}_]/u, regex.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u); - const XML_IDENT_RE = /[\p{L}0-9._:-]+/u; - const XML_ENTITIES = { - className: "symbol", - begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/ - }; - const XML_META_KEYWORDS = { - begin: /\s/, - contains: [ - { - className: "keyword", - begin: /#?[a-z_][a-z1-9_-]+/, - illegal: /\n/ - } - ] - }; - const XML_META_PAR_KEYWORDS = hljs2.inherit(XML_META_KEYWORDS, { - begin: /\(/, - end: /\)/ - }); - const APOS_META_STRING_MODE = hljs2.inherit(hljs2.APOS_STRING_MODE, { className: "string" }); - const QUOTE_META_STRING_MODE = hljs2.inherit(hljs2.QUOTE_STRING_MODE, { className: "string" }); - const TAG_INTERNALS = { - endsWithParent: true, - illegal: /`]+/ } - ] - } - ] - } - ] - }; - return { - name: "HTML, XML", - aliases: [ - "html", - "xhtml", - "rss", - "atom", - "xjb", - "xsd", - "xsl", - "plist", - "wsf", - "svg" - ], - case_insensitive: true, - unicodeRegex: true, - contains: [ - { - className: "meta", - begin: //, - relevance: 10, - contains: [ - XML_META_KEYWORDS, - QUOTE_META_STRING_MODE, - APOS_META_STRING_MODE, - XML_META_PAR_KEYWORDS, - { - begin: /\[/, - end: /\]/, - contains: [ - { - className: "meta", - begin: //, - contains: [ - XML_META_KEYWORDS, - XML_META_PAR_KEYWORDS, - QUOTE_META_STRING_MODE, - APOS_META_STRING_MODE - ] - } - ] - } - ] - }, - hljs2.COMMENT( - //, - { relevance: 10 } - ), - { - begin: //, - relevance: 10 - }, - XML_ENTITIES, - // xml processing instructions - { - className: "meta", - end: /\?>/, - variants: [ - { - begin: /<\?xml/, - relevance: 10, - contains: [ - QUOTE_META_STRING_MODE - ] - }, - { - begin: /<\?[a-z][a-z0-9]+/ - } - ] - }, - { - className: "tag", - /* - The lookahead pattern (?=...) ensures that 'begin' only matches - ')/, - end: />/, - keywords: { name: "style" }, - contains: [TAG_INTERNALS], - starts: { - end: /<\/style>/, - returnEnd: true, - subLanguage: [ - "css", - "xml" - ] - } - }, - { - className: "tag", - // See the comment in the