index.js.map 143 KB

1
  1. {"version":3,"sources":["index.js","util/matrix.js","util/vector2.js","util/smooth.js","util/bbox.js","engine/index.js","engine/canvas.js","event/emit.js","event/controller.js","util/dom.js","engine/canvas-element.js","engine/container.js","util/array.js","engine/shape/index.js","engine/shape/shape.js","engine/element.js","util/style-parse.js","engine/shape/rect.js","engine/shape/image.js","engine/shape/circle.js","engine/shape/line.js","engine/shape/polygon.js","engine/shape/polyline.js","engine/shape/arc.js","engine/shape/sector.js","engine/shape/text.js","util/rect.js","engine/shape/custom.js","engine/shape/marker.js","engine/group.js","util/requestAnimationFrame.js","engine/lang.js","types.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA,ACHA;AFOA,ACHA,ACHA;AFOA,ACHA,ACHA;AFOA,ACHA,AENA,ADGA;AFOA,ACHA,AENA,ADGA;AFOA,ACHA,AENA,ADGA;AFOA,AIZA,AHSA,AENA,ADGA;AFOA,AIZA,AHSA,AENA,ADGA;AFOA,AIZA,AHSA,AENA,ADGA;AGRA,ALeA,AIZA,AHSA,AENA,ADGA;AGRA,ALeA,AIZA,AHSA,AENA,ADGA;AGRA,ALeA,AIZA,AHSA,AENA,ADGA;AIXA,ADGA,ALeA,AIZA,AHSA,AENA,ADGA;AIXA,ADGA,ALeA,AIZA,AHSA,AENA,ADGA;AIXA,ADGA,ALeA,AIZA,AHSA,AENA,ADGA;AIXA,ADGA,AENA,APqBA,AIZA,AHSA,AENA,ADGA;AIXA,ADGA,AENA,APqBA,AIZA,AHSA,AENA,ADGA;AIXA,ADGA,AENA,APqBA,AIZA,AHSA,AENA,ADGA;AIXA,ADGA,AGTA,ADGA,APqBA,AIZA,AHSA,AENA,ADGA;AIXA,ADGA,AGTA,ADGA,APqBA,AIZA,AHSA,AENA,ADGA;AIXA,ADGA,AGTA,ADGA,APqBA,AIZA,AHSA,AENA,ADGA;AIXA,ADGA,AGTA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,ADGA;AIXA,ADGA,AGTA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,ADGA;AIXA,ADGA,AGTA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,ADGA,AGTA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,ADGA,AGTA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,ADGA,AGTA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,ANkBA,AGTA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,ANkBA,AGTA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,ANkBA,AGTA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,ANkBA,AGTA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,ANkBA,AGTA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,ANkBA,AGTA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,ANkBA,AQxBA,ALeA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,ANkBA,AQxBA,ALeA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,ANkBA,AQxBA,ALeA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,AENA,ACHA,ANkBA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,AENA,ACHA,ANkBA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,AENA,ACHA,ANkBA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,AIZA,AFMA,ACHA,ANkBA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,AIZA,AFMA,ACHA,ANkBA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,AIZA,AFMA,ACHA,ANkBA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,ADGA;AQvBA,AJYA,AKfA,AIZA,AFMA,ACHA,ANkBA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AFMA,ACHA,ANkBA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AFMA,ACHA,ANkBA,ADGA,APqBA,AYpCA,ARwBA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AFMA,AIZA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AFMA,AIZA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AFMA,AIZA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AGTA,ALeA,AIZA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AGTA,ALeA,AIZA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AGTA,ALeA,AIZA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AIZA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AIZA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AIZA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AOrBA,AHSA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AOrBA,AHSA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AOrBA,AHSA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AOrBA,ACHA,AJYA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AOrBA,ACHA,AJYA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AOrBA,ACHA,AJYA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AOrBA,ACHA,ACHA,ALeA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AOrBA,ACHA,ACHA,ALeA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AIZA,ADGA,ALeA,AOrBA,ACHA,ACHA,ALeA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,ALeA,AOrBA,ACHA,ACHA,ALeA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,ALeA,AOrBA,ACHA,ACHA,ALeA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,AENA,ACHA,ACHA,ALeA,AHSA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,ANkBA,ADGA,APqBA,AIZA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,ANkBA,ADGA,AHSA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,ANkBA,ADGA,AHSA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,ARwBA,AENA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,ARwBA,AyB3EA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,ARwBA,AyB3EA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,ADGA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,ARwBA,AyB3EA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,AQxBA,AT2BA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,AQxBA,AT2BA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,AQxBA,AT2BA,AENA,ACHA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,AQxBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AvBqEA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AIZA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AIZA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AIZA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AIZA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AIZA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AHSA,AKfA,AiBnDA,AIZA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AyB3EA,A5BoFA,AKfA,AiBnDA,AIZA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AyB3EA,A5BoFA,AKfA,AiBnDA,AIZA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AyB3EA,A5BoFA,AKfA,AqB/DA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,ADGA,AyB3EA,A5BoFA,AKfA,AqB/DA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AwBxEA,A5BoFA,AKfA,AqB/DA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AqB/DA,A3BiFA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,ANkBA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,ANkBA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,ANkBA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,ANkBA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,ANkBA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,ANkBA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,ANkBA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,ANkBA,AavCA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,AENA,ARwBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,AJYA,AQxBA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,AIZA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,AIZA,AT2BA,AENA,AQxBA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,APqBA,ACHA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,AV8BA,AWjCA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AQvBA,AJYA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,ANkBA,ALeA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,AOrBA,Ad0CA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AOrBA,ACHA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AQxBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AQxBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AQxBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AQxBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AQxBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AQxBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AU9BA,ANkBA,ALeA,AQxBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AIZA,ALeA,AQxBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AIZA,AGTA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AKfA,AIZA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AXiCA,AOrBA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,AJYA,AKfA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,Ac1CA,AJYA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,AU9BA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,AU9BA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,AU9BA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,AU9BA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,AU9BA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,AU9BA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,AU9BA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,AU9BA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,AU9BA,AjBmDA,ACHA,APqBA;AIXA,AS3BA,AU9BA,AjBmDA,ACHA;AHUA,AS3BA,AU9BA,AjBmDA,ACHA;AHUA,AS3BA,AU9BA,AjBmDA,ACHA;AHUA,AS3BA,AU9BA,AjBmDA,ACHA;AHUA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AFOA,AS3BA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA,AjBmDA;AOpBA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA,AU9BA;AV+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BBox = void 0;\nObject.defineProperty(exports, \"Canvas\", {\n enumerable: true,\n get: function get() {\n return _engine.Canvas;\n }\n});\nObject.defineProperty(exports, \"Group\", {\n enumerable: true,\n get: function get() {\n return _engine.Group;\n }\n});\nObject.defineProperty(exports, \"Matrix\", {\n enumerable: true,\n get: function get() {\n return _matrix.default;\n }\n});\nObject.defineProperty(exports, \"Shape\", {\n enumerable: true,\n get: function get() {\n return _engine.Shape;\n }\n});\nexports.Types = exports.Smooth = void 0;\nObject.defineProperty(exports, \"Vector2\", {\n enumerable: true,\n get: function get() {\n return _vector.default;\n }\n});\nexports.createCanvas = createCanvas;\nexports.getEngine = getEngine;\nexports.registerEngine = registerEngine;\nvar _matrix = _interopRequireDefault(require(\"./util/matrix\"));\nvar _vector = _interopRequireDefault(require(\"./util/vector2\"));\nvar Smooth = _interopRequireWildcard(require(\"./util/smooth\"));\nexports.Smooth = Smooth;\nvar BBox = _interopRequireWildcard(require(\"./util/bbox\"));\nexports.BBox = BBox;\nvar _engine = require(\"./engine\");\nvar Types = _interopRequireWildcard(require(\"./types\"));\nexports.Types = Types;\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar engines = {};\nfunction registerEngine(name, engine) {\n engines[name] = engine;\n}\nfunction getEngine(name) {\n var G = engines[name];\n if (G) {\n return G;\n }\n return {\n Canvas: _engine.Canvas,\n Group: _engine.Group,\n Shape: _engine.Shape\n };\n}\nfunction createCanvas(cfg) {\n var renderer = cfg.renderer;\n var G = getEngine(renderer);\n return new G.Canvas(cfg);\n}","\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar Matrix = {\n generateDefault: function generateDefault() {\n return [1, 0, 0, 1, 0, 0];\n },\n isChanged: function isChanged(m) {\n return m[0] !== 1 || m[1] !== 0 || m[2] !== 0 || m[3] !== 1 || m[4] !== 0 || m[5] !== 0;\n },\n multiply: function multiply(m1, m2) {\n var m11 = m1[0] * m2[0] + m1[2] * m2[1];\n var m12 = m1[1] * m2[0] + m1[3] * m2[1];\n var m21 = m1[0] * m2[2] + m1[2] * m2[3];\n var m22 = m1[1] * m2[2] + m1[3] * m2[3];\n var dx = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n var dy = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n return [m11, m12, m21, m22, dx, dy];\n },\n scale: function scale(out, m, v) {\n out[0] = m[0] * v[0];\n out[1] = m[1] * v[0];\n out[2] = m[2] * v[1];\n out[3] = m[3] * v[1];\n out[4] = m[4];\n out[5] = m[5];\n return out;\n },\n rotate: function rotate(out, m, radian) {\n var c = Math.cos(radian);\n var s = Math.sin(radian);\n var m11 = m[0] * c + m[2] * s;\n var m12 = m[1] * c + m[3] * s;\n var m21 = m[0] * -s + m[2] * c;\n var m22 = m[1] * -s + m[3] * c;\n out[0] = m11;\n out[1] = m12;\n out[2] = m21;\n out[3] = m22;\n out[4] = m[4];\n out[5] = m[5];\n return out;\n },\n translate: function translate(out, m, v) {\n out[0] = m[0];\n out[1] = m[1];\n out[2] = m[2];\n out[3] = m[3];\n out[4] = m[4] + m[0] * v[0] + m[2] * v[1];\n out[5] = m[5] + m[1] * v[0] + m[3] * v[1];\n return out;\n },\n transform: function transform(m, actions) {\n var out = [].concat(m);\n for (var i = 0, len = actions.length; i < len; i++) {\n var action = actions[i];\n switch (action[0]) {\n case 't':\n Matrix.translate(out, out, [action[1], action[2]]);\n break;\n case 's':\n Matrix.scale(out, out, [action[1], action[2]]);\n break;\n case 'r':\n Matrix.rotate(out, out, action[1]);\n break;\n default:\n break;\n }\n }\n return out;\n }\n};\nvar _default = Matrix;\nexports.default = _default;","\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n/**\n * 2 Dimensional Vector\n * @module vector2\n */\nvar _default = {\n /**\n * Creates a new, empty vector2\n *\n * @return {vector2} a new 2D vector\n */\n create: function create() {\n return [0, 0];\n },\n /**\n * Calculates the length of a vector2\n *\n * @param {vector2} v vector to calculate length of\n * @return {Number} length of v\n */\n length: function length(v) {\n var x = v[0];\n var y = v[1];\n return Math.sqrt(x * x + y * y);\n },\n /**\n * Normalize a vector2\n *\n * @param {vector2} out the receiving vector\n * @param {vector2} v vector to normalize\n * @return {vector2} out\n */\n normalize: function normalize(out, v) {\n var len = this.length(v);\n if (len === 0) {\n out[0] = 0;\n out[1] = 0;\n } else {\n out[0] = v[0] / len;\n out[1] = v[1] / len;\n }\n return out;\n },\n /**\n * Adds two vector2's\n *\n * @param {vector2} out the receiving vector\n * @param {vector2} v1 the first operand\n * @param {vector2} v2 the second operand\n * @return {vector2} out\n */\n add: function add(out, v1, v2) {\n out[0] = v1[0] + v2[0];\n out[1] = v1[1] + v2[1];\n return out;\n },\n /**\n * Subtracts vector v2 from vector v1\n *\n * @param {vector2} out the receiving vector\n * @param {vector2} v1 the first operand\n * @param {vector2} v2 the second operand\n * @return {vector2} out\n */\n sub: function sub(out, v1, v2) {\n out[0] = v1[0] - v2[0];\n out[1] = v1[1] - v2[1];\n return out;\n },\n /**\n * Scales a vector2 by a scalar number\n *\n * @param {vector2} out the receiving vector\n * @param {vector2} v the vector to scale\n * @param {Number} s amount to scale the vector by\n * @return {vector2} out\n */\n scale: function scale(out, v, s) {\n out[0] = v[0] * s;\n out[1] = v[1] * s;\n return out;\n },\n /**\n * Calculates the dot product of two vector2's\n *\n * @param {vector2} v1 the first operand\n * @param {vector2} v2 the second operand\n * @return {Number} dot product of v1 and v2\n */\n dot: function dot(v1, v2) {\n return v1[0] * v2[0] + v1[1] * v2[1];\n },\n /**\n * Calculates the direction of two vector2's\n *\n * @param {vector2} v1 the first operand\n * @param {vector2} v2 the second operand\n * @return {Boolean} the direction of v1 and v2\n */\n direction: function direction(v1, v2) {\n return v1[0] * v2[1] - v2[0] * v1[1];\n },\n /**\n * Calculates the angle of two vector2's\n *\n * @param {vector2} v1 the first operand\n * @param {vector2} v2 the second operand\n * @return {Number} angle of v1 and v2\n */\n angle: function angle(v1, v2) {\n var theta = this.dot(v1, v2) / (this.length(v1) * this.length(v2));\n return Math.acos(theta);\n },\n /**\n * Calculates the angle of two vector2's with direction\n *\n * @param {vector2} v1 the first operand\n * @param {vector2} v2 the second operand\n * @param {Boolean} direction the direction of two vector2's\n * @return {Number} angle of v1 and v2\n */\n angleTo: function angleTo(v1, v2, direction) {\n var angle = this.angle(v1, v2);\n var angleLargeThanPI = this.direction(v1, v2) >= 0;\n if (direction) {\n if (angleLargeThanPI) {\n return Math.PI * 2 - angle;\n }\n return angle;\n }\n if (angleLargeThanPI) {\n return angle;\n }\n return Math.PI * 2 - angle;\n },\n /**\n * whether a vector2 is zero vector\n *\n * @param {vector2} v vector to calculate\n * @return {Boolean} is or not a zero vector\n */\n zero: function zero(v) {\n return v[0] === 0 && v[1] === 0;\n },\n /**\n * Calculates the euclidian distance between two vector2's\n *\n * @param {vector2} v1 the first operand\n * @param {vector2} v2 the second operand\n * @return {Number} distance between a and b\n */\n distance: function distance(v1, v2) {\n var x = v2[0] - v1[0];\n var y = v2[1] - v1[1];\n return Math.sqrt(x * x + y * y);\n },\n /**\n * Creates a new vector2 initialized with values from an existing vector\n *\n * @param {vector2} v vector to clone\n * @return {Array} a new 2D vector\n */\n clone: function clone(v) {\n return [v[0], v[1]];\n },\n /**\n * Return the minimum of two vector2's\n *\n * @param {vector2} out the receiving vector\n * @param {vector2} v1 the first operand\n * @param {vector2} v2 the second operand\n * @return {vector2} out\n */\n min: function min(out, v1, v2) {\n out[0] = Math.min(v1[0], v2[0]);\n out[1] = Math.min(v1[1], v2[1]);\n return out;\n },\n /**\n * Return the maximum of two vector2's\n *\n * @param {vector2} out the receiving vector\n * @param {vector2} v1 the first operand\n * @param {vector2} v2 the second operand\n * @return {vector2} out\n */\n max: function max(out, v1, v2) {\n out[0] = Math.max(v1[0], v2[0]);\n out[1] = Math.max(v1[1], v2[1]);\n return out;\n },\n /**\n * Transforms the vector2 with a mat2d\n *\n * @param {vector2} out the receiving vector\n * @param {vector2} v the vector to transform\n * @param {mat2d} m matrix to transform with\n * @return {vector2} out\n */\n transformMat2d: function transformMat2d(out, v, m) {\n var x = v[0];\n var y = v[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n }\n};\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.smooth = catmullRom2bezier;\nvar _vector = _interopRequireDefault(require(\"./vector2\"));\n/**\n * @fileOverview convert the line to curve\n * @author dxq613@gmail.com\n */\n\nfunction getPoint(v) {\n return [v.x, v.y];\n}\nfunction smoothBezier(points, smooth, isLoop, constraint) {\n var cps = [];\n var prevPoint;\n var nextPoint;\n var hasConstraint = !!constraint;\n var min;\n var max;\n var point;\n var len;\n var l;\n var i;\n if (hasConstraint) {\n min = [Infinity, Infinity];\n max = [-Infinity, -Infinity];\n for (i = 0, l = points.length; i < l; i++) {\n point = getPoint(points[i]);\n _vector.default.min(min, min, point);\n _vector.default.max(max, max, point);\n }\n _vector.default.min(min, min, constraint[0]);\n _vector.default.max(max, max, constraint[1]);\n }\n for (i = 0, len = points.length; i < len; i++) {\n point = getPoint(points[i]);\n if (isLoop) {\n prevPoint = getPoint(points[i ? i - 1 : len - 1]);\n nextPoint = getPoint(points[(i + 1) % len]);\n } else {\n if (i === 0 || i === len - 1) {\n cps.push([point[0], point[1]]);\n continue;\n } else {\n prevPoint = getPoint(points[i - 1]);\n nextPoint = getPoint(points[i + 1]);\n }\n }\n var v = _vector.default.sub([], nextPoint, prevPoint);\n _vector.default.scale(v, v, smooth);\n var d0 = _vector.default.distance(point, prevPoint);\n var d1 = _vector.default.distance(point, nextPoint);\n var sum = d0 + d1;\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n var v1 = _vector.default.scale([], v, -d0);\n var v2 = _vector.default.scale([], v, d1);\n var cp0 = _vector.default.add([], point, v1);\n var cp1 = _vector.default.add([], point, v2);\n if (hasConstraint) {\n _vector.default.max(cp0, cp0, min);\n _vector.default.min(cp0, cp0, max);\n _vector.default.max(cp1, cp1, min);\n _vector.default.min(cp1, cp1, max);\n }\n cps.push([cp0[0], cp0[1]]);\n cps.push([cp1[0], cp1[1]]);\n }\n if (isLoop) {\n cps.push(cps.shift());\n }\n return cps;\n}\nfunction catmullRom2bezier(pointList, z, constraint) {\n var isLoop = !!z;\n var controlPointList = smoothBezier(pointList, 0.4, isLoop, constraint);\n var len = pointList.length;\n var d1 = [];\n var cp1;\n var cp2;\n var p;\n for (var i = 0; i < len - 1; i++) {\n cp1 = controlPointList[i * 2];\n cp2 = controlPointList[i * 2 + 1];\n p = pointList[i + 1];\n d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p.x, p.y]);\n }\n if (isLoop) {\n cp1 = controlPointList[len];\n cp2 = controlPointList[len + 1];\n p = pointList[0];\n d1.push(['C', cp1[0], cp1[1], cp2[0], cp2[1], p.x, p.y]);\n }\n return d1;\n}","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getBBoxFromArc = getBBoxFromArc;\nexports.getBBoxFromBezierGroup = getBBoxFromBezierGroup;\nexports.getBBoxFromLine = getBBoxFromLine;\nexports.getBBoxFromPoints = getBBoxFromPoints;\nvar _vector = _interopRequireDefault(require(\"./vector2\"));\nvar start = _vector.default.create();\nvar end = _vector.default.create();\nvar extremity = _vector.default.create();\nfunction getCubicBezierXYatT(startPt, controlPt1, controlPt2, endPt, T) {\n var x = CubicN(T, startPt.x, controlPt1.x, controlPt2.x, endPt.x);\n var y = CubicN(T, startPt.y, controlPt1.y, controlPt2.y, endPt.y);\n return {\n x: x,\n y: y\n };\n}\n// cubic helper formula at T distance\nfunction CubicN(T, a, b, c, d) {\n var t2 = T * T;\n var t3 = t2 * T;\n return a + (-a * 3 + T * (3 * a - a * T)) * T + (3 * b + T * (-6 * b + b * 3 * T)) * T + (c * 3 - c * 3 * T) * t2 + d * t3;\n}\nfunction cubicBezierBounds(c) {\n var minX = Infinity;\n var maxX = -Infinity;\n var minY = Infinity;\n var maxY = -Infinity;\n var s = {\n x: c[0],\n y: c[1]\n };\n var c1 = {\n x: c[2],\n y: c[3]\n };\n var c2 = {\n x: c[4],\n y: c[5]\n };\n var e = {\n x: c[6],\n y: c[7]\n };\n for (var t = 0; t < 100; t++) {\n var pt = getCubicBezierXYatT(s, c1, c2, e, t / 100);\n if (pt.x < minX) {\n minX = pt.x;\n }\n if (pt.x > maxX) {\n maxX = pt.x;\n }\n if (pt.y < minY) {\n minY = pt.y;\n }\n if (pt.y > maxY) {\n maxY = pt.y;\n }\n }\n return {\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY\n };\n}\nfunction getBBoxFromPoints(points, lineWidth) {\n if (points.length === 0) {\n return;\n }\n var p = points[0];\n var left = p.x;\n var right = p.x;\n var top = p.y;\n var bottom = p.y;\n var len = points.length;\n for (var i = 1; i < len; i++) {\n p = points[i];\n left = Math.min(left, p.x);\n right = Math.max(right, p.x);\n top = Math.min(top, p.y);\n bottom = Math.max(bottom, p.y);\n }\n lineWidth = lineWidth / 2 || 0;\n return {\n minX: left - lineWidth,\n minY: top - lineWidth,\n maxX: right + lineWidth,\n maxY: bottom + lineWidth\n };\n}\nfunction getBBoxFromLine(x0, y0, x1, y1, lineWidth) {\n lineWidth = lineWidth / 2 || 0;\n return {\n minX: Math.min(x0, x1) - lineWidth,\n minY: Math.min(y0, y1) - lineWidth,\n maxX: Math.max(x0, x1) + lineWidth,\n maxY: Math.max(y0, y1) + lineWidth\n };\n}\nfunction getBBoxFromArc(x, y, r, startAngle, endAngle, anticlockwise) {\n var diff = Math.abs(startAngle - endAngle);\n if (diff % (Math.PI * 2) < 1e-4 && diff > 1e-4) {\n // Is a circle\n return {\n minX: x - r,\n minY: y - r,\n maxX: x + r,\n maxY: y + r\n };\n }\n start[0] = Math.cos(startAngle) * r + x;\n start[1] = Math.sin(startAngle) * r + y;\n end[0] = Math.cos(endAngle) * r + x;\n end[1] = Math.sin(endAngle) * r + y;\n var min = [0, 0];\n var max = [0, 0];\n _vector.default.min(min, start, end);\n _vector.default.max(max, start, end);\n // Thresh to [0, Math.PI * 2]\n startAngle = startAngle % (Math.PI * 2);\n if (startAngle < 0) {\n startAngle = startAngle + Math.PI * 2;\n }\n endAngle = endAngle % (Math.PI * 2);\n if (endAngle < 0) {\n endAngle = endAngle + Math.PI * 2;\n }\n if (startAngle > endAngle && !anticlockwise) {\n endAngle += Math.PI * 2;\n } else if (startAngle < endAngle && anticlockwise) {\n startAngle += Math.PI * 2;\n }\n if (anticlockwise) {\n var tmp = endAngle;\n endAngle = startAngle;\n startAngle = tmp;\n }\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n if (angle > startAngle) {\n extremity[0] = Math.cos(angle) * r + x;\n extremity[1] = Math.sin(angle) * r + y;\n _vector.default.min(min, extremity, min);\n _vector.default.max(max, extremity, max);\n }\n }\n return {\n minX: min[0],\n minY: min[1],\n maxX: max[0],\n maxY: max[1]\n };\n}\nfunction getBBoxFromBezierGroup(points, lineWidth) {\n var minX = Infinity;\n var maxX = -Infinity;\n var minY = Infinity;\n var maxY = -Infinity;\n for (var i = 0, len = points.length; i < len; i++) {\n var bbox = cubicBezierBounds(points[i]);\n if (bbox.minX < minX) {\n minX = bbox.minX;\n }\n if (bbox.maxX > maxX) {\n maxX = bbox.maxX;\n }\n if (bbox.minY < minY) {\n minY = bbox.minY;\n }\n if (bbox.maxY > maxY) {\n maxY = bbox.maxY;\n }\n }\n lineWidth = lineWidth / 2 || 0;\n return {\n minX: minX - lineWidth,\n minY: minY - lineWidth,\n maxX: maxX + lineWidth,\n maxY: maxY + lineWidth\n };\n}","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Canvas\", {\n enumerable: true,\n get: function get() {\n return _canvas.default;\n }\n});\nObject.defineProperty(exports, \"Group\", {\n enumerable: true,\n get: function get() {\n return _group.default;\n }\n});\nObject.defineProperty(exports, \"Shape\", {\n enumerable: true,\n get: function get() {\n return _shape.default;\n }\n});\nvar _canvas = _interopRequireDefault(require(\"./canvas\"));\nvar _group = _interopRequireDefault(require(\"./group\"));\nvar _shape = _interopRequireDefault(require(\"./shape\"));","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _emit = _interopRequireDefault(require(\"../event/emit\"));\nvar _controller = _interopRequireDefault(require(\"../event/controller\"));\nvar _canvasElement = _interopRequireDefault(require(\"./canvas-element\"));\nvar _util = require(\"@antv/util\");\nvar DOMUtil = _interopRequireWildcard(require(\"../util/dom\"));\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _group = _interopRequireDefault(require(\"./group\"));\nvar _requestAnimationFrame = require(\"../util/requestAnimationFrame\");\nvar _lang = _interopRequireDefault(require(\"./lang\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar getPixelRatio = DOMUtil.getPixelRatio,\n getDomById = DOMUtil.getDomById,\n getWidth = DOMUtil.getWidth,\n getHeight = DOMUtil.getHeight,\n isCanvasElement = DOMUtil.isCanvasElement;\nvar Canvas = /*#__PURE__*/function (_EventEmit) {\n (0, _inherits2.default)(Canvas, _EventEmit);\n var _super = (0, _createSuper2.default)(Canvas);\n function Canvas(cfg) {\n var _this;\n (0, _classCallCheck2.default)(this, Canvas);\n _this = _super.call(this);\n var title = cfg.title;\n var ariaLabel = title ? (0, _util.substitute)(_lang.default.general.withTitle, {\n title: title\n }) : _lang.default.general.title;\n _this._attrs = (0, _util.mix)({\n type: 'canvas',\n children: [],\n ariaLabel: ariaLabel\n }, cfg);\n _this._initPixelRatio();\n _this._initCanvas();\n return _this;\n }\n (0, _createClass2.default)(Canvas, [{\n key: \"get\",\n value: /* eslint-enable */\n function get(name) {\n return this._attrs[name];\n }\n }, {\n key: \"set\",\n value: function set(name, value) {\n this._attrs[name] = value;\n }\n }, {\n key: \"_initPixelRatio\",\n value: function _initPixelRatio() {\n var pixelRatio = this.get('pixelRatio');\n if (!pixelRatio) {\n this.set('pixelRatio', getPixelRatio());\n }\n }\n }, {\n key: \"beforeDraw\",\n value: function beforeDraw() {\n var context = this._attrs.context;\n var el = this._attrs.el;\n context && context.clearRect && context.clearRect(0, 0, el.width, el.height);\n }\n }, {\n key: \"_initCanvas\",\n value: function _initCanvas() {\n var el = this.get('el');\n var context = this.get('context');\n if (!el && !context) {\n throw new Error('Please specify the id, el or context of the chart!');\n }\n var canvas;\n if (el) {\n // DOMElement or String\n canvas = (0, _util.isString)(el) ? getDomById(el) : el;\n } else {\n // 说明没有指定el\n canvas = _canvasElement.default.create(context);\n }\n if (context && canvas && !canvas.getContext) {\n canvas.getContext = function () {\n return context;\n };\n }\n var width = this.get('width') || getWidth(canvas) || canvas.width;\n var height = this.get('height') || getHeight(canvas) || canvas.height;\n this.set('canvas', this);\n this.set('el', canvas);\n this.set('context', context || canvas.getContext('2d'));\n this.changeSize(width, height);\n // 初始化事件控制器\n var eventController = new _controller.default({\n canvas: this,\n el: canvas\n });\n this.set('eventController', eventController);\n }\n }, {\n key: \"changeSize\",\n value: function changeSize(width, height) {\n var pixelRatio = this.get('pixelRatio');\n var canvasDOM = this.get('el'); // HTMLCanvasElement or canvasElement\n // 浏览器环境设置style样式\n if (canvasDOM.style) {\n canvasDOM.style.width = width + 'px';\n canvasDOM.style.height = height + 'px';\n }\n if (isCanvasElement(canvasDOM)) {\n canvasDOM.width = width * pixelRatio;\n canvasDOM.height = height * pixelRatio;\n if (pixelRatio !== 1) {\n var ctx = this.get('context');\n ctx.scale(pixelRatio, pixelRatio);\n }\n }\n this.set('width', width);\n this.set('height', height);\n }\n }, {\n key: \"getWidth\",\n value: function getWidth() {\n var pixelRatio = this.get('pixelRatio');\n var width = this.get('width');\n return width * pixelRatio;\n }\n }, {\n key: \"getHeight\",\n value: function getHeight() {\n var pixelRatio = this.get('pixelRatio');\n var height = this.get('height');\n return height * pixelRatio;\n }\n }, {\n key: \"getPointByClient\",\n value: function getPointByClient(clientX, clientY) {\n var el = this.get('el');\n var bbox = el.getBoundingClientRect();\n var width = bbox.right - bbox.left;\n var height = bbox.bottom - bbox.top;\n return {\n x: (clientX - bbox.left) * (el.width / width),\n y: (clientY - bbox.top) * (el.height / height)\n };\n }\n }, {\n key: \"_beginDraw\",\n value: function _beginDraw() {\n this._attrs.toDraw = true;\n }\n }, {\n key: \"_endDraw\",\n value: function _endDraw() {\n this._attrs.toDraw = false;\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var _this2 = this;\n var drawInner = function drawInner() {\n _this2.set('animateHandler', (0, _requestAnimationFrame.requestAnimationFrame)(function () {\n _this2.set('animateHandler', undefined);\n if (_this2.get('toDraw')) {\n drawInner();\n }\n }));\n _this2.beforeDraw();\n try {\n var context = _this2._attrs.context;\n _this2.drawChildren(context);\n // 支付宝,微信小程序,需要调context.draw才能完成绘制, 所以这里直接判断是否有.draw方法\n if (context.draw) {\n context.draw();\n }\n // 设置无障碍文本\n _this2.setAriaLabel();\n } catch (ev) {\n console.warn('error in draw canvas, detail as:');\n console.warn(ev);\n _this2._endDraw();\n }\n _this2._endDraw();\n };\n if (this.get('destroyed')) {\n return;\n }\n if (this.get('animateHandler')) {\n this._beginDraw();\n } else {\n drawInner();\n }\n }\n // 设置无障碍文本\n }, {\n key: \"setAriaLabel\",\n value: function setAriaLabel() {\n var el = this._attrs.el;\n var ariaLabel = this._getAriaLabel();\n if (ariaLabel && el.setAttribute) {\n el.setAttribute('aria-label', ariaLabel);\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n if (this.get('destroyed')) {\n return;\n }\n // 需要清理 canvas 画布内容,否则会导致 spa 应用 ios 下 canvas 白屏\n // https://stackoverflow.com/questions/52532614/total-canvas-memory-use-exceeds-the-maximum-limit-safari-12\n // https://github.com/antvis/F2/issues/630\n var el = this.get('el');\n el.width = 0;\n el.height = 0;\n this.clear();\n this._attrs = {};\n this.set('destroyed', true);\n }\n }, {\n key: \"isDestroyed\",\n value: function isDestroyed() {\n return this.get('destroyed');\n }\n }]);\n return Canvas;\n}(_emit.default); // @ts-ignore\n(0, _util.mix)(Canvas.prototype, _container.default, {\n getGroupClass: function getGroupClass() {\n return _group.default;\n }\n});\nvar _default = Canvas;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _util = require(\"@antv/util\");\n// 实现简单的事件机制\n\n// 多个事件分隔符\nvar TYPE_SEP = ' ';\nvar EventEmit = /*#__PURE__*/function () {\n function EventEmit() {\n (0, _classCallCheck2.default)(this, EventEmit);\n this.__events = {};\n }\n (0, _createClass2.default)(EventEmit, [{\n key: \"on\",\n value: function on(type, listener) {\n var _this = this;\n if (!type || !listener) {\n return;\n }\n type.split(TYPE_SEP).forEach(function (item) {\n var events = _this.__events[item] || [];\n events.push(listener);\n _this.__events[item] = events;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(type, e) {\n var _this2 = this;\n if ((0, _util.isObject)(type)) {\n e = type;\n type = e && e.type;\n }\n if (!type) {\n return;\n }\n var events = this.__events[type];\n if (!events || !events.length) {\n return;\n }\n events.forEach(function (listener) {\n listener.call(_this2, e);\n });\n }\n }, {\n key: \"off\",\n value: function off(type, listener) {\n var __events = this.__events;\n type.split(TYPE_SEP).forEach(function (item) {\n var events = __events[item];\n if (!events || !events.length) {\n return;\n }\n // 如果没有指定方法,则删除所有项\n if (!listener) {\n delete __events[item];\n return;\n }\n // 删除指定的 listener\n for (var i = 0, len = events.length; i < len; i++) {\n if (events[i] === listener) {\n events.splice(i, 1);\n i--;\n }\n }\n });\n }\n }]);\n return EventEmit;\n}();\nvar _default = EventEmit;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar DOMUtil = _interopRequireWildcard(require(\"../util/dom\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar convertPoints = DOMUtil.convertPoints;\n// 计算滑动的方向\nvar calcDirection = function calcDirection(start, end) {\n var xDistance = end.x - start.x;\n var yDistance = end.y - start.y;\n // x 的距离大于y 说明是横向,否则就是纵向\n if (Math.abs(xDistance) > Math.abs(yDistance)) {\n return xDistance > 0 ? 'right' : 'left';\n }\n return yDistance > 0 ? 'down' : 'up';\n};\n// 计算2点之间的距离\nvar calcDistance = function calcDistance(point1, point2) {\n var xDistance = Math.abs(point2.x - point1.x);\n var yDistance = Math.abs(point2.y - point1.y);\n return Math.sqrt(xDistance * xDistance + yDistance * yDistance);\n};\nvar getCenter = function getCenter(point1, point2) {\n var x = point1.x + (point2.x - point1.x) / 2;\n var y = point1.y + (point2.y - point1.y) / 2;\n return {\n x: x,\n y: y\n };\n};\nvar PRESS_DELAY = 250;\nvar EventController = /*#__PURE__*/function () {\n function EventController(_ref) {\n var _this = this;\n var canvas = _ref.canvas,\n el = _ref.el;\n (0, _classCallCheck2.default)(this, EventController);\n this._click = function (ev) {\n var points = convertPoints(ev, _this.canvas);\n ev.points = points;\n _this.emitEvent('click', ev);\n };\n this._start = function (ev) {\n var points = convertPoints(ev, _this.canvas);\n if (!points) {\n return;\n }\n ev.points = points;\n _this.emitEvent('touchstart', ev);\n // 防止上次的内容没有清理掉,重新reset下\n _this.reset();\n // 记录touch start 的时间\n _this.startTime = Date.now();\n // 记录touch start 的点\n _this.startPoints = points;\n if (points.length > 1) {\n _this.startDistance = calcDistance(points[0], points[1]);\n _this.center = getCenter(points[0], points[1]);\n } else {\n // 如果touchstart后停顿250ms, 则也触发press事件\n _this.pressTimeout = setTimeout(function () {\n // 这里固定触发press事件\n var eventType = 'press';\n var direction = 'none';\n ev.direction = direction;\n _this.emitStart(eventType, ev);\n _this.emitEvent(eventType, ev);\n _this.eventType = eventType;\n _this.direction = direction;\n }, PRESS_DELAY);\n }\n };\n this._move = function (ev) {\n var points = convertPoints(ev, _this.canvas);\n if (!points) return;\n _this.clearPressTimeout();\n ev.points = points;\n _this.emitEvent('touchmove', ev);\n var startPoints = _this.startPoints;\n if (!startPoints) return;\n // 多指触控\n if (points.length > 1) {\n // touchstart的距离\n var startDistance = _this.startDistance;\n var currentDistance = calcDistance(points[0], points[1]);\n ev.zoom = currentDistance / startDistance;\n ev.center = _this.center;\n // 触发缩放事件\n _this.emitStart('pinch', ev);\n _this.emitEvent('pinch', ev);\n } else {\n var deltaX = points[0].x - startPoints[0].x;\n var deltaY = points[0].y - startPoints[0].y;\n var direction = _this.direction || calcDirection(startPoints[0], points[0]);\n _this.direction = direction;\n // 获取press或者pan的事件类型\n // press 按住滑动, pan表示平移\n // 如果start后立刻move,则触发pan, 如果有停顿,则触发press\n var eventType = _this.getEventType(points);\n ev.direction = direction;\n ev.deltaX = deltaX;\n ev.deltaY = deltaY;\n _this.emitStart(eventType, ev);\n _this.emitEvent(eventType, ev);\n // 记录最后2次move的时间和坐标,为了给swipe事件用\n var prevMoveTime = _this.lastMoveTime;\n var now = Date.now();\n // 最后2次的时间间隔一定要大于0,否则swipe没发计算\n if (now - prevMoveTime > 0) {\n _this.prevMoveTime = prevMoveTime;\n _this.prevMovePoints = _this.lastMovePoints;\n _this.lastMoveTime = now;\n _this.lastMovePoints = points;\n }\n }\n };\n this._end = function (ev) {\n var points = convertPoints(ev, _this.canvas);\n ev.points = points;\n _this.emitEnd(ev);\n _this.emitEvent('touchend', ev);\n // swipe事件处理, 在touchend之后触发\n var lastMoveTime = _this.lastMoveTime;\n var now = Date.now();\n // 做这个判断是为了最后一次touchmove后到end前,还有一个停顿的过程\n // 100 是拍的一个值,理论这个值会很短,一般不卡顿的话在10ms以内\n if (now - lastMoveTime < 100) {\n var prevMoveTime = _this.prevMoveTime || _this.startTime;\n var intervalTime = lastMoveTime - prevMoveTime;\n // 时间间隔一定要大于0, 否则计算没意义\n if (intervalTime > 0) {\n var prevMovePoints = _this.prevMovePoints || _this.startPoints;\n var lastMovePoints = _this.lastMovePoints;\n // move速率\n var velocity = calcDistance(prevMovePoints[0], lastMovePoints[0]) / intervalTime;\n // 0.3 是参考hammerjs的设置\n if (velocity > 0.3) {\n ev.velocity = velocity;\n ev.direction = calcDirection(prevMovePoints[0], lastMovePoints[0]);\n ev.velocityX = (lastMovePoints[0].x - prevMovePoints[0].x) / intervalTime;\n ev.velocityY = (lastMovePoints[0].y - prevMovePoints[0].y) / intervalTime;\n _this.emitEvent('swipe', ev);\n }\n }\n }\n _this.reset();\n var touches = ev.touches;\n // 当多指只释放了1指时也会触发end, 这时重新触发一次start\n if (touches && touches.length > 0) {\n _this._start(ev);\n }\n };\n this._cancel = function (ev) {\n _this.emitEvent('touchcancel', ev);\n _this.reset();\n };\n // canvasEl\n this.canvas = canvas;\n this.delegateEvent(el);\n // 用来记录当前触发的事件\n this.processEvent = {};\n }\n (0, _createClass2.default)(EventController, [{\n key: \"delegateEvent\",\n value: function delegateEvent(canvasEl) {\n // 代理这几个事件\n canvasEl.addEventListener('click', this._click);\n canvasEl.addEventListener('touchstart', this._start);\n canvasEl.addEventListener('touchmove', this._move);\n canvasEl.addEventListener('touchend', this._end);\n canvasEl.addEventListener('touchcancel', this._cancel);\n }\n }, {\n key: \"emitEvent\",\n value: function emitEvent(type, ev) {\n var canvas = this.canvas;\n canvas.emit(type, ev);\n }\n }, {\n key: \"getEventType\",\n value: function getEventType(points) {\n var eventType = this.eventType,\n canvas = this.canvas,\n startTime = this.startTime,\n startPoints = this.startPoints;\n if (eventType) {\n return eventType;\n }\n var type;\n var panEventListeners = canvas.__events.pan;\n // 如果没有pan事件的监听,默认都是press\n if (!panEventListeners || !panEventListeners.length) {\n type = 'press';\n } else {\n // 如果有pan事件的处理,press则需要停顿250ms, 且移动距离小于10\n var now = Date.now();\n if (now - startTime > PRESS_DELAY && calcDistance(startPoints[0], points[0]) < 10) {\n type = 'press';\n } else {\n type = 'pan';\n }\n }\n this.eventType = type;\n return type;\n }\n }, {\n key: \"enable\",\n value: function enable(eventType) {\n this.processEvent[eventType] = true;\n }\n // 是否进行中的事件\n }, {\n key: \"isProcess\",\n value: function isProcess(eventType) {\n return this.processEvent[eventType];\n }\n // 触发start事件\n }, {\n key: \"emitStart\",\n value: function emitStart(type, ev) {\n if (this.isProcess(type)) {\n return;\n }\n this.enable(type);\n this.emitEvent(\"\".concat(type, \"start\"), ev);\n }\n // 触发end事件\n }, {\n key: \"emitEnd\",\n value: function emitEnd(ev) {\n var _this2 = this;\n var processEvent = this.processEvent;\n Object.keys(processEvent).forEach(function (type) {\n _this2.emitEvent(\"\".concat(type, \"end\"), ev);\n delete processEvent[type];\n });\n }\n }, {\n key: \"clearPressTimeout\",\n value: function clearPressTimeout() {\n if (this.pressTimeout) {\n clearTimeout(this.pressTimeout);\n this.pressTimeout = null;\n }\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.clearPressTimeout();\n this.startTime = 0;\n this.startPoints = null;\n this.startDistance = 0;\n this.direction = null;\n this.eventType = null;\n this.pinch = false;\n this.prevMoveTime = 0;\n this.prevMovePoints = null;\n this.lastMoveTime = 0;\n this.lastMovePoints = null;\n }\n }]);\n return EventController;\n}();\nvar _default = EventController;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addEventListener = addEventListener;\nexports.convertPoints = convertPoints;\nexports.createEvent = createEvent;\nexports.getDomById = getDomById;\nexports.getHeight = getHeight;\nexports.getPixelRatio = getPixelRatio;\nexports.getRelativePosition = getRelativePosition;\nexports.getStyle = getStyle;\nexports.getWidth = getWidth;\nexports.isBrowser = void 0;\nexports.isCanvasElement = isCanvasElement;\nexports.isWx = exports.isNode = exports.isMy = void 0;\nexports.measureText = measureText;\nexports.removeEventListener = removeEventListener;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _util = require(\"@antv/util\");\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nvar supportsEventListenerOptions = function () {\n var supports = false;\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n supports = true;\n }\n });\n window.addEventListener('e', null, options);\n } catch (e) {\n // continue regardless of error\n }\n return supports;\n}();\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nvar eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\n/* global wx, my */\n// weixin miniprogram\n// @ts-ignore\nvar isWx = (typeof wx === \"undefined\" ? \"undefined\" : (0, _typeof2.default)(wx)) === 'object' && typeof wx.getSystemInfoSync === 'function';\n// ant miniprogram\n// @ts-ignore\nexports.isWx = isWx;\nvar isMy = (typeof my === \"undefined\" ? \"undefined\" : (0, _typeof2.default)(my)) === 'object' && typeof my.getSystemInfoSync === 'function';\n// in node\n// @ts-ignore\nexports.isMy = isMy;\nvar isNode = (typeof global === \"undefined\" ? \"undefined\" : (0, _typeof2.default)(global)) && !(typeof window === \"undefined\" ? \"undefined\" : (0, _typeof2.default)(window));\n// in browser\nexports.isNode = isNode;\nvar isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.sessionStorage !== 'undefined';\nexports.isBrowser = isBrowser;\nfunction isCanvasElement(el) {\n if (!el || (0, _typeof2.default)(el) !== 'object') return false;\n if (el.nodeType === 1 && el.nodeName) {\n // HTMLCanvasElement\n return true;\n }\n // CanvasElement\n return !!el.isCanvasElement;\n}\nfunction getPixelRatio() {\n return window && window.devicePixelRatio || 1;\n}\nfunction getStyle(el, property) {\n return el.currentStyle ? el.currentStyle[property] : document.defaultView.getComputedStyle(el, null).getPropertyValue(property);\n}\nfunction getWidth(el) {\n var width = getStyle(el, 'width');\n if (width === 'auto') {\n width = el.offsetWidth;\n }\n return parseFloat(width);\n}\nfunction getHeight(el) {\n var height = getStyle(el, 'height');\n if (height === 'auto') {\n height = el.offsetHeight;\n }\n return parseFloat(height);\n}\nfunction getDomById(id) {\n if (!id) {\n return null;\n }\n return document.getElementById(id);\n}\nfunction getRelativePosition(point, canvas) {\n var canvasDom = canvas.get('el');\n if (!canvasDom) return point;\n var _canvasDom$getBoundin = canvasDom.getBoundingClientRect(),\n top = _canvasDom$getBoundin.top,\n left = _canvasDom$getBoundin.left;\n var paddingLeft = parseFloat(getStyle(canvasDom, 'padding-left'));\n var paddingTop = parseFloat(getStyle(canvasDom, 'padding-top'));\n var mouseX = point.x - left - paddingLeft;\n var mouseY = point.y - top - paddingTop;\n return {\n x: mouseX,\n y: mouseY\n };\n}\nfunction addEventListener(source, type, listener) {\n source.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeEventListener(source, type, listener) {\n source.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction landscapePoint(point, canvas) {\n var landscape = canvas.get('landscape');\n if (!landscape) {\n return point;\n }\n if ((0, _util.isFunction)(landscape)) {\n return landscape(point, canvas);\n }\n // 默认顺时针旋转90度\n var height = canvas.get('height');\n var x = point.y;\n var y = height - point.x;\n return {\n x: x,\n y: y\n };\n}\nfunction convertPoints(ev, canvas) {\n var touches = ev.touches;\n // 认为是mouse事件\n if (!touches) {\n var point = getRelativePosition({\n x: ev.clientX,\n y: ev.clientY\n }, canvas);\n return [landscapePoint(point, canvas)];\n }\n // 单指 touchend 后,touchs 会变空,最后的触点要从changedTouches里拿\n if (!touches.length) {\n // 为了防止万一,加个空逻辑\n touches = ev.changedTouches || [];\n }\n var points = [];\n for (var i = 0, len = touches.length; i < len; i++) {\n var touch = touches[i];\n // x, y: 相对canvas原点的位置,clientX, clientY 相对于可视窗口的位置\n var x = touch.x,\n y = touch.y,\n clientX = touch.clientX,\n clientY = touch.clientY;\n var _point = void 0;\n // 小程序环境会有x,y\n if ((0, _util.isNumber)(x) || (0, _util.isNumber)(y)) {\n _point = {\n x: x,\n y: y\n };\n } else {\n // 浏览器环境再计算下canvas的相对位置\n _point = getRelativePosition({\n x: clientX,\n y: clientY\n }, canvas);\n }\n points.push(landscapePoint(_point, canvas));\n }\n return points;\n}\nfunction createEvent(event, chart) {\n var canvas = chart.get('canvas');\n var points = convertPoints(event, canvas);\n // touchend会没有points\n var point = points[0] || {};\n return {\n type: event.type,\n chart: chart,\n native: event,\n x: point.x,\n y: point.y\n };\n}\nfunction measureText(text, font, ctx) {\n if (!ctx) {\n ctx = document.createElement('canvas').getContext('2d');\n }\n ctx.font = font || '12px sans-serif';\n return ctx.measureText(text);\n}","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _emit = _interopRequireDefault(require(\"../event/emit\"));\nvar CanvasElement = /*#__PURE__*/function (_EventEmit) {\n (0, _inherits2.default)(CanvasElement, _EventEmit);\n var _super = (0, _createSuper2.default)(CanvasElement);\n /* eslint-enable */\n function CanvasElement(ctx) {\n var _this;\n (0, _classCallCheck2.default)(this, CanvasElement);\n _this = _super.call(this);\n _this.context = ctx;\n // canvas实际的宽高 (width/height) * pixelRatio\n // 有可能是 node canvas 创建的 context 对象\n var canvas = ctx.canvas || {};\n _this.width = canvas.width || 0;\n _this.height = canvas.height || 0;\n _this.style = {};\n _this.currentStyle = {};\n _this.attrs = {};\n // 用来标识是CanvasElement实例\n _this.isCanvasElement = true;\n return _this;\n }\n (0, _createClass2.default)(CanvasElement, [{\n key: \"getContext\",\n value: function getContext( /* type */\n ) {\n return this.context;\n }\n }, {\n key: \"getBoundingClientRect\",\n value: function getBoundingClientRect() {\n var width = this.width;\n var height = this.height;\n // 默认都处理成可视窗口的顶部位置\n return {\n top: 0,\n right: width,\n bottom: height,\n left: 0\n };\n }\n }, {\n key: \"setAttribute\",\n value: function setAttribute(key, value) {\n this.attrs[key] = value;\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(type, listener) {\n this.on(type, listener);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, listener) {\n this.off(type, listener);\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(type, e) {\n this.emit(type, e);\n }\n }]);\n return CanvasElement;\n}(_emit.default);\nfunction supportEventListener(canvas) {\n if (!canvas) {\n return false;\n }\n // 非 HTMLCanvasElement\n if (canvas.nodeType !== 1 || !canvas.nodeName || canvas.nodeName.toLowerCase() !== 'canvas') {\n return false;\n }\n // 微信小程序canvas.getContext('2d')时也是CanvasRenderingContext2D\n // 也会有ctx.canvas, 而且nodeType也是1,所以还要在看下是否支持addEventListener\n var support = false;\n try {\n canvas.addEventListener('eventTest', function () {\n support = true;\n });\n canvas.dispatchEvent(new Event('eventTest'));\n } catch (error) {\n support = false;\n }\n return support;\n}\nvar _default = {\n create: function create(ctx) {\n if (!ctx) {\n return null;\n }\n if (supportEventListener(ctx.canvas)) {\n return ctx.canvas;\n }\n return new CanvasElement(ctx);\n }\n};\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _util = require(\"@antv/util\");\nvar _array = require(\"../util/array\");\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar SHAPE_MAP = {};\nvar INDEX = '_INDEX';\nfunction getComparer(compare) {\n return function (left, right) {\n var result = compare(left, right);\n return result === 0 ? left[INDEX] - right[INDEX] : result;\n };\n}\nvar _default = {\n getGroupClass: function getGroupClass() {},\n getChildren: function getChildren() {\n return this.get('children');\n },\n addShape: function addShape(type) {\n var cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var shapeType = SHAPE_MAP[type];\n if (!shapeType) {\n shapeType = (0, _util.upperFirst)(type);\n SHAPE_MAP[type] = shapeType;\n }\n var shape = new _shape.default[shapeType](cfg);\n this.add(shape);\n return shape;\n },\n addGroup: function addGroup(cfg) {\n var groupClass = this.getGroupClass();\n var rst = new groupClass(cfg);\n this.add(rst);\n return rst;\n },\n contain: function contain(item) {\n var children = this.get('children');\n return children.indexOf(item) > -1;\n },\n sort: function sort() {\n var children = this.get('children');\n for (var i = 0, len = children.length; i < len; i++) {\n var child = children[i];\n child[INDEX] = i;\n }\n children.sort(getComparer(function (obj1, obj2) {\n return obj1.get('zIndex') - obj2.get('zIndex');\n }));\n return this;\n },\n drawChildren: function drawChildren(context) {\n this.sort();\n var children = this.get('children');\n for (var i = 0, len = children.length; i < len; i++) {\n var child = children[i];\n child.draw(context);\n }\n return this;\n },\n clear: function clear() {\n var children = this.get('children') || [];\n while (children.length !== 0) {\n children[children.length - 1].remove(true);\n }\n return this;\n },\n add: function add(items) {\n var children = this.get('children');\n if (!children) {\n children = [];\n this.set('children', children);\n }\n if (!(0, _util.isArray)(items)) {\n items = [items];\n }\n for (var i = 0, len = items.length; i < len; i++) {\n var item = items[i];\n var parent = item.get('parent');\n if (parent) {\n var descendants = parent.get('children');\n (0, _array.remove)(descendants, item);\n }\n this._setEvn(item);\n children.push(item);\n }\n return this;\n },\n _setEvn: function _setEvn(item) {\n var _item$_attrs$attrs, _item$_attrs$attrs2;\n var _this$_attrs = this._attrs,\n context = _this$_attrs.context,\n canvas = _this$_attrs.canvas,\n aria = _this$_attrs.aria;\n var _item$_attrs = item._attrs,\n isGroup = _item$_attrs.isGroup,\n type = _item$_attrs.type;\n item._attrs.parent = this;\n item._attrs.context = context;\n item._attrs.canvas = canvas;\n // 是否需要无障碍处理\n if (aria && item._attrs.aria !== false) {\n item._attrs.aria = aria;\n }\n if (type === 'text' && canvas && canvas.get('fontFamily') && !((_item$_attrs$attrs = item._attrs.attrs) === null || _item$_attrs$attrs === void 0 ? void 0 : _item$_attrs$attrs.fontFamily)) {\n item.attr('fontFamily', canvas.get('fontFamily'));\n }\n var clip = (_item$_attrs$attrs2 = item._attrs.attrs) === null || _item$_attrs$attrs2 === void 0 ? void 0 : _item$_attrs$attrs2.clip;\n if (clip) {\n clip._attrs.parent = this;\n clip._attrs.context = context;\n clip._attrs.canvas = canvas;\n }\n if (isGroup) {\n var children = item._attrs.children;\n for (var i = 0, len = children.length; i < len; i++) {\n item._setEvn(children[i]);\n }\n }\n },\n _getAriaLabel: function _getAriaLabel() {\n var _this$_attrs2 = this._attrs,\n aria = _this$_attrs2.aria,\n ariaLabel = _this$_attrs2.ariaLabel,\n children = _this$_attrs2.children;\n // 主动关闭\n if (!aria) return;\n var childAriaLabels = [];\n if (children && children.length) {\n for (var i = 0, len = children.length; i < len; i++) {\n var _childAriaLabel = children[i].getAriaLabel();\n if (_childAriaLabel) {\n childAriaLabels.push(_childAriaLabel);\n }\n }\n }\n var childAriaLabel = childAriaLabels.join(' ');\n // 2个都有时拼接成完整句子\n if (ariaLabel && childAriaLabel) {\n return \"\".concat(ariaLabel, \" \").concat(childAriaLabel, \" \");\n }\n // 只有1个,或者都没有\n return ariaLabel || childAriaLabel;\n }\n};\nexports.default = _default;","\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.remove = remove;\nfunction remove(arr, obj) {\n if (!arr) {\n return;\n }\n var index = arr.indexOf(obj);\n if (index !== -1) {\n arr.splice(index, 1);\n }\n}","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar _rect = _interopRequireDefault(require(\"./rect\"));\nvar _image = _interopRequireDefault(require(\"./image\"));\nvar _circle = _interopRequireDefault(require(\"./circle\"));\nvar _line = _interopRequireDefault(require(\"./line\"));\nvar _polygon = _interopRequireDefault(require(\"./polygon\"));\nvar _polyline = _interopRequireDefault(require(\"./polyline\"));\nvar _arc = _interopRequireDefault(require(\"./arc\"));\nvar _sector = _interopRequireDefault(require(\"./sector\"));\nvar _text = _interopRequireDefault(require(\"./text\"));\nvar _custom = _interopRequireDefault(require(\"./custom\"));\nvar _marker = _interopRequireDefault(require(\"./marker\"));\n_shape.default.Rect = _rect.default;\n_shape.default.Image = _image.default;\n_shape.default.Circle = _circle.default;\n_shape.default.Line = _line.default;\n_shape.default.Polygon = _polygon.default;\n_shape.default.Polyline = _polyline.default;\n_shape.default.Arc = _arc.default;\n_shape.default.Sector = _sector.default;\n_shape.default.Text = _text.default;\n_shape.default.Custom = _custom.default;\n_shape.default.Marker = _marker.default;\nvar _default = _shape.default;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _util = require(\"@antv/util\");\nvar _element = _interopRequireDefault(require(\"../element\"));\nvar Shape = /*#__PURE__*/function (_Element) {\n (0, _inherits2.default)(Shape, _Element);\n var _super = (0, _createSuper2.default)(Shape);\n function Shape() {\n (0, _classCallCheck2.default)(this, Shape);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Shape, [{\n key: \"_initProperties\",\n value: /* eslint-enable */\n function _initProperties() {\n this._attrs = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this._attrs), {}, {\n zIndex: 0,\n visible: true,\n destroyed: false,\n isShape: true,\n attrs: {}\n });\n }\n }, {\n key: \"getType\",\n value: function getType() {\n return this._attrs.type;\n }\n }, {\n key: \"drawInner\",\n value: function drawInner(context) {\n var attrs = this.get('attrs');\n this.createPath(context);\n var originOpacity = context.globalAlpha;\n if (this.hasFill()) {\n var fillOpacity = attrs.fillOpacity;\n if (!(0, _util.isNil)(fillOpacity) && fillOpacity !== 1) {\n context.globalAlpha = fillOpacity;\n context.fill();\n context.globalAlpha = originOpacity;\n } else {\n context.fill();\n }\n }\n if (this.hasStroke()) {\n var lineWidth = attrs.lineWidth;\n if (lineWidth > 0) {\n var strokeOpacity = attrs.strokeOpacity;\n if (!(0, _util.isNil)(strokeOpacity) && strokeOpacity !== 1) {\n context.globalAlpha = strokeOpacity;\n }\n context.stroke();\n }\n }\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n var bbox = this._attrs.bbox;\n if (!bbox) {\n bbox = this.calculateBox();\n if (bbox) {\n bbox.x = bbox.minX;\n bbox.y = bbox.minY;\n bbox.width = bbox.maxX - bbox.minX;\n bbox.height = bbox.maxY - bbox.minY;\n }\n this._attrs.bbox = bbox;\n }\n return bbox;\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n return null;\n }\n }, {\n key: \"createPath\",\n value: function createPath(_context) {}\n }]);\n return Shape;\n}(_element.default);\nvar _default = Shape;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _util = require(\"@antv/util\");\nvar _array = require(\"../util/array\");\nvar _matrix = _interopRequireDefault(require(\"../util/matrix\"));\nvar _styleParse = require(\"../util/style-parse\");\nvar _vector = _interopRequireDefault(require(\"../util/vector2\"));\nvar ALIAS_ATTRS_MAP = {\n stroke: 'strokeStyle',\n fill: 'fillStyle',\n opacity: 'globalAlpha'\n};\nvar SHAPE_ATTRS = ['fillStyle', 'font', 'globalAlpha', 'lineCap', 'lineWidth', 'lineJoin', 'miterLimit', 'shadowBlur', 'shadowColor', 'shadowOffsetX', 'shadowOffsetY', 'strokeStyle', 'textAlign', 'textBaseline', 'lineDash', 'shadow' // 兼容支付宝小程序\n];\n\nvar CLIP_SHAPES = ['circle', 'sector', 'polygon', 'rect', 'polyline', 'custom'];\nvar Element = /*#__PURE__*/function () {\n function Element(cfg) {\n (0, _classCallCheck2.default)(this, Element);\n this._initProperties();\n (0, _util.mix)(this._attrs, cfg);\n var attrs = this._attrs.attrs;\n if (attrs) {\n this.initAttrs(attrs);\n }\n this.initTransform();\n }\n (0, _createClass2.default)(Element, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n this._attrs = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this._attrs), {}, {\n zIndex: 0,\n visible: true,\n destroyed: false\n });\n }\n }, {\n key: \"get\",\n value: function get(name) {\n return this._attrs[name];\n }\n }, {\n key: \"set\",\n value: function set(name, value) {\n this._attrs[name] = value;\n }\n }, {\n key: \"isGroup\",\n value: function isGroup() {\n return this.get('isGroup');\n }\n }, {\n key: \"isShape\",\n value: function isShape() {\n return this.get('isShape');\n }\n }, {\n key: \"initAttrs\",\n value: function initAttrs(attrs) {\n this.attr((0, _util.mix)(this.getDefaultAttrs(), attrs));\n }\n }, {\n key: \"getDefaultAttrs\",\n value: function getDefaultAttrs() {\n return {};\n }\n }, {\n key: \"_setAttr\",\n value: function _setAttr(name, value) {\n var attrs = this._attrs.attrs;\n if (name === 'clip') {\n value = this._setAttrClip(value);\n } else {\n var alias = ALIAS_ATTRS_MAP[name];\n if (alias) {\n attrs[alias] = value;\n }\n }\n attrs[name] = value;\n }\n }, {\n key: \"_getAttr\",\n value: function _getAttr(name) {\n var _this$_attrs, _this$_attrs$attrs;\n return (_this$_attrs = this._attrs) === null || _this$_attrs === void 0 ? void 0 : (_this$_attrs$attrs = _this$_attrs.attrs) === null || _this$_attrs$attrs === void 0 ? void 0 : _this$_attrs$attrs[name];\n }\n }, {\n key: \"_afterAttrsSet\",\n value: function _afterAttrsSet() {}\n }, {\n key: \"_setAttrClip\",\n value: function _setAttrClip(clip) {\n if (clip && CLIP_SHAPES.indexOf(clip._attrs.type) > -1) {\n if (clip.get('canvas') === null) {\n clip = (0, _objectSpread2.default)({}, clip);\n }\n clip.set('parent', this.get('parent'));\n clip.set('context', this.get('context'));\n return clip;\n }\n return null;\n }\n }, {\n key: \"attr\",\n value: function attr(name, value) {\n if (this.get('destroyed')) return null;\n var argumentsLen = arguments.length;\n if (argumentsLen === 0) {\n return this._attrs.attrs;\n }\n if ((0, _util.isObject)(name)) {\n this._attrs.bbox = null;\n for (var k in name) {\n this._setAttr(k, name[k]);\n }\n if (this._afterAttrsSet) {\n this._afterAttrsSet();\n }\n return this;\n }\n if (argumentsLen === 2) {\n this._attrs.bbox = null;\n this._setAttr(name, value);\n if (this._afterAttrsSet) {\n this._afterAttrsSet();\n }\n return this;\n }\n return this._getAttr(name);\n }\n }, {\n key: \"getParent\",\n value: function getParent() {\n return this.get('parent');\n }\n }, {\n key: \"draw\",\n value: function draw(context) {\n if (this.get('destroyed')) {\n return;\n }\n if (this.get('visible')) {\n this.setContext(context);\n this.drawInner(context);\n this.restoreContext(context);\n }\n }\n }, {\n key: \"setContext\",\n value: function setContext(context) {\n var clip = this._attrs.attrs.clip;\n context.save();\n if (clip && !clip._attrs.destroyed) {\n clip.resetTransform(context);\n clip.createPath(context);\n context.clip();\n }\n this.resetContext(context);\n this.resetTransform(context);\n }\n }, {\n key: \"restoreContext\",\n value: function restoreContext(context) {\n context.restore();\n }\n }, {\n key: \"resetContext\",\n value: function resetContext(context) {\n var elAttrs = this._attrs.attrs;\n for (var k in elAttrs) {\n if (SHAPE_ATTRS.indexOf(k) > -1) {\n var v = elAttrs[k];\n if ((k === 'fillStyle' || k === 'strokeStyle') && v) {\n v = (0, _styleParse.parseStyle)(v, this, context);\n }\n if (k === 'lineDash' && context.setLineDash && (0, _util.isArray)(v)) {\n context.setLineDash(v);\n } else {\n context[k] = v;\n }\n }\n }\n }\n }, {\n key: \"hasFill\",\n value: function hasFill() {\n return this.get('canFill') && this._attrs.attrs.fillStyle;\n }\n }, {\n key: \"hasStroke\",\n value: function hasStroke() {\n return this.get('canStroke') && this._attrs.attrs.strokeStyle;\n }\n }, {\n key: \"drawInner\",\n value: function drawInner(_context) {}\n }, {\n key: \"show\",\n value: function show() {\n this.set('visible', true);\n return this;\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.set('visible', false);\n return this;\n }\n }, {\n key: \"isVisible\",\n value: function isVisible() {\n return this.get('visible');\n }\n }, {\n key: \"getAriaLabel\",\n value: function getAriaLabel() {\n var _this$_attrs2 = this._attrs,\n destroyed = _this$_attrs2.destroyed,\n visible = _this$_attrs2.visible,\n isShape = _this$_attrs2.isShape,\n aria = _this$_attrs2.aria;\n if (destroyed || !visible || isShape && !aria) {\n return;\n }\n return this._getAriaLabel();\n }\n }, {\n key: \"_getAriaLabel\",\n value: function _getAriaLabel() {\n return this._attrs.ariaLabel;\n }\n }, {\n key: \"_removeFromParent\",\n value: function _removeFromParent() {\n var parent = this.get('parent');\n if (parent) {\n var children = parent.get('children');\n (0, _array.remove)(children, this);\n }\n return this;\n }\n }, {\n key: \"remove\",\n value: function remove(destroy) {\n if (destroy) {\n this.destroy();\n } else {\n this._removeFromParent();\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var destroyed = this.get('destroyed');\n if (destroyed) {\n return null;\n }\n this._removeFromParent();\n // 保留 attrs\n var attrs = this._attrs.attrs;\n this._attrs = {\n attrs: attrs\n };\n this.set('destroyed', true);\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n return {\n minX: 0,\n maxX: 0,\n minY: 0,\n maxY: 0,\n width: 0,\n height: 0\n };\n }\n }, {\n key: \"initTransform\",\n value: function initTransform() {\n var attrs = this._attrs.attrs;\n if (!attrs) {\n attrs = {};\n }\n if (!attrs.matrix) {\n attrs.matrix = [1, 0, 0, 1, 0, 0];\n }\n this._attrs.attrs = attrs;\n }\n }, {\n key: \"getMatrix\",\n value: function getMatrix() {\n return this._attrs.attrs.matrix;\n }\n }, {\n key: \"setMatrix\",\n value: function setMatrix(m) {\n this._attrs.attrs.matrix = [m[0], m[1], m[2], m[3], m[4], m[5]];\n }\n }, {\n key: \"transform\",\n value: function transform(actions) {\n var matrix = this._attrs.attrs.matrix;\n this._attrs.attrs.matrix = _matrix.default.transform(matrix, actions);\n return this;\n }\n }, {\n key: \"setTransform\",\n value: function setTransform(actions) {\n this._attrs.attrs.matrix = [1, 0, 0, 1, 0, 0];\n return this.transform(actions);\n }\n }, {\n key: \"translate\",\n value: function translate(x, y) {\n var matrix = this._attrs.attrs.matrix;\n _matrix.default.translate(matrix, matrix, [x, y]);\n }\n }, {\n key: \"rotate\",\n value: function rotate(rad) {\n var matrix = this._attrs.attrs.matrix;\n _matrix.default.rotate(matrix, matrix, rad);\n }\n }, {\n key: \"scale\",\n value: function scale(sx, sy) {\n var matrix = this._attrs.attrs.matrix;\n _matrix.default.scale(matrix, matrix, [sx, sy]);\n }\n }, {\n key: \"moveTo\",\n value: function moveTo(x, y) {\n var cx = this._attrs.x || 0;\n var cy = this._attrs.y || 0;\n this.translate(x - cx, y - cy);\n this.set('x', x);\n this.set('y', y);\n }\n }, {\n key: \"apply\",\n value: function apply(v) {\n var m = this._attrs.attrs.matrix;\n _vector.default.transformMat2d(v, v, m);\n return this;\n }\n }, {\n key: \"resetTransform\",\n value: function resetTransform(context) {\n var mo = this._attrs.attrs.matrix;\n if (_matrix.default.isChanged(mo)) {\n context.transform(mo[0], mo[1], mo[2], mo[3], mo[4], mo[5]);\n }\n }\n }, {\n key: \"isDestroyed\",\n value: function isDestroyed() {\n return this.get('destroyed');\n }\n }]);\n return Element;\n}();\nvar _default = Element;\nexports.default = _default;","\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.parseStyle = parseStyle;\nvar _util = require(\"@antv/util\");\nfunction _mod(n, m) {\n return (n % m + m) % m;\n}\nfunction _addStop(steps, gradient) {\n (0, _util.each)(steps, function (item) {\n item = item.split(':');\n gradient.addColorStop(Number(item[0]), item[1]);\n });\n}\n// the string format: 'l(0) 0:#ffffff 0.5:#7ec2f3 1:#1890ff'\nfunction _parseLineGradient(color, shape, context) {\n var arr = color.split(' ');\n var angle = arr[0].slice(2, arr[0].length - 1);\n angle = _mod(parseFloat(angle) * Math.PI / 180, Math.PI * 2);\n var steps = arr.slice(1);\n var _shape$getBBox = shape.getBBox(),\n minX = _shape$getBBox.minX,\n minY = _shape$getBBox.minY,\n maxX = _shape$getBBox.maxX,\n maxY = _shape$getBBox.maxY;\n var start;\n var end;\n if (angle >= 0 && angle < 0.5 * Math.PI) {\n start = {\n x: minX,\n y: minY\n };\n end = {\n x: maxX,\n y: maxY\n };\n } else if (0.5 * Math.PI <= angle && angle < Math.PI) {\n start = {\n x: maxX,\n y: minY\n };\n end = {\n x: minX,\n y: maxY\n };\n } else if (Math.PI <= angle && angle < 1.5 * Math.PI) {\n start = {\n x: maxX,\n y: maxY\n };\n end = {\n x: minX,\n y: minY\n };\n } else {\n start = {\n x: minX,\n y: maxY\n };\n end = {\n x: maxX,\n y: minY\n };\n }\n var tanTheta = Math.tan(angle);\n var tanTheta2 = tanTheta * tanTheta;\n var x = (end.x - start.x + tanTheta * (end.y - start.y)) / (tanTheta2 + 1) + start.x;\n var y = tanTheta * (end.x - start.x + tanTheta * (end.y - start.y)) / (tanTheta2 + 1) + start.y;\n var gradient = context.createLinearGradient(start.x, start.y, x, y);\n _addStop(steps, gradient);\n return gradient;\n}\n// the string format: 'r(0.5, 0.5, 0.1) 0:#ffffff 1:#1890ff'\nfunction _parseRadialGradient(color, shape, context) {\n var arr = color.split(' ');\n var circleCfg = arr[0].slice(2, arr[0].length - 1);\n circleCfg = circleCfg.split(',');\n var fx = parseFloat(circleCfg[0]);\n var fy = parseFloat(circleCfg[1]);\n var fr = parseFloat(circleCfg[2]);\n var steps = arr.slice(1);\n // if radius is 0, no gradient, stroke with the last color\n if (fr === 0) {\n var _color = steps[steps.length - 1];\n return _color.split(':')[1];\n }\n var _shape$getBBox2 = shape.getBBox(),\n width = _shape$getBBox2.width,\n height = _shape$getBBox2.height,\n minX = _shape$getBBox2.minX,\n minY = _shape$getBBox2.minY;\n var r = Math.sqrt(width * width + height * height) / 2;\n var gradient = context.createRadialGradient(minX + width * fx, minY + height * fy, fr * r, minX + width / 2, minY + height / 2, r);\n _addStop(steps, gradient);\n return gradient;\n}\nfunction parseStyle(color, shape, context) {\n if (color[1] === '(') {\n try {\n var firstCode = color[0];\n if (firstCode === 'l') {\n return _parseLineGradient(color, shape, context);\n } else if (firstCode === 'r') {\n return _parseRadialGradient(color, shape, context);\n }\n } catch (ev) {\n console.error('error in parsing gradient string, please check if there are any extra whitespaces.');\n console.error(ev);\n }\n }\n return color;\n}\nvar _default = {\n parseStyle: parseStyle\n};\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar _util = require(\"@antv/util\");\nfunction parsePadding(padding) {\n var top = 0;\n var right = 0;\n var bottom = 0;\n var left = 0;\n if ((0, _util.isNumber)(padding)) {\n top = bottom = left = right = padding;\n } else if ((0, _util.isArray)(padding)) {\n top = padding[0];\n right = !(0, _util.isNil)(padding[1]) ? padding[1] : padding[0];\n bottom = !(0, _util.isNil)(padding[2]) ? padding[2] : padding[0];\n left = !(0, _util.isNil)(padding[3]) ? padding[3] : right;\n }\n return [top, right, bottom, left];\n}\n// 为了处理radius 大于 width 或 height 的场景\nfunction parseRadius(radius, width, height) {\n radius = parsePadding(radius);\n // 都为0\n if (!radius[0] && !radius[1] && !radius[2] && !radius[3]) {\n return radius;\n }\n var minWidth = Math.max(radius[0] + radius[1], radius[2] + radius[3]);\n var minHeight = Math.max(radius[0] + radius[3], radius[1] + radius[2]);\n var scale = Math.min(width / minWidth, height / minHeight);\n if (scale < 1) {\n return radius.map(function (r) {\n return r * scale;\n });\n }\n return radius;\n}\nvar Rect = /*#__PURE__*/function (_Shape) {\n (0, _inherits2.default)(Rect, _Shape);\n var _super = (0, _createSuper2.default)(Rect);\n function Rect() {\n (0, _classCallCheck2.default)(this, Rect);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Rect, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Rect.prototype), \"_initProperties\", this).call(this);\n this._attrs.canFill = true;\n this._attrs.canStroke = true;\n this._attrs.type = 'rect';\n }\n }, {\n key: \"getDefaultAttrs\",\n value: function getDefaultAttrs() {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n radius: 0,\n lineWidth: 0\n };\n }\n }, {\n key: \"createRadiusPath\",\n value: function createRadiusPath(context, x, y, width, height, radius) {\n radius = parseRadius(radius, width, height);\n context.moveTo(x + radius[0], y);\n context.lineTo(x + width - radius[1], y);\n context.arc(x + width - radius[1], y + radius[1], radius[1], -Math.PI / 2, 0, false);\n context.lineTo(x + width, y + height - radius[2]);\n context.arc(x + width - radius[2], y + height - radius[2], radius[2], 0, Math.PI / 2, false);\n context.lineTo(x + radius[3], y + height);\n context.arc(x + radius[3], y + height - radius[3], radius[3], Math.PI / 2, Math.PI, false);\n context.lineTo(x, y + radius[0]);\n context.arc(x + radius[0], y + radius[0], radius[0], Math.PI, Math.PI * 3 / 2, false);\n context.closePath();\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var attrs = this.get('attrs');\n var x = attrs.x,\n y = attrs.y,\n width = attrs.width,\n height = attrs.height,\n radius = attrs.radius;\n context.beginPath();\n if (!radius || !(width * height)) {\n context.rect(x, y, width, height);\n } else {\n this.createRadiusPath(context, x, y, width, height, radius);\n }\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n var attrs = this.get('attrs');\n var x = attrs.x,\n y = attrs.y,\n width = attrs.width,\n height = attrs.height;\n return {\n minX: x,\n minY: y,\n maxX: x + width,\n maxY: y + height\n };\n }\n }]);\n return Rect;\n}(_shape.default);\nvar _default = Rect;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _util = require(\"@antv/util\");\nvar _rect = _interopRequireDefault(require(\"./rect\"));\nvar imageCaches = {};\nvar ImageShape = /*#__PURE__*/function (_Rect) {\n (0, _inherits2.default)(ImageShape, _Rect);\n var _super = (0, _createSuper2.default)(ImageShape);\n function ImageShape() {\n (0, _classCallCheck2.default)(this, ImageShape);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(ImageShape, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(ImageShape.prototype), \"_initProperties\", this).call(this);\n this._attrs.canFill = false;\n this._attrs.canStroke = false;\n this._attrs.loading = false;\n this._attrs.image = null;\n this._attrs.type = 'image';\n }\n }, {\n key: \"draw\",\n value: function draw(context) {\n var _this = this;\n // 如果图片还在loading中直接返回,等下次绘制\n if (this.get('loading')) {\n return;\n }\n // 如果已经有image对象,直接绘制,会调用createPath绘制\n var image = this.get('image');\n if (image) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(ImageShape.prototype), \"draw\", this).call(this, context);\n return;\n }\n var attrs = this.get('attrs');\n var src = attrs.src;\n if (src) {\n var cacheImage = this.get('cacheImage');\n // 如果有缓存,则直接从缓存中拿\n if (cacheImage && imageCaches[src]) {\n this.set('image', imageCaches[src]);\n this.draw(context);\n return;\n }\n var _image = null;\n var canvas = this.get('canvas');\n if (canvas && canvas.get('createImage')) {\n var createImage = canvas.get('createImage');\n _image = createImage();\n } else if (window.Image) {\n _image = new Image();\n }\n if (_image) {\n this.set('loading', true);\n // 设置跨域, 等同于 image.crossOrigin = 'anonymous'\n _image.crossOrigin = '';\n _image.onload = function () {\n _this.set('loading', false);\n _this.set('image', _image);\n // this.draw(context);\n // 这里需要调用 canvas.draw 进行重新绘制,否则 image 会一直在最上层\n canvas.draw();\n };\n // src 一定要在 crossOrigin 之后,否则 toDataURL 就会报 SecurityError\n _image.src = src;\n // 设置全局缓存\n if (cacheImage) {\n imageCaches[src] = _image;\n }\n }\n }\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var image = this.get('image');\n this.drawImage(context, image);\n }\n }, {\n key: \"drawImage\",\n value: function drawImage(context, image) {\n var _this$_attrs = this._attrs,\n attrs = _this$_attrs.attrs,\n destroyed = _this$_attrs.destroyed;\n if (destroyed) {\n return;\n }\n var x = attrs.x,\n y = attrs.y,\n width = attrs.width,\n height = attrs.height,\n sx = attrs.sx,\n sy = attrs.sy,\n swidth = attrs.swidth,\n sheight = attrs.sheight,\n radius = attrs.radius,\n fillOpacity = attrs.fillOpacity;\n if (radius) {\n context.save();\n this.createRadiusPath(context, x, y, width, height, radius);\n context.clip();\n }\n // 设置透明度\n var originOpacity = context.globalAlpha;\n if (!(0, _util.isNil)(fillOpacity)) {\n context.globalAlpha = fillOpacity;\n }\n if (!(0, _util.isNil)(sx) && !(0, _util.isNil)(sy) && !(0, _util.isNil)(swidth) && !(0, _util.isNil)(sheight)) {\n context.drawImage(image, sx, sy, swidth, sheight, x, y, width, height);\n } else {\n context.drawImage(image, x, y, width, height);\n }\n context.globalAlpha = originOpacity;\n if (radius) {\n // 因为 save 和 restore 会一定程度上影响绘图性能,所以只在必要是调用\n context.restore();\n }\n }\n }]);\n return ImageShape;\n}(_rect.default);\nvar _default = ImageShape;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar Circle = /*#__PURE__*/function (_Shape) {\n (0, _inherits2.default)(Circle, _Shape);\n var _super = (0, _createSuper2.default)(Circle);\n function Circle() {\n (0, _classCallCheck2.default)(this, Circle);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Circle, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Circle.prototype), \"_initProperties\", this).call(this);\n this._attrs.canFill = true;\n this._attrs.canStroke = true;\n this._attrs.type = 'circle';\n }\n }, {\n key: \"getDefaultAttrs\",\n value: function getDefaultAttrs() {\n return {\n x: 0,\n y: 0,\n r: 0,\n lineWidth: 0\n };\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var attrs = this.get('attrs');\n var x = attrs.x,\n y = attrs.y,\n r = attrs.r;\n context.beginPath();\n context.arc(x, y, r, 0, Math.PI * 2, false);\n context.closePath();\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n var attrs = this.get('attrs');\n var x = attrs.x,\n y = attrs.y,\n r = attrs.r;\n return {\n minX: x - r,\n maxX: x + r,\n minY: y - r,\n maxY: y + r\n };\n }\n }]);\n return Circle;\n}(_shape.default);\nvar _default = Circle;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar _bbox = require(\"../../util/bbox\");\nvar Line = /*#__PURE__*/function (_Shape) {\n (0, _inherits2.default)(Line, _Shape);\n var _super = (0, _createSuper2.default)(Line);\n function Line() {\n (0, _classCallCheck2.default)(this, Line);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Line, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Line.prototype), \"_initProperties\", this).call(this);\n this._attrs.canStroke = true;\n this._attrs.type = 'line';\n }\n }, {\n key: \"getDefaultAttrs\",\n value: function getDefaultAttrs() {\n return {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n lineWidth: 1\n };\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var attrs = this.get('attrs');\n var x1 = attrs.x1,\n y1 = attrs.y1,\n x2 = attrs.x2,\n y2 = attrs.y2;\n context.beginPath();\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n var attrs = this.get('attrs');\n var x1 = attrs.x1,\n y1 = attrs.y1,\n x2 = attrs.x2,\n y2 = attrs.y2,\n lineWidth = attrs.lineWidth;\n return (0, _bbox.getBBoxFromLine)(x1, y1, x2, y2, lineWidth);\n }\n }]);\n return Line;\n}(_shape.default);\nvar _default = Line;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar _bbox = require(\"../../util/bbox\");\nvar Polygon = /*#__PURE__*/function (_Shape) {\n (0, _inherits2.default)(Polygon, _Shape);\n var _super = (0, _createSuper2.default)(Polygon);\n function Polygon() {\n (0, _classCallCheck2.default)(this, Polygon);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Polygon, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Polygon.prototype), \"_initProperties\", this).call(this);\n this._attrs.canFill = true;\n this._attrs.canStroke = true;\n this._attrs.type = 'polygon';\n }\n }, {\n key: \"getDefaultAttrs\",\n value: function getDefaultAttrs() {\n return {\n points: null,\n lineWidth: 0\n };\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var attrs = this.get('attrs');\n var points = attrs.points;\n context.beginPath();\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n if (i === 0) {\n context.moveTo(point.x, point.y);\n } else {\n context.lineTo(point.x, point.y);\n }\n }\n context.closePath();\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n var attrs = this.get('attrs');\n var points = attrs.points;\n return (0, _bbox.getBBoxFromPoints)(points);\n }\n }]);\n return Polygon;\n}(_shape.default);\nvar _default = Polygon;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar _bbox = require(\"../../util/bbox\");\nvar Smooth = _interopRequireWildcard(require(\"../../util/smooth\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n// filter the point which x or y is NaN\nfunction _filterPoints(points) {\n var filteredPoints = [];\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n filteredPoints.push(point);\n }\n }\n return filteredPoints;\n}\nvar Polyline = /*#__PURE__*/function (_Shape) {\n (0, _inherits2.default)(Polyline, _Shape);\n var _super = (0, _createSuper2.default)(Polyline);\n function Polyline() {\n (0, _classCallCheck2.default)(this, Polyline);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Polyline, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Polyline.prototype), \"_initProperties\", this).call(this);\n this._attrs.canFill = true;\n this._attrs.canStroke = true;\n this._attrs.type = 'polyline';\n }\n }, {\n key: \"getDefaultAttrs\",\n value: function getDefaultAttrs() {\n return {\n points: null,\n lineWidth: 1,\n smooth: false\n };\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var attrs = this.get('attrs');\n var points = attrs.points,\n smooth = attrs.smooth;\n var filteredPoints = _filterPoints(points);\n context.beginPath();\n if (filteredPoints.length) {\n context.moveTo(filteredPoints[0].x, filteredPoints[0].y);\n if (smooth) {\n var constaint = [[0, 0], [1, 1]];\n var sps = Smooth.smooth(filteredPoints, false, constaint);\n for (var i = 0, n = sps.length; i < n; i++) {\n var sp = sps[i];\n context.bezierCurveTo(sp[1], sp[2], sp[3], sp[4], sp[5], sp[6]);\n }\n } else {\n var _i;\n var l;\n for (_i = 1, l = filteredPoints.length - 1; _i < l; _i++) {\n context.lineTo(filteredPoints[_i].x, filteredPoints[_i].y);\n }\n context.lineTo(filteredPoints[l].x, filteredPoints[l].y);\n }\n }\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n var attrs = this.get('attrs');\n var points = attrs.points,\n smooth = attrs.smooth,\n lineWidth = attrs.lineWidth;\n var filteredPoints = _filterPoints(points);\n if (smooth) {\n var newPoints = [];\n var constaint = [[0, 0], [1, 1]];\n var sps = Smooth.smooth(filteredPoints, false, constaint);\n for (var i = 0, n = sps.length; i < n; i++) {\n var sp = sps[i];\n if (i === 0) {\n newPoints.push([filteredPoints[0].x, filteredPoints[0].y, sp[1], sp[2], sp[3], sp[4], sp[5], sp[6]]);\n } else {\n var lastPoint = sps[i - 1];\n newPoints.push([lastPoint[5], lastPoint[6], sp[1], sp[2], sp[3], sp[4], sp[5], sp[6]]);\n }\n }\n return (0, _bbox.getBBoxFromBezierGroup)(newPoints, lineWidth);\n }\n return (0, _bbox.getBBoxFromPoints)(filteredPoints, lineWidth);\n }\n }]);\n return Polyline;\n}(_shape.default);\nvar _default = Polyline;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar _bbox = require(\"../../util/bbox\");\nvar Arc = /*#__PURE__*/function (_Shape) {\n (0, _inherits2.default)(Arc, _Shape);\n var _super = (0, _createSuper2.default)(Arc);\n function Arc() {\n (0, _classCallCheck2.default)(this, Arc);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Arc, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Arc.prototype), \"_initProperties\", this).call(this);\n this._attrs.canStroke = true;\n this._attrs.canFill = true;\n this._attrs.type = 'arc';\n }\n }, {\n key: \"getDefaultAttrs\",\n value: function getDefaultAttrs() {\n return {\n x: 0,\n y: 0,\n r: 0,\n startAngle: 0,\n endAngle: Math.PI * 2,\n anticlockwise: false,\n lineWidth: 1\n };\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var attrs = this.get('attrs');\n var x = attrs.x,\n y = attrs.y,\n r = attrs.r,\n startAngle = attrs.startAngle,\n endAngle = attrs.endAngle,\n anticlockwise = attrs.anticlockwise;\n context.beginPath();\n if (startAngle !== endAngle) {\n context.arc(x, y, r, startAngle, endAngle, anticlockwise);\n }\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n var attrs = this.get('attrs');\n var x = attrs.x,\n y = attrs.y,\n r = attrs.r,\n startAngle = attrs.startAngle,\n endAngle = attrs.endAngle,\n anticlockwise = attrs.anticlockwise;\n return (0, _bbox.getBBoxFromArc)(x, y, r, startAngle, endAngle, anticlockwise);\n }\n }]);\n return Arc;\n}(_shape.default);\nvar _default = Arc;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar _bbox = require(\"../../util/bbox\");\nvar Sector = /*#__PURE__*/function (_Shape) {\n (0, _inherits2.default)(Sector, _Shape);\n var _super = (0, _createSuper2.default)(Sector);\n function Sector() {\n (0, _classCallCheck2.default)(this, Sector);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Sector, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Sector.prototype), \"_initProperties\", this).call(this);\n this._attrs.canFill = true;\n this._attrs.canStroke = true;\n this._attrs.type = 'sector';\n }\n }, {\n key: \"getDefaultAttrs\",\n value: function getDefaultAttrs() {\n return {\n x: 0,\n y: 0,\n lineWidth: 0,\n r: 0,\n r0: 0,\n startAngle: 0,\n endAngle: Math.PI * 2,\n anticlockwise: false\n };\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var attrs = this.get('attrs');\n var x = attrs.x,\n y = attrs.y,\n startAngle = attrs.startAngle,\n r = attrs.r,\n r0 = attrs.r0,\n anticlockwise = attrs.anticlockwise;\n // 最大为整个圆\n var endAngle = Math.min(attrs.endAngle, startAngle + Math.PI * 2);\n context.beginPath();\n var unitX = Math.cos(startAngle);\n var unitY = Math.sin(startAngle);\n context.moveTo(unitX * r0 + x, unitY * r0 + y);\n context.lineTo(unitX * r + x, unitY * r + y);\n // 当扇形的角度非常小的时候,就不进行弧线的绘制;或者整个只有1个扇形时,会出现end<0的情况不绘制\n if (Math.abs(endAngle - startAngle) > 0.0001 || startAngle === 0 && endAngle < 0) {\n context.arc(x, y, r, startAngle, endAngle, anticlockwise);\n context.lineTo(Math.cos(endAngle) * r0 + x, Math.sin(endAngle) * r0 + y);\n if (r0 !== 0) {\n context.arc(x, y, r0, endAngle, startAngle, !anticlockwise);\n }\n }\n context.closePath();\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n var attrs = this.get('attrs');\n var x = attrs.x,\n y = attrs.y,\n r = attrs.r,\n r0 = attrs.r0,\n startAngle = attrs.startAngle,\n endAngle = attrs.endAngle,\n anticlockwise = attrs.anticlockwise;\n var outerBBox = (0, _bbox.getBBoxFromArc)(x, y, r, startAngle, endAngle, anticlockwise);\n var innerBBox = (0, _bbox.getBBoxFromArc)(x, y, r0, startAngle, endAngle, anticlockwise);\n return {\n minX: Math.min(outerBBox.minX, innerBBox.minX),\n minY: Math.min(outerBBox.minY, innerBBox.minY),\n maxX: Math.max(outerBBox.maxX, innerBBox.maxX),\n maxY: Math.max(outerBBox.maxY, innerBBox.maxY)\n };\n }\n }]);\n return Sector;\n}(_shape.default);\nvar _default = Sector;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _util = require(\"@antv/util\");\nvar DOMUtil = _interopRequireWildcard(require(\"../../util/dom\"));\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar _rect = _interopRequireDefault(require(\"../../util/rect\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar measureText = DOMUtil.measureText;\nvar textWidthCacheCounter = 0;\nvar textWidthCache = {};\nvar TEXT_CACHE_MAX = 5000;\nvar Text = /*#__PURE__*/function (_Shape) {\n (0, _inherits2.default)(Text, _Shape);\n var _super = (0, _createSuper2.default)(Text);\n function Text() {\n (0, _classCallCheck2.default)(this, Text);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Text, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Text.prototype), \"_initProperties\", this).call(this);\n this._attrs.canFill = true;\n this._attrs.canStroke = true;\n this._attrs.type = 'text';\n }\n }, {\n key: \"getDefaultAttrs\",\n value: function getDefaultAttrs() {\n return {\n lineWidth: 0,\n lineCount: 1,\n fontSize: 12,\n fontFamily: '',\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontVariant: 'normal',\n textAlign: 'start',\n textBaseline: 'bottom',\n lineHeight: null,\n textArr: null\n };\n }\n }, {\n key: \"_getFontStyle\",\n value: function _getFontStyle() {\n var attrs = this._attrs.attrs;\n var fontSize = attrs.fontSize,\n fontFamily = attrs.fontFamily,\n fontWeight = attrs.fontWeight,\n fontStyle = attrs.fontStyle,\n fontVariant = attrs.fontVariant;\n return \"\".concat(fontStyle, \" \").concat(fontVariant, \" \").concat(fontWeight, \" \").concat(fontSize, \"px \").concat(fontFamily);\n }\n }, {\n key: \"_afterAttrsSet\",\n value: function _afterAttrsSet() {\n var attrs = this._attrs.attrs;\n attrs.font = this._getFontStyle();\n if (attrs.text) {\n var text = attrs.text;\n var textArr = null;\n var lineCount = 1;\n if ((0, _util.isString)(text) && text.indexOf('\\n') !== -1) {\n textArr = text.split('\\n');\n lineCount = textArr.length;\n }\n attrs.lineCount = lineCount;\n attrs.textArr = textArr;\n }\n this.set('attrs', attrs);\n }\n }, {\n key: \"_getTextHeight\",\n value: function _getTextHeight() {\n var attrs = this._attrs.attrs;\n if (attrs.height) {\n return attrs.height;\n }\n var lineCount = attrs.lineCount;\n var fontSize = attrs.fontSize * 1;\n if (lineCount > 1) {\n var spaceingY = this._getSpaceingY();\n return fontSize * lineCount + spaceingY * (lineCount - 1);\n }\n return fontSize;\n }\n }, {\n key: \"_getSpaceingY\",\n value: function _getSpaceingY() {\n var attrs = this._attrs.attrs;\n var lineHeight = attrs.lineHeight;\n var fontSize = attrs.fontSize * 1;\n return lineHeight ? lineHeight - fontSize : fontSize * 0.14;\n }\n }, {\n key: \"drawInner\",\n value: function drawInner(context) {\n var attrs = this._attrs.attrs;\n var text = attrs.text;\n var x = attrs.x;\n var y = attrs.y;\n if ((0, _util.isNil)(text) || isNaN(x) || isNaN(y)) {\n // text will be 0\n return;\n }\n var textArr = attrs.textArr;\n var fontSize = attrs.fontSize * 1;\n var spaceingY = this._getSpaceingY();\n if (attrs.rotate) {\n // do rotation\n context.translate(x, y);\n context.rotate(attrs.rotate);\n x = 0;\n y = 0;\n }\n var textBaseline = attrs.textBaseline;\n var height;\n if (textArr) {\n height = this._getTextHeight();\n }\n var subY;\n // context.beginPath();\n if (this.hasFill()) {\n var fillOpacity = attrs.fillOpacity;\n if (!(0, _util.isNil)(fillOpacity) && fillOpacity !== 1) {\n context.globalAlpha = fillOpacity;\n }\n if (textArr) {\n for (var i = 0, len = textArr.length; i < len; i++) {\n var subText = textArr[i];\n subY = y + i * (spaceingY + fontSize) - height + fontSize; // bottom;\n if (textBaseline === 'middle') {\n subY += height - fontSize - (height - fontSize) / 2;\n }\n if (textBaseline === 'top') {\n subY += height - fontSize;\n }\n context.fillText(subText, x, subY);\n }\n } else {\n context.fillText(text, x, y);\n }\n }\n if (this.hasStroke()) {\n if (textArr) {\n for (var _i = 0, _len = textArr.length; _i < _len; _i++) {\n var _subText = textArr[_i];\n subY = y + _i * (spaceingY + fontSize) - height + fontSize; // bottom;\n if (textBaseline === 'middle') {\n subY += height - fontSize - (height - fontSize) / 2;\n }\n if (textBaseline === 'top') {\n subY += height - fontSize;\n }\n context.strokeText(_subText, x, subY);\n }\n } else {\n context.strokeText(text, x, y);\n }\n }\n }\n }, {\n key: \"_getAriaLabel\",\n value: function _getAriaLabel() {\n return this._attrs.attrs.text;\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n var attrs = this._attrs.attrs;\n var x = attrs.x,\n y = attrs.y,\n textAlign = attrs.textAlign,\n textBaseline = attrs.textBaseline;\n var width = this._getTextWidth(); // attrs.width\n if (!width) {\n return {\n minX: x,\n minY: y,\n maxX: x,\n maxY: y\n };\n }\n var height = this._getTextHeight(); // attrs.height\n if (attrs.rotate) {\n var rotatedBox = _rect.default.calcRotatedBox({\n width: width,\n height: height,\n rotate: attrs.rotate\n });\n width = rotatedBox.width;\n height = rotatedBox.height;\n }\n var point = {\n x: x,\n y: y - height\n }; // default textAlign: start, textBaseline: bottom\n if (textAlign) {\n if (textAlign === 'end' || textAlign === 'right') {\n point.x -= width;\n } else if (textAlign === 'center') {\n point.x -= width / 2;\n }\n }\n if (textBaseline) {\n if (textBaseline === 'top') {\n point.y += height;\n } else if (textBaseline === 'middle') {\n point.y += height / 2;\n }\n }\n return {\n minX: point.x,\n minY: point.y,\n maxX: point.x + width,\n maxY: point.y + height\n };\n }\n }, {\n key: \"_getTextWidth\",\n value: function _getTextWidth() {\n var attrs = this._attrs.attrs;\n if (attrs.width) {\n return attrs.width;\n }\n var text = attrs.text;\n var context = this.get('context');\n if ((0, _util.isNil)(text)) return undefined;\n var font = attrs.font;\n var textArr = attrs.textArr;\n var key = text + '' + font;\n if (textWidthCache[key]) {\n return textWidthCache[key];\n }\n var width = 0;\n if (textArr) {\n for (var i = 0, length = textArr.length; i < length; i++) {\n var subText = textArr[i];\n width = Math.max(width, measureText(subText, font, context).width);\n }\n } else {\n width = measureText(text, font, context).width;\n }\n if (textWidthCacheCounter > TEXT_CACHE_MAX) {\n textWidthCacheCounter = 0;\n textWidthCache = {};\n }\n textWidthCacheCounter++;\n textWidthCache[key] = width;\n return width;\n }\n }]);\n return Text;\n}(_shape.default);\nvar _default = Text;\nexports.default = _default;","\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar Rect = {\n calcRotatedBox: function calcRotatedBox(_ref) {\n var width = _ref.width,\n height = _ref.height,\n rotate = _ref.rotate;\n var absRotate = Math.abs(rotate);\n return {\n width: Math.abs(width * Math.cos(absRotate) + height * Math.sin(absRotate)),\n height: Math.abs(height * Math.cos(absRotate) + width * Math.sin(absRotate))\n };\n }\n};\nvar _default = Rect;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _shape = _interopRequireDefault(require(\"./shape\"));\nvar Custom = /*#__PURE__*/function (_Shape) {\n (0, _inherits2.default)(Custom, _Shape);\n var _super = (0, _createSuper2.default)(Custom);\n function Custom() {\n (0, _classCallCheck2.default)(this, Custom);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Custom, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Custom.prototype), \"_initProperties\", this).call(this);\n this._attrs.canFill = true;\n this._attrs.canStroke = true;\n this._attrs.createPath = null;\n this._attrs.type = 'custom';\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var createPath = this.get('createPath');\n createPath && createPath.call(this, context);\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n var calculateBox = this.get('calculateBox');\n return calculateBox && calculateBox.call(this);\n }\n }]);\n return Custom;\n}(_shape.default);\nvar _default = Custom;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _util = require(\"@antv/util\");\nvar _shape = _interopRequireDefault(require(\"./shape\"));\n/**\n * marker shapes,used for tooltip and legend\n */\n\nvar SYMBOLS = {\n circle: function circle(x, y, r, ctx) {\n ctx.arc(x, y, r, 0, Math.PI * 2, false);\n },\n square: function square(x, y, r, ctx) {\n ctx.moveTo(x - r, y - r);\n ctx.lineTo(x + r, y - r);\n ctx.lineTo(x + r, y + r);\n ctx.lineTo(x - r, y + r);\n ctx.closePath();\n }\n};\nvar Marker = /*#__PURE__*/function (_Shape) {\n (0, _inherits2.default)(Marker, _Shape);\n var _super = (0, _createSuper2.default)(Marker);\n function Marker() {\n (0, _classCallCheck2.default)(this, Marker);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Marker, [{\n key: \"_initProperties\",\n value: function _initProperties() {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Marker.prototype), \"_initProperties\", this).call(this);\n this._attrs.canFill = true;\n this._attrs.canStroke = true;\n this._attrs.type = 'marker';\n }\n }, {\n key: \"getDefaultAttrs\",\n value: function getDefaultAttrs() {\n return {\n x: 0,\n y: 0,\n lineWidth: 0\n };\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var attrs = this.get('attrs');\n var x = attrs.x,\n y = attrs.y,\n radius = attrs.radius;\n var symbol = attrs.symbol || 'circle';\n var method;\n if ((0, _util.isFunction)(symbol)) {\n method = symbol;\n } else {\n method = SYMBOLS[symbol];\n }\n context.beginPath();\n method(x, y, radius, context, this);\n }\n }, {\n key: \"calculateBox\",\n value: function calculateBox() {\n var attrs = this.get('attrs');\n var x = attrs.x,\n y = attrs.y,\n radius = attrs.radius;\n return {\n minX: x - radius,\n minY: y - radius,\n maxX: x + radius,\n maxY: y + radius\n };\n }\n }]);\n return Marker;\n}(_shape.default);\nvar _default = Marker;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\nvar _get2 = _interopRequireDefault(require(\"@babel/runtime/helpers/get\"));\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\nvar _createSuper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createSuper\"));\nvar _util = require(\"@antv/util\");\nvar _rect = _interopRequireDefault(require(\"./shape/rect\"));\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _vector = _interopRequireDefault(require(\"../util/vector2\"));\nvar Group = /*#__PURE__*/function (_Rect) {\n (0, _inherits2.default)(Group, _Rect);\n var _super = (0, _createSuper2.default)(Group);\n function Group() {\n (0, _classCallCheck2.default)(this, Group);\n return _super.apply(this, arguments);\n }\n (0, _createClass2.default)(Group, [{\n key: \"_initProperties\",\n value: /* eslint-enable */\n function _initProperties() {\n this._attrs = {\n type: 'group',\n zIndex: 0,\n visible: true,\n destroyed: false,\n isGroup: true,\n canFill: true,\n canStroke: true,\n children: [],\n attrs: {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n radius: 0,\n lineWidth: 0\n }\n };\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n var minX = Infinity;\n var maxX = -Infinity;\n var minY = Infinity;\n var maxY = -Infinity;\n var children = this.get('children');\n for (var i = 0, length = children.length; i < length; i++) {\n var child = children[i];\n if (child.get('visible')) {\n var box = child.getBBox();\n if (!box) {\n continue;\n }\n var leftTop = [box.minX, box.minY];\n var leftBottom = [box.minX, box.maxY];\n var rightTop = [box.maxX, box.minY];\n var rightBottom = [box.maxX, box.maxY];\n var matrix = child.attr('matrix');\n _vector.default.transformMat2d(leftTop, leftTop, matrix);\n _vector.default.transformMat2d(leftBottom, leftBottom, matrix);\n _vector.default.transformMat2d(rightTop, rightTop, matrix);\n _vector.default.transformMat2d(rightBottom, rightBottom, matrix);\n minX = Math.min(leftTop[0], leftBottom[0], rightTop[0], rightBottom[0], minX);\n maxX = Math.max(leftTop[0], leftBottom[0], rightTop[0], rightBottom[0], maxX);\n minY = Math.min(leftTop[1], leftBottom[1], rightTop[1], rightBottom[1], minY);\n maxY = Math.max(leftTop[1], leftBottom[1], rightTop[1], rightBottom[1], maxY);\n }\n }\n return {\n minX: minX,\n minY: minY,\n maxX: maxX,\n maxY: maxY,\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n }, {\n key: \"createPath\",\n value: function createPath(context) {\n var attrs = this.get('attrs');\n // 只有在有fillStyle或strokeStyle 时才需要绘制\n if (!attrs.fillStyle && !attrs.strokeStyle) {\n return;\n }\n (0, _get2.default)((0, _getPrototypeOf2.default)(Group.prototype), \"createPath\", this).call(this, context);\n }\n }, {\n key: \"drawInner\",\n value: function drawInner(context) {\n (0, _get2.default)((0, _getPrototypeOf2.default)(Group.prototype), \"drawInner\", this).call(this, context);\n this.drawChildren(context);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n if (this.get('destroyed')) {\n return;\n }\n this.clear();\n (0, _get2.default)((0, _getPrototypeOf2.default)(Group.prototype), \"destroy\", this).call(this);\n }\n }]);\n return Group;\n}(_rect.default); // @ts-ignore\n(0, _util.mix)(Group.prototype, _container.default, {\n getGroupClass: function getGroupClass() {\n return Group;\n }\n});\nvar _default = Group;\nexports.default = _default;","\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.requestAnimationFrame = void 0;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar requestAnimationFrame = (typeof window === \"undefined\" ? \"undefined\" : (0, _typeof2.default)(window)) === 'object' && window.requestAnimationFrame ? window.requestAnimationFrame : function (fn) {\n return setTimeout(fn, 16);\n};\nexports.requestAnimationFrame = requestAnimationFrame;","\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n general: {\n title: '这是一个图表,',\n withTitle: '这是一个关于“{title}”的图表。'\n },\n coord: {\n cartesian: 'X轴是{xLabel}Y轴是{yLabel}'\n // polar: '弧度是{xLabel}半径是{yLabel}'\n },\n\n scale: {\n linear: '数值型,数据最小值为{min},最大值为{max};',\n cat: '分类型, 分类类型有:{values};',\n timeCat: '时间型,时间范围从{start}到{end};'\n },\n geometry: {\n prefix: '共有{count}种分类组成,',\n oneData: '第{index}类是{name},数据是{values};',\n partData: '第{index}类是{name},共有{count}项数据,前{part}项是{values};',\n allData: '第{index}类是{name},有{count}项数据,分别是{values};'\n },\n legend: {\n prefix: '图例分类有:'\n }\n};\nexports.default = _default;","\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});"]}